/drivers/video/i965/gen6_mfc.c |
---|
0,0 → 1,1027 |
/* |
* Copyright © 2010-2011 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Zhou Chang <chang.zhou@intel.com> |
* |
*/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
#include "assert.h" |
#include "intel_batchbuffer.h" |
#include "i965_defines.h" |
#include "i965_structs.h" |
#include "i965_drv_video.h" |
#include "i965_encoder.h" |
static void |
gen6_mfc_pipe_mode_select(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFX_PIPE_MODE_SELECT | (4 - 2)); |
OUT_BCS_BATCH(batch, |
(0 << 10) | /* disable Stream-Out */ |
(1 << 9) | /* Post Deblocking Output */ |
(0 << 8) | /* Pre Deblocking Output */ |
(0 << 7) | /* disable TLB prefectch */ |
(0 << 5) | /* not in stitch mode */ |
(1 << 4) | /* encoding mode */ |
(2 << 0)); /* Standard Select: AVC */ |
OUT_BCS_BATCH(batch, |
(0 << 20) | /* round flag in PB slice */ |
(0 << 19) | /* round flag in Intra8x8 */ |
(0 << 7) | /* expand NOA bus flag */ |
(1 << 6) | /* must be 1 */ |
(0 << 5) | /* disable clock gating for NOA */ |
(0 << 4) | /* terminate if AVC motion and POC table error occurs */ |
(0 << 3) | /* terminate if AVC mbdata error occurs */ |
(0 << 2) | /* terminate if AVC CABAC/CAVLC decode error occurs */ |
(0 << 1) | /* AVC long field motion vector */ |
(0 << 0)); /* always calculate AVC ILDB boundary strength */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfc_pipe_mode_select(VADriverContextP ctx, |
int standard_select, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
assert(standard_select == MFX_FORMAT_MPEG2 || |
standard_select == MFX_FORMAT_AVC); |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFX_PIPE_MODE_SELECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
(MFX_LONG_MODE << 17) | /* Must be long format for encoder */ |
(MFD_MODE_VLD << 15) | /* VLD mode */ |
(0 << 10) | /* disable Stream-Out */ |
(1 << 9) | /* Post Deblocking Output */ |
(0 << 8) | /* Pre Deblocking Output */ |
(0 << 5) | /* not in stitch mode */ |
(1 << 4) | /* encoding mode */ |
(standard_select << 0)); /* standard select: avc or mpeg2 */ |
OUT_BCS_BATCH(batch, |
(0 << 7) | /* expand NOA bus flag */ |
(0 << 6) | /* disable slice-level clock gating */ |
(0 << 5) | /* disable clock gating for NOA */ |
(0 << 4) | /* terminate if AVC motion and POC table error occurs */ |
(0 << 3) | /* terminate if AVC mbdata error occurs */ |
(0 << 2) | /* terminate if AVC CABAC/CAVLC decode error occurs */ |
(0 << 1) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfc_surface_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_SURFACE_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
((mfc_context->surface_state.height - 1) << 19) | |
((mfc_context->surface_state.width - 1) << 6)); |
OUT_BCS_BATCH(batch, |
(MFX_SURFACE_PLANAR_420_8 << 28) | /* 420 planar YUV surface */ |
(1 << 27) | /* must be 1 for interleave U/V, hardware requirement */ |
(0 << 22) | /* surface object control state, FIXME??? */ |
((mfc_context->surface_state.w_pitch - 1) << 3) | /* pitch */ |
(0 << 2) | /* must be 0 for interleave U/V */ |
(1 << 1) | /* must be y-tiled */ |
(I965_TILEWALK_YMAJOR << 0)); /* tile walk, TILEWALK_YMAJOR */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* must be 0 for interleave U/V */ |
(mfc_context->surface_state.h_pitch)); /* y offset for U(cb) */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfc_surface_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_SURFACE_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
((mfc_context->surface_state.height - 1) << 18) | |
((mfc_context->surface_state.width - 1) << 4)); |
OUT_BCS_BATCH(batch, |
(MFX_SURFACE_PLANAR_420_8 << 28) | /* 420 planar YUV surface */ |
(1 << 27) | /* must be 1 for interleave U/V, hardware requirement */ |
(0 << 22) | /* surface object control state, FIXME??? */ |
((mfc_context->surface_state.w_pitch - 1) << 3) | /* pitch */ |
(0 << 2) | /* must be 0 for interleave U/V */ |
(1 << 1) | /* must be tiled */ |
(I965_TILEWALK_YMAJOR << 0)); /* tile walk, TILEWALK_YMAJOR */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* must be 0 for interleave U/V */ |
(mfc_context->surface_state.h_pitch)); /* y offset for U(cb) */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfc_pipe_buf_addr_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
int i; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 24); |
OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (24 - 2)); |
OUT_BCS_BATCH(batch, 0); /* pre output addr */ |
OUT_BCS_RELOC(batch, mfc_context->post_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); /* post output addr */ |
OUT_BCS_RELOC(batch, mfc_context->uncompressed_picture_source.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); /* uncompressed data */ |
OUT_BCS_BATCH(batch, 0); /* StreamOut data*/ |
OUT_BCS_RELOC(batch, mfc_context->intra_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_RELOC(batch, mfc_context->deblocking_filter_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
/* 7..22 Reference pictures*/ |
for (i = 0; i < ARRAY_ELEMS(mfc_context->reference_surfaces); i++) { |
if ( mfc_context->reference_surfaces[i].bo != NULL) { |
OUT_BCS_RELOC(batch, mfc_context->reference_surfaces[i].bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
} else { |
OUT_BCS_BATCH(batch, 0); |
} |
} |
OUT_BCS_BATCH(batch, 0); /* no block status */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfc_ind_obj_base_addr_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 11); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (11 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* MFX Indirect MV Object Base Address */ |
OUT_BCS_RELOC(batch, vme_context->vme_output.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/*MFC Indirect PAK-BSE Object Base Address for Encoder*/ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfc_ind_obj_base_addr_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 11); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (11 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* MFX Indirect MV Object Base Address */ |
OUT_BCS_RELOC(batch, vme_context->vme_output.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
OUT_BCS_BATCH(batch, 0x80000000); /* must set, up to 2G */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/*MFC Indirect PAK-BSE Object Base Address for Encoder*/ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0x80000000); /* must set, up to 2G */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfc_bsp_buf_base_addr_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (4 - 2)); |
OUT_BCS_RELOC(batch, mfc_context->bsd_mpc_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfc_avc_img_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
int width_in_mbs = (mfc_context->surface_state.width + 15) / 16; |
int height_in_mbs = (mfc_context->surface_state.height + 15) / 16; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 13); |
OUT_BCS_BATCH(batch, MFX_AVC_IMG_STATE | (13 - 2)); |
OUT_BCS_BATCH(batch, |
((width_in_mbs * height_in_mbs) & 0xFFFF)); |
OUT_BCS_BATCH(batch, |
(height_in_mbs << 16) | |
(width_in_mbs << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 24) | /*Second Chroma QP Offset*/ |
(0 << 16) | /*Chroma QP Offset*/ |
(0 << 14) | /*Max-bit conformance Intra flag*/ |
(0 << 13) | /*Max Macroblock size conformance Inter flag*/ |
(1 << 12) | /*Should always be written as "1" */ |
(0 << 10) | /*QM Preset FLag */ |
(0 << 8) | /*Image Structure*/ |
(0 << 0) ); /*Current Decoed Image Frame Store ID, reserved in Encode mode*/ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /*Mininum Frame size*/ |
(0 << 15) | /*Disable reading of Macroblock Status Buffer*/ |
(0 << 14) | /*Load BitStream Pointer only once, 1 slic 1 frame*/ |
(0 << 13) | /*CABAC 0 word insertion test enable*/ |
(1 << 12) | /*MVUnpackedEnable,compliant to DXVA*/ |
(1 << 10) | /*Chroma Format IDC, 4:2:0*/ |
(1 << 7) | /*0:CAVLC encoding mode,1:CABAC*/ |
(0 << 6) | /*Only valid for VLD decoding mode*/ |
(0 << 5) | /*Constrained Intra Predition Flag, from PPS*/ |
(0 << 4) | /*Direct 8x8 inference flag*/ |
(0 << 3) | /*Only 8x8 IDCT Transform Mode Flag*/ |
(1 << 2) | /*Frame MB only flag*/ |
(0 << 1) | /*MBAFF mode is in active*/ |
(0 << 0) ); /*Field picture flag*/ |
OUT_BCS_BATCH(batch, 0); /*Mainly about MB rate control and debug, just ignoring*/ |
OUT_BCS_BATCH(batch, /*Inter and Intra Conformance Max size limit*/ |
(0xBB8 << 16) | /*InterMbMaxSz*/ |
(0xEE8) ); /*IntraMbMaxSz*/ |
OUT_BCS_BATCH(batch, 0); /*Reserved*/ |
OUT_BCS_BATCH(batch, 0); /*Slice QP Delta for bitrate control*/ |
OUT_BCS_BATCH(batch, 0); /*Slice QP Delta for bitrate control*/ |
OUT_BCS_BATCH(batch, 0x8C000000); |
OUT_BCS_BATCH(batch, 0x00010000); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfc_avc_img_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
int width_in_mbs = (mfc_context->surface_state.width + 15) / 16; |
int height_in_mbs = (mfc_context->surface_state.height + 15) / 16; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 16); |
OUT_BCS_BATCH(batch, MFX_AVC_IMG_STATE | (16 - 2)); |
OUT_BCS_BATCH(batch, |
((width_in_mbs * height_in_mbs) & 0xFFFF)); |
OUT_BCS_BATCH(batch, |
((height_in_mbs - 1) << 16) | |
((width_in_mbs - 1) << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 24) | /* Second Chroma QP Offset */ |
(0 << 16) | /* Chroma QP Offset */ |
(0 << 14) | /* Max-bit conformance Intra flag */ |
(0 << 13) | /* Max Macroblock size conformance Inter flag */ |
(0 << 12) | /* FIXME: Weighted_Pred_Flag */ |
(0 << 10) | /* FIXME: Weighted_BiPred_Idc */ |
(0 << 8) | /* FIXME: Image Structure */ |
(0 << 0) ); /* Current Decoed Image Frame Store ID, reserved in Encode mode */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* Mininum Frame size */ |
(0 << 15) | /* Disable reading of Macroblock Status Buffer */ |
(0 << 14) | /* Load BitStream Pointer only once, 1 slic 1 frame */ |
(0 << 13) | /* CABAC 0 word insertion test enable */ |
(1 << 12) | /* MVUnpackedEnable,compliant to DXVA */ |
(1 << 10) | /* Chroma Format IDC, 4:2:0 */ |
(0 << 9) | /* FIXME: MbMvFormatFlag */ |
(1 << 7) | /* 0:CAVLC encoding mode,1:CABAC */ |
(0 << 6) | /* Only valid for VLD decoding mode */ |
(0 << 5) | /* Constrained Intra Predition Flag, from PPS */ |
(0 << 4) | /* Direct 8x8 inference flag */ |
(0 << 3) | /* Only 8x8 IDCT Transform Mode Flag */ |
(1 << 2) | /* Frame MB only flag */ |
(0 << 1) | /* MBAFF mode is in active */ |
(0 << 0)); /* Field picture flag */ |
OUT_BCS_BATCH(batch, 0); /* Mainly about MB rate control and debug, just ignoring */ |
OUT_BCS_BATCH(batch, /* Inter and Intra Conformance Max size limit */ |
(0xBB8 << 16) | /* InterMbMaxSz */ |
(0xEE8) ); /* IntraMbMaxSz */ |
OUT_BCS_BATCH(batch, 0); /* Reserved */ |
OUT_BCS_BATCH(batch, 0); /* Slice QP Delta for bitrate control */ |
OUT_BCS_BATCH(batch, 0); /* Slice QP Delta for bitrate control */ |
OUT_BCS_BATCH(batch, 0x8C000000); |
OUT_BCS_BATCH(batch, 0x00010000); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void gen6_mfc_avc_slice_state(VADriverContextP ctx, |
int intra_slice, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 11);; |
OUT_BCS_BATCH(batch, MFX_AVC_SLICE_STATE | (11 - 2) ); |
if ( intra_slice ) |
OUT_BCS_BATCH(batch, 2); /*Slice Type: I Slice*/ |
else |
OUT_BCS_BATCH(batch, 0); /*Slice Type: P Slice*/ |
if ( intra_slice ) |
OUT_BCS_BATCH(batch, 0); /*no reference frames and pred_weight_table*/ |
else |
OUT_BCS_BATCH(batch, 0x00010000); /*1 reference frame*/ |
OUT_BCS_BATCH(batch, (0<<24) | /*Enable deblocking operation*/ |
(26<<16) | /*Slice Quantization Parameter*/ |
0x0202 ); |
OUT_BCS_BATCH(batch, 0); /*First MB X&Y , the postion of current slice*/ |
OUT_BCS_BATCH(batch, ( ((mfc_context->surface_state.height+15)/16) << 16) ); |
OUT_BCS_BATCH(batch, |
(0<<31) | /*RateControlCounterEnable = disable*/ |
(1<<30) | /*ResetRateControlCounter*/ |
(2<<28) | /*RC Triggle Mode = Loose Rate Control*/ |
(1<<19) | /*IsLastSlice*/ |
(0<<18) | /*BitstreamOutputFlag Compressed BitStream Output Disable Flag 0:enable 1:disable*/ |
(0<<17) | /*HeaderPresentFlag*/ |
(1<<16) | /*SliceData PresentFlag*/ |
(0<<15) | /*TailPresentFlag*/ |
(1<<13) | /*RBSP NAL TYPE*/ |
(0<<12) ); /*CabacZeroWordInsertionEnable*/ |
OUT_BCS_RELOC(batch, mfc_context->mfc_indirect_pak_bse_object.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
mfc_context->mfc_indirect_pak_bse_object.offset); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void gen6_mfc_avc_qm_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
int i; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 58); |
OUT_BCS_BATCH(batch, MFX_AVC_QM_STATE | 56); |
OUT_BCS_BATCH(batch, 0xFF ) ; |
for( i = 0; i < 56; i++) { |
OUT_BCS_BATCH(batch, 0x10101010); |
} |
ADVANCE_BCS_BATCH(batch); |
} |
static void gen6_mfc_avc_fqm_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
int i; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 113); |
OUT_BCS_BATCH(batch, MFC_AVC_FQM_STATE | (113 - 2)); |
for(i = 0; i < 112;i++) { |
OUT_BCS_BATCH(batch, 0x10001000); |
} |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfc_qm_state(VADriverContextP ctx, |
int qm_type, |
unsigned int *qm, |
int qm_length, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
unsigned int qm_buffer[16]; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
assert(qm_length <= 16); |
assert(sizeof(*qm) == 4); |
memcpy(qm_buffer, qm, qm_length * 4); |
BEGIN_BCS_BATCH(batch, 18); |
OUT_BCS_BATCH(batch, MFX_QM_STATE | (18 - 2)); |
OUT_BCS_BATCH(batch, qm_type << 0); |
intel_batchbuffer_data(batch, qm_buffer, 16 * 4); |
ADVANCE_BCS_BATCH(batch); |
} |
static void gen7_mfc_avc_qm_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
unsigned int qm[16] = { |
0x10101010, 0x10101010, 0x10101010, 0x10101010, |
0x10101010, 0x10101010, 0x10101010, 0x10101010, |
0x10101010, 0x10101010, 0x10101010, 0x10101010, |
0x10101010, 0x10101010, 0x10101010, 0x10101010 |
}; |
gen7_mfc_qm_state(ctx, MFX_QM_AVC_4X4_INTRA_MATRIX, qm, 12, gen6_encoder_context, batch); |
gen7_mfc_qm_state(ctx, MFX_QM_AVC_4X4_INTER_MATRIX, qm, 12, gen6_encoder_context, batch); |
gen7_mfc_qm_state(ctx, MFX_QM_AVC_8x8_INTRA_MATRIX, qm, 16, gen6_encoder_context, batch); |
gen7_mfc_qm_state(ctx, MFX_QM_AVC_8x8_INTER_MATRIX, qm, 16, gen6_encoder_context, batch); |
} |
static void |
gen7_mfc_fqm_state(VADriverContextP ctx, |
int fqm_type, |
unsigned int *fqm, |
int fqm_length, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
unsigned int fqm_buffer[32]; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
assert(fqm_length <= 32); |
assert(sizeof(*fqm) == 4); |
memcpy(fqm_buffer, fqm, fqm_length * 4); |
BEGIN_BCS_BATCH(batch, 34); |
OUT_BCS_BATCH(batch, MFX_FQM_STATE | (34 - 2)); |
OUT_BCS_BATCH(batch, fqm_type << 0); |
intel_batchbuffer_data(batch, fqm_buffer, 32 * 4); |
ADVANCE_BCS_BATCH(batch); |
} |
static void gen7_mfc_avc_fqm_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
unsigned int qm[32] = { |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000 |
}; |
gen7_mfc_fqm_state(ctx, MFX_QM_AVC_4X4_INTRA_MATRIX, qm, 24, gen6_encoder_context, batch); |
gen7_mfc_fqm_state(ctx, MFX_QM_AVC_4X4_INTER_MATRIX, qm, 24, gen6_encoder_context, batch); |
gen7_mfc_fqm_state(ctx, MFX_QM_AVC_8x8_INTRA_MATRIX, qm, 32, gen6_encoder_context, batch); |
gen7_mfc_fqm_state(ctx, MFX_QM_AVC_8x8_INTER_MATRIX, qm, 32, gen6_encoder_context, batch); |
} |
static void gen6_mfc_avc_ref_idx_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
int i; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 10); |
OUT_BCS_BATCH(batch, MFX_AVC_REF_IDX_STATE | 8); |
OUT_BCS_BATCH(batch, 0); //Select L0 |
OUT_BCS_BATCH(batch, 0x80808000); //Only 1 reference |
for(i = 0; i < 7; i++) { |
OUT_BCS_BATCH(batch, 0x80808080); |
} |
ADVANCE_BCS_BATCH(batch); |
} |
static int |
gen6_mfc_avc_pak_object_intra(VADriverContextP ctx, int x, int y, int end_mb, int qp,unsigned int *msg, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
int len_in_dwords = 11; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, len_in_dwords); |
OUT_BCS_BATCH(batch, MFC_AVC_PAK_OBJECT | (len_in_dwords - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
(0 << 24) | /* PackedMvNum, Debug*/ |
(0 << 20) | /* No motion vector */ |
(1 << 19) | /* CbpDcY */ |
(1 << 18) | /* CbpDcU */ |
(1 << 17) | /* CbpDcV */ |
(msg[0] & 0xFFFF) ); |
OUT_BCS_BATCH(batch, (0xFFFF<<16) | (y << 8) | x); /* Code Block Pattern for Y*/ |
OUT_BCS_BATCH(batch, 0x000F000F); /* Code Block Pattern */ |
OUT_BCS_BATCH(batch, (0 << 27) | (end_mb << 26) | qp); /* Last MB */ |
/*Stuff for Intra MB*/ |
OUT_BCS_BATCH(batch, msg[1]); /* We using Intra16x16 no 4x4 predmode*/ |
OUT_BCS_BATCH(batch, msg[2]); |
OUT_BCS_BATCH(batch, msg[3]&0xFC); |
OUT_BCS_BATCH(batch, 0x8040000); /*MaxSizeInWord and TargetSzieInWord*/ |
ADVANCE_BCS_BATCH(batch); |
return len_in_dwords; |
} |
static int gen6_mfc_avc_pak_object_inter(VADriverContextP ctx, int x, int y, int end_mb, int qp, unsigned int offset, |
struct gen6_encoder_context *gen6_encoder_context, struct intel_batchbuffer *batch) |
{ |
int len_in_dwords = 11; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, len_in_dwords); |
OUT_BCS_BATCH(batch, MFC_AVC_PAK_OBJECT | (len_in_dwords - 2)); |
OUT_BCS_BATCH(batch, 32); /* 32 MV*/ |
OUT_BCS_BATCH(batch, offset); |
OUT_BCS_BATCH(batch, |
(1 << 24) | /* PackedMvNum, Debug*/ |
(4 << 20) | /* 8 MV, SNB don't use it*/ |
(1 << 19) | /* CbpDcY */ |
(1 << 18) | /* CbpDcU */ |
(1 << 17) | /* CbpDcV */ |
(0 << 15) | /* Transform8x8Flag = 0*/ |
(0 << 14) | /* Frame based*/ |
(0 << 13) | /* Inter MB */ |
(1 << 8) | /* MbType = P_L0_16x16 */ |
(0 << 7) | /* MBZ for frame */ |
(0 << 6) | /* MBZ */ |
(2 << 4) | /* MBZ for inter*/ |
(0 << 3) | /* MBZ */ |
(0 << 2) | /* SkipMbFlag */ |
(0 << 0)); /* InterMbMode */ |
OUT_BCS_BATCH(batch, (0xFFFF<<16) | (y << 8) | x); /* Code Block Pattern for Y*/ |
OUT_BCS_BATCH(batch, 0x000F000F); /* Code Block Pattern */ |
OUT_BCS_BATCH(batch, (0 << 27) | (end_mb << 26) | qp); /* Last MB */ |
/*Stuff for Inter MB*/ |
OUT_BCS_BATCH(batch, 0x0); |
OUT_BCS_BATCH(batch, 0x0); |
OUT_BCS_BATCH(batch, 0x0); |
OUT_BCS_BATCH(batch, 0xF0020000); /*MaxSizeInWord and TargetSzieInWord*/ |
ADVANCE_BCS_BATCH(batch); |
return len_in_dwords; |
} |
static void gen6_mfc_init(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
dri_bo *bo; |
int i; |
VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param->buffer; |
int width_in_mbs = pSequenceParameter->picture_width_in_mbs; |
/*Encode common setup for MFC*/ |
dri_bo_unreference(mfc_context->post_deblocking_output.bo); |
mfc_context->post_deblocking_output.bo = NULL; |
dri_bo_unreference(mfc_context->pre_deblocking_output.bo); |
mfc_context->pre_deblocking_output.bo = NULL; |
dri_bo_unreference(mfc_context->uncompressed_picture_source.bo); |
mfc_context->uncompressed_picture_source.bo = NULL; |
dri_bo_unreference(mfc_context->mfc_indirect_pak_bse_object.bo); |
mfc_context->mfc_indirect_pak_bse_object.bo = NULL; |
for (i = 0; i < NUM_MFC_DMV_BUFFERS; i++){ |
dri_bo_unreference(mfc_context->direct_mv_buffers[i].bo); |
mfc_context->direct_mv_buffers[i].bo = NULL; |
} |
for (i = 0; i < MAX_MFC_REFERENCE_SURFACES; i++){ |
if (mfc_context->reference_surfaces[i].bo != NULL) |
dri_bo_unreference(mfc_context->reference_surfaces[i].bo); |
mfc_context->reference_surfaces[i].bo = NULL; |
} |
dri_bo_unreference(mfc_context->intra_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
width_in_mbs * 64, |
64); |
assert(bo); |
mfc_context->intra_row_store_scratch_buffer.bo = bo; |
dri_bo_unreference(mfc_context->deblocking_filter_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
4 * width_in_mbs * 64, /* 4 * width_in_mbs * 64 */ |
64); |
assert(bo); |
mfc_context->deblocking_filter_row_store_scratch_buffer.bo = bo; |
dri_bo_unreference(mfc_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
128 * width_in_mbs, /* 2 * widht_in_mbs * 64 */ |
0x1000); |
assert(bo); |
mfc_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
} |
void gen6_mfc_avc_pipeline_programing(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *main_batch = gen6_encoder_context->base.batch; |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param->buffer; |
VAEncSliceParameterBuffer *pSliceParameter = (VAEncSliceParameterBuffer *)encode_state->slice_params[0]->buffer; /* FIXME: multi slices */ |
unsigned int *msg = NULL, offset = 0; |
int emit_new_state = 1, object_len_in_bytes; |
int is_intra = pSliceParameter->slice_flags.bits.is_intra; |
int width_in_mbs = (mfc_context->surface_state.width + 15) / 16; |
int height_in_mbs = (mfc_context->surface_state.height + 15) / 16; |
int x,y; |
struct intel_batchbuffer *batch = intel_batchbuffer_new(&i965->intel, I915_EXEC_BSD, width_in_mbs * height_in_mbs * 12 * 4 + 0x800); |
intel_batchbuffer_start_atomic_bcs(batch, width_in_mbs * height_in_mbs * 12 * 4 + 0x700); |
if (is_intra) { |
dri_bo_map(vme_context->vme_output.bo , 1); |
msg = (unsigned int *)vme_context->vme_output.bo->virtual; |
} |
for (y = 0; y < height_in_mbs; y++) { |
for (x = 0; x < width_in_mbs; x++) { |
int last_mb = (y == (height_in_mbs-1)) && ( x == (width_in_mbs-1) ); |
int qp = pSequenceParameter->initial_qp; |
if (emit_new_state) { |
intel_batchbuffer_emit_mi_flush(batch); |
if (IS_GEN7(i965->intel.device_id)) { |
gen7_mfc_pipe_mode_select(ctx, MFX_FORMAT_AVC, gen6_encoder_context, batch); |
gen7_mfc_surface_state(ctx, gen6_encoder_context, batch); |
gen7_mfc_ind_obj_base_addr_state(ctx, gen6_encoder_context, batch); |
} else { |
gen6_mfc_pipe_mode_select(ctx, gen6_encoder_context, batch); |
gen6_mfc_surface_state(ctx, gen6_encoder_context, batch); |
gen6_mfc_ind_obj_base_addr_state(ctx, gen6_encoder_context, batch); |
} |
gen6_mfc_pipe_buf_addr_state(ctx, gen6_encoder_context, batch); |
gen6_mfc_bsp_buf_base_addr_state(ctx, gen6_encoder_context, batch); |
if (IS_GEN7(i965->intel.device_id)) { |
gen7_mfc_avc_img_state(ctx, gen6_encoder_context, batch); |
gen7_mfc_avc_qm_state(ctx, gen6_encoder_context, batch); |
gen7_mfc_avc_fqm_state(ctx, gen6_encoder_context, batch); |
} else { |
gen6_mfc_avc_img_state(ctx, gen6_encoder_context, batch); |
gen6_mfc_avc_qm_state(ctx, gen6_encoder_context, batch); |
gen6_mfc_avc_fqm_state(ctx, gen6_encoder_context, batch); |
} |
gen6_mfc_avc_ref_idx_state(ctx, gen6_encoder_context, batch); |
gen6_mfc_avc_slice_state(ctx, is_intra, gen6_encoder_context, batch); |
emit_new_state = 0; |
} |
if (is_intra) { |
assert(msg); |
object_len_in_bytes = gen6_mfc_avc_pak_object_intra(ctx, x, y, last_mb, qp, msg, gen6_encoder_context, batch); |
msg += 4; |
} else { |
object_len_in_bytes = gen6_mfc_avc_pak_object_inter(ctx, x, y, last_mb, qp, offset, gen6_encoder_context, batch); |
offset += 64; |
} |
if (intel_batchbuffer_check_free_space(batch, object_len_in_bytes) == 0) { |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
emit_new_state = 1; |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
} |
} |
} |
if (is_intra) |
dri_bo_unmap(vme_context->vme_output.bo); |
intel_batchbuffer_align(batch, 8); |
BEGIN_BCS_BATCH(batch, 2); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, MI_BATCH_BUFFER_END); |
ADVANCE_BCS_BATCH(batch); |
intel_batchbuffer_end_atomic(batch); |
/* chain to the main batch buffer */ |
intel_batchbuffer_start_atomic_bcs(main_batch, 0x100); |
intel_batchbuffer_emit_mi_flush(main_batch); |
BEGIN_BCS_BATCH(main_batch, 2); |
OUT_BCS_BATCH(main_batch, MI_BATCH_BUFFER_START | (1 << 8)); |
OUT_BCS_RELOC(main_batch, |
batch->buffer, |
I915_GEM_DOMAIN_COMMAND, 0, |
0); |
ADVANCE_BCS_BATCH(main_batch); |
intel_batchbuffer_end_atomic(main_batch); |
// end programing |
intel_batchbuffer_free(batch); |
} |
static VAStatus gen6_mfc_avc_prepare(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
struct object_surface *obj_surface; |
struct object_buffer *obj_buffer; |
dri_bo *bo; |
VAEncPictureParameterBufferH264 *pPicParameter = (VAEncPictureParameterBufferH264 *)encode_state->pic_param->buffer; |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
/*Setup all the input&output object*/ |
obj_surface = SURFACE(pPicParameter->reconstructed_picture); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
mfc_context->post_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(mfc_context->post_deblocking_output.bo); |
mfc_context->surface_state.width = obj_surface->orig_width; |
mfc_context->surface_state.height = obj_surface->orig_height; |
mfc_context->surface_state.w_pitch = obj_surface->width; |
mfc_context->surface_state.h_pitch = obj_surface->height; |
obj_surface = SURFACE(pPicParameter->reference_picture); |
assert(obj_surface); |
if (obj_surface->bo != NULL) { |
mfc_context->reference_surfaces[0].bo = obj_surface->bo; |
dri_bo_reference(obj_surface->bo); |
} |
obj_surface = SURFACE(encode_state->current_render_target); |
assert(obj_surface && obj_surface->bo); |
mfc_context->uncompressed_picture_source.bo = obj_surface->bo; |
dri_bo_reference(mfc_context->uncompressed_picture_source.bo); |
obj_buffer = BUFFER (pPicParameter->coded_buf); /* FIXME: fix this later */ |
bo = obj_buffer->buffer_store->bo; |
assert(bo); |
mfc_context->mfc_indirect_pak_bse_object.bo = bo; |
mfc_context->mfc_indirect_pak_bse_object.offset = ALIGN(sizeof(VACodedBufferSegment), 64); |
dri_bo_reference(mfc_context->mfc_indirect_pak_bse_object.bo); |
/*Programing bcs pipeline*/ |
gen6_mfc_avc_pipeline_programing(ctx, encode_state, gen6_encoder_context); //filling the pipeline |
return vaStatus; |
} |
static VAStatus gen6_mfc_run(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct intel_batchbuffer *batch = gen6_encoder_context->base.batch; |
intel_batchbuffer_flush(batch); //run the pipeline |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen6_mfc_stop(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
#if 0 |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
VAEncPictureParameterBufferH264 *pPicParameter = (VAEncPictureParameterBufferH264 *)encode_state->pic_param->buffer; |
struct object_surface *obj_surface = SURFACE(pPicParameter->reconstructed_picture); |
//struct object_surface *obj_surface = SURFACE(pPicParameter->reference_picture[0]); |
//struct object_surface *obj_surface = SURFACE(encode_state->current_render_target); |
my_debug(obj_surface); |
#endif |
return VA_STATUS_SUCCESS; |
} |
static VAStatus |
gen6_mfc_avc_encode_picture(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
gen6_mfc_init(ctx, encode_state, gen6_encoder_context); |
gen6_mfc_avc_prepare(ctx, encode_state, gen6_encoder_context); |
gen6_mfc_run(ctx, encode_state, gen6_encoder_context); |
gen6_mfc_stop(ctx, encode_state, gen6_encoder_context); |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
gen6_mfc_pipeline(VADriverContextP ctx, |
VAProfile profile, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
VAStatus vaStatus; |
switch (profile) { |
case VAProfileH264Baseline: |
vaStatus = gen6_mfc_avc_encode_picture(ctx, encode_state, gen6_encoder_context); |
break; |
/* FIXME: add for other profile */ |
default: |
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; |
break; |
} |
return vaStatus; |
} |
Bool gen6_mfc_context_init(VADriverContextP ctx, struct gen6_mfc_context *mfc_context) |
{ |
return True; |
} |
Bool gen6_mfc_context_destroy(struct gen6_mfc_context *mfc_context) |
{ |
int i; |
dri_bo_unreference(mfc_context->post_deblocking_output.bo); |
mfc_context->post_deblocking_output.bo = NULL; |
dri_bo_unreference(mfc_context->pre_deblocking_output.bo); |
mfc_context->pre_deblocking_output.bo = NULL; |
dri_bo_unreference(mfc_context->uncompressed_picture_source.bo); |
mfc_context->uncompressed_picture_source.bo = NULL; |
dri_bo_unreference(mfc_context->mfc_indirect_pak_bse_object.bo); |
mfc_context->mfc_indirect_pak_bse_object.bo = NULL; |
for (i = 0; i < NUM_MFC_DMV_BUFFERS; i++){ |
dri_bo_unreference(mfc_context->direct_mv_buffers[i].bo); |
mfc_context->direct_mv_buffers[i].bo = NULL; |
} |
dri_bo_unreference(mfc_context->intra_row_store_scratch_buffer.bo); |
mfc_context->intra_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(mfc_context->deblocking_filter_row_store_scratch_buffer.bo); |
mfc_context->deblocking_filter_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(mfc_context->bsd_mpc_row_store_scratch_buffer.bo); |
mfc_context->bsd_mpc_row_store_scratch_buffer.bo = NULL; |
return True; |
} |
/drivers/video/i965/gen6_mfc.h |
---|
0,0 → 1,114 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Zhou Chang <chang.zhou@intel.com> |
* |
*/ |
#ifndef _GEN6_MFC_H_ |
#define _GEN6_MFC_H_ |
#include <xf86drm.h> |
#include <drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
struct encode_state; |
#define MAX_MFC_REFERENCE_SURFACES 16 |
#define NUM_MFC_DMV_BUFFERS 34 |
struct gen6_mfc_context |
{ |
struct { |
unsigned int width; |
unsigned int height; |
unsigned int w_pitch; |
unsigned int h_pitch; |
} surface_state; |
//MFX_PIPE_BUF_ADDR_STATE |
struct { |
dri_bo *bo; |
} post_deblocking_output; //OUTPUT: reconstructed picture |
struct { |
dri_bo *bo; |
} pre_deblocking_output; //OUTPUT: reconstructed picture with deblocked |
struct { |
dri_bo *bo; |
} uncompressed_picture_source; //INPUT: original compressed image |
struct { |
dri_bo *bo; |
} intra_row_store_scratch_buffer; //INTERNAL: |
struct { |
dri_bo *bo; |
} deblocking_filter_row_store_scratch_buffer; //INTERNAL: |
struct { |
dri_bo *bo; |
} reference_surfaces[MAX_MFC_REFERENCE_SURFACES]; //INTERNAL: refrence surfaces |
//MFX_IND_OBJ_BASE_ADDR_STATE |
struct{ |
dri_bo *bo; |
} mfc_indirect_mv_object; //INPUT: the blocks' mv info |
struct { |
dri_bo *bo; |
int offset; |
} mfc_indirect_pak_bse_object; //OUTPUT: the compressed bitstream |
//MFX_BSP_BUF_BASE_ADDR_STATE |
struct { |
dri_bo *bo; |
}bsd_mpc_row_store_scratch_buffer; //INTERNAL: |
//MFX_AVC_DIRECTMODE_STATE |
struct { |
dri_bo *bo; |
}direct_mv_buffers[NUM_MFC_DMV_BUFFERS]; //INTERNAL: 0-31 as input,32 and 33 as output |
}; |
VAStatus |
gen6_mfc_pipeline(VADriverContextP ctx, |
VAProfile profile, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context); |
Bool gen6_mfc_context_init(VADriverContextP ctx, struct gen6_mfc_context *mfc_context); |
Bool gen6_mfc_context_destroy(struct gen6_mfc_context *mfc_context); |
VAStatus |
gen75_mfc_pipeline(VADriverContextP ctx, |
VAProfile profile, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context); |
Bool gen75_mfc_context_init(VADriverContextP ctx, struct gen6_mfc_context *mfc_context); |
Bool gen75_mfc_context_destroy(struct gen6_mfc_context *mfc_context); |
#endif /* _GEN6_MFC_BCS_H_ */ |
/drivers/video/i965/gen6_mfd.c |
---|
0,0 → 1,2051 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#ifndef HAVE_GEN_AVC_SURFACE |
#define HAVE_GEN_AVC_SURFACE 1 |
#endif |
#include "sysdeps.h" |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_decoder_utils.h" |
#include "gen6_mfd.h" |
static const uint32_t zigzag_direct[64] = { |
0, 1, 8, 16, 9, 2, 3, 10, |
17, 24, 32, 25, 18, 11, 4, 5, |
12, 19, 26, 33, 40, 48, 41, 34, |
27, 20, 13, 6, 7, 14, 21, 28, |
35, 42, 49, 56, 57, 50, 43, 36, |
29, 22, 15, 23, 30, 37, 44, 51, |
58, 59, 52, 45, 38, 31, 39, 46, |
53, 60, 61, 54, 47, 55, 62, 63 |
}; |
static void |
gen6_mfd_avc_frame_store_index(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i, j; |
assert(ARRAY_ELEMS(gen6_mfd_context->reference_surface) == ARRAY_ELEMS(pic_param->ReferenceFrames)); |
for (i = 0; i < ARRAY_ELEMS(gen6_mfd_context->reference_surface); i++) { |
int found = 0; |
if (gen6_mfd_context->reference_surface[i].surface_id == VA_INVALID_ID) |
continue; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
VAPictureH264 *ref_pic = &pic_param->ReferenceFrames[j]; |
if (ref_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (gen6_mfd_context->reference_surface[i].surface_id == ref_pic->picture_id) { |
found = 1; |
break; |
} |
} |
if (!found) { |
struct object_surface *obj_surface = SURFACE(gen6_mfd_context->reference_surface[i].surface_id); |
obj_surface->flags &= ~SURFACE_REFERENCED; |
if ((obj_surface->flags & SURFACE_ALL_MASK) == SURFACE_DISPLAYED) { |
dri_bo_unreference(obj_surface->bo); |
obj_surface->bo = NULL; |
obj_surface->flags &= ~SURFACE_REF_DIS_MASK; |
} |
if (obj_surface->free_private_data) |
obj_surface->free_private_data(&obj_surface->private_data); |
gen6_mfd_context->reference_surface[i].surface_id = VA_INVALID_ID; |
gen6_mfd_context->reference_surface[i].frame_store_id = -1; |
} |
} |
for (i = 0; i < ARRAY_ELEMS(pic_param->ReferenceFrames); i++) { |
VAPictureH264 *ref_pic = &pic_param->ReferenceFrames[i]; |
int found = 0; |
if (ref_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
for (j = 0; j < ARRAY_ELEMS(gen6_mfd_context->reference_surface); j++) { |
if (gen6_mfd_context->reference_surface[j].surface_id == VA_INVALID_ID) |
continue; |
if (gen6_mfd_context->reference_surface[j].surface_id == ref_pic->picture_id) { |
found = 1; |
break; |
} |
} |
if (!found) { |
int frame_idx; |
struct object_surface *obj_surface = SURFACE(ref_pic->picture_id); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N', 'V', '1', '2'), SUBSAMPLE_YUV420); |
for (frame_idx = 0; frame_idx < ARRAY_ELEMS(gen6_mfd_context->reference_surface); frame_idx++) { |
for (j = 0; j < ARRAY_ELEMS(gen6_mfd_context->reference_surface); j++) { |
if (gen6_mfd_context->reference_surface[j].surface_id == VA_INVALID_ID) |
continue; |
if (gen6_mfd_context->reference_surface[j].frame_store_id == frame_idx) |
break; |
} |
if (j == ARRAY_ELEMS(gen6_mfd_context->reference_surface)) |
break; |
} |
assert(frame_idx < ARRAY_ELEMS(gen6_mfd_context->reference_surface)); |
for (j = 0; j < ARRAY_ELEMS(gen6_mfd_context->reference_surface); j++) { |
if (gen6_mfd_context->reference_surface[j].surface_id == VA_INVALID_ID) { |
gen6_mfd_context->reference_surface[j].surface_id = ref_pic->picture_id; |
gen6_mfd_context->reference_surface[j].frame_store_id = frame_idx; |
break; |
} |
} |
} |
} |
/* sort */ |
for (i = 0; i < ARRAY_ELEMS(gen6_mfd_context->reference_surface) - 1; i++) { |
if (gen6_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID && |
gen6_mfd_context->reference_surface[i].frame_store_id == i) |
continue; |
for (j = i + 1; j < ARRAY_ELEMS(gen6_mfd_context->reference_surface); j++) { |
if (gen6_mfd_context->reference_surface[j].surface_id != VA_INVALID_ID && |
gen6_mfd_context->reference_surface[j].frame_store_id == i) { |
VASurfaceID id = gen6_mfd_context->reference_surface[i].surface_id; |
int frame_idx = gen6_mfd_context->reference_surface[i].frame_store_id; |
gen6_mfd_context->reference_surface[i].surface_id = gen6_mfd_context->reference_surface[j].surface_id; |
gen6_mfd_context->reference_surface[i].frame_store_id = gen6_mfd_context->reference_surface[j].frame_store_id; |
gen6_mfd_context->reference_surface[j].surface_id = id; |
gen6_mfd_context->reference_surface[j].frame_store_id = frame_idx; |
break; |
} |
} |
} |
} |
static void |
gen6_mfd_init_avc_surface(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
struct object_surface *obj_surface) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
GenAvcSurface *gen6_avc_surface = obj_surface->private_data; |
int height_in_mbs; |
obj_surface->free_private_data = gen_free_avc_surface; |
height_in_mbs = ((pic_param->picture_height_in_mbs_minus1 + 1) & 0xff); /* frame height */ |
if (!gen6_avc_surface) { |
gen6_avc_surface = calloc(sizeof(GenAvcSurface), 1); |
assert((obj_surface->size & 0x3f) == 0); |
obj_surface->private_data = gen6_avc_surface; |
} |
gen6_avc_surface->dmv_bottom_flag = (pic_param->pic_fields.bits.field_pic_flag && |
!pic_param->seq_fields.bits.direct_8x8_inference_flag); |
if (gen6_avc_surface->dmv_top == NULL) { |
gen6_avc_surface->dmv_top = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
128 * height_in_mbs * 64, /* scalable with frame height */ |
0x1000); |
} |
if (gen6_avc_surface->dmv_bottom_flag && |
gen6_avc_surface->dmv_bottom == NULL) { |
gen6_avc_surface->dmv_bottom = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
128 * height_in_mbs * 64, /* scalable with frame height */ |
0x1000); |
} |
} |
static void |
gen6_mfd_pipe_mode_select(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
assert(standard_select == MFX_FORMAT_MPEG2 || |
standard_select == MFX_FORMAT_AVC || |
standard_select == MFX_FORMAT_VC1); |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFX_PIPE_MODE_SELECT | (4 - 2)); |
OUT_BCS_BATCH(batch, |
(MFD_MODE_VLD << 16) | /* VLD mode */ |
(0 << 10) | /* disable Stream-Out */ |
(gen6_mfd_context->post_deblocking_output.valid << 9) | /* Post Deblocking Output */ |
(gen6_mfd_context->pre_deblocking_output.valid << 8) | /* Pre Deblocking Output */ |
(0 << 7) | /* disable TLB prefectch */ |
(0 << 5) | /* not in stitch mode */ |
(MFX_CODEC_DECODE << 4) | /* decoding mode */ |
(standard_select << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 20) | /* round flag in PB slice */ |
(0 << 19) | /* round flag in Intra8x8 */ |
(0 << 7) | /* expand NOA bus flag */ |
(1 << 6) | /* must be 1 */ |
(0 << 5) | /* disable clock gating for NOA */ |
(0 << 4) | /* terminate if AVC motion and POC table error occurs */ |
(0 << 3) | /* terminate if AVC mbdata error occurs */ |
(0 << 2) | /* terminate if AVC CABAC/CAVLC decode error occurs */ |
(0 << 1) | /* AVC long field motion vector */ |
(1 << 0)); /* always calculate AVC ILDB boundary strength */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_surface_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(decode_state->current_render_target); |
assert(obj_surface); |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_SURFACE_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
((obj_surface->orig_height - 1) << 19) | |
((obj_surface->orig_width - 1) << 6)); |
OUT_BCS_BATCH(batch, |
(MFX_SURFACE_PLANAR_420_8 << 28) | /* 420 planar YUV surface */ |
(1 << 27) | /* must be 1 for interleave U/V, hardware requirement */ |
(0 << 22) | /* surface object control state, FIXME??? */ |
((obj_surface->width - 1) << 3) | /* pitch */ |
(0 << 2) | /* must be 0 for interleave U/V */ |
(1 << 1) | /* must be y-tiled */ |
(I965_TILEWALK_YMAJOR << 0)); /* tile walk, FIXME: must be 1 ??? */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* must be 0 for interleave U/V */ |
(obj_surface->height)); /* y offset for U(cb) */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_pipe_buf_addr_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i; |
BEGIN_BCS_BATCH(batch, 24); |
OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (24 - 2)); |
if (gen6_mfd_context->pre_deblocking_output.valid) |
OUT_BCS_RELOC(batch, gen6_mfd_context->pre_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen6_mfd_context->post_deblocking_output.valid) |
OUT_BCS_RELOC(batch, gen6_mfd_context->post_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
if (gen6_mfd_context->intra_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen6_mfd_context->intra_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
/* DW 7..22 */ |
for (i = 0; i < ARRAY_ELEMS(gen6_mfd_context->reference_surface); i++) { |
struct object_surface *obj_surface; |
if (gen6_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
obj_surface = SURFACE(gen6_mfd_context->reference_surface[i].surface_id); |
assert(obj_surface && obj_surface->bo); |
OUT_BCS_RELOC(batch, obj_surface->bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
} else { |
OUT_BCS_BATCH(batch, 0); |
} |
} |
OUT_BCS_BATCH(batch, 0); /* ignore DW23 for decoding */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_ind_obj_base_addr_state(VADriverContextP ctx, |
dri_bo *slice_data_bo, |
int standard_select, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 11); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (11 - 2)); |
OUT_BCS_RELOC(batch, slice_data_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); /* MFX Indirect Bitstream Object Base Address */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_bsp_buf_base_addr_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (4 - 2)); |
if (gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen6_mfd_context->mpr_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen6_mfd_context->mpr_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen6_mfd_context->bitplane_read_buffer.valid) |
OUT_BCS_RELOC(batch, gen6_mfd_context->bitplane_read_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_avc_img_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
int qm_present_flag; |
int img_struct; |
int mbaff_frame_flag; |
unsigned int width_in_mbs, height_in_mbs; |
VAPictureParameterBufferH264 *pic_param; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
assert(!(pic_param->CurrPic.flags & VA_PICTURE_H264_INVALID)); |
if (decode_state->iq_matrix && decode_state->iq_matrix->buffer) |
qm_present_flag = 1; |
else |
qm_present_flag = 0; /* built-in QM matrices */ |
if (pic_param->CurrPic.flags & VA_PICTURE_H264_TOP_FIELD) |
img_struct = 1; |
else if (pic_param->CurrPic.flags & VA_PICTURE_H264_BOTTOM_FIELD) |
img_struct = 3; |
else |
img_struct = 0; |
if ((img_struct & 0x1) == 0x1) { |
assert(pic_param->pic_fields.bits.field_pic_flag == 0x1); |
} else { |
assert(pic_param->pic_fields.bits.field_pic_flag == 0x0); |
} |
if (pic_param->seq_fields.bits.frame_mbs_only_flag) { /* a frame containing only frame macroblocks */ |
assert(pic_param->seq_fields.bits.mb_adaptive_frame_field_flag == 0); |
assert(pic_param->pic_fields.bits.field_pic_flag == 0); |
} else { |
assert(pic_param->seq_fields.bits.direct_8x8_inference_flag == 1); /* see H.264 spec */ |
} |
mbaff_frame_flag = (pic_param->seq_fields.bits.mb_adaptive_frame_field_flag && |
!pic_param->pic_fields.bits.field_pic_flag); |
width_in_mbs = ((pic_param->picture_width_in_mbs_minus1 + 1) & 0xff); |
height_in_mbs = ((pic_param->picture_height_in_mbs_minus1 + 1) & 0xff); /* frame height */ |
assert(!((width_in_mbs * height_in_mbs) & 0x8000)); /* hardware requirement */ |
/* MFX unit doesn't support 4:2:2 and 4:4:4 picture */ |
assert(pic_param->seq_fields.bits.chroma_format_idc == 0 || /* monochrome picture */ |
pic_param->seq_fields.bits.chroma_format_idc == 1); /* 4:2:0 */ |
assert(pic_param->seq_fields.bits.residual_colour_transform_flag == 0); /* only available for 4:4:4 */ |
BEGIN_BCS_BATCH(batch, 13); |
OUT_BCS_BATCH(batch, MFX_AVC_IMG_STATE | (13 - 2)); |
OUT_BCS_BATCH(batch, |
((width_in_mbs * height_in_mbs) & 0x7fff)); |
OUT_BCS_BATCH(batch, |
(height_in_mbs << 16) | |
(width_in_mbs << 0)); |
OUT_BCS_BATCH(batch, |
((pic_param->second_chroma_qp_index_offset & 0x1f) << 24) | |
((pic_param->chroma_qp_index_offset & 0x1f) << 16) | |
(0 << 14) | /* Max-bit conformance Intra flag ??? FIXME */ |
(0 << 13) | /* Max Macroblock size conformance Inter flag ??? FIXME */ |
(1 << 12) | /* always 1, hardware requirement */ |
(qm_present_flag << 10) | |
(img_struct << 8) | |
(16 << 0)); |
OUT_BCS_BATCH(batch, |
(pic_param->seq_fields.bits.chroma_format_idc << 10) | |
(pic_param->pic_fields.bits.entropy_coding_mode_flag << 7) | |
((!pic_param->pic_fields.bits.reference_pic_flag) << 6) | |
(pic_param->pic_fields.bits.constrained_intra_pred_flag << 5) | |
(pic_param->seq_fields.bits.direct_8x8_inference_flag << 4) | |
(pic_param->pic_fields.bits.transform_8x8_mode_flag << 3) | |
(pic_param->seq_fields.bits.frame_mbs_only_flag << 2) | |
(mbaff_frame_flag << 1) | |
(pic_param->pic_fields.bits.field_pic_flag << 0)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_avc_qm_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
int cmd_len; |
VAIQMatrixBufferH264 *iq_matrix; |
VAPictureParameterBufferH264 *pic_param; |
if (!decode_state->iq_matrix || !decode_state->iq_matrix->buffer) |
return; |
iq_matrix = (VAIQMatrixBufferH264 *)decode_state->iq_matrix->buffer; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
cmd_len = 2 + 6 * 4; /* always load six 4x4 scaling matrices */ |
if (pic_param->pic_fields.bits.transform_8x8_mode_flag) |
cmd_len += 2 * 16; /* load two 8x8 scaling matrices */ |
BEGIN_BCS_BATCH(batch, cmd_len); |
OUT_BCS_BATCH(batch, MFX_AVC_QM_STATE | (cmd_len - 2)); |
if (pic_param->pic_fields.bits.transform_8x8_mode_flag) |
OUT_BCS_BATCH(batch, |
(0x0 << 8) | /* don't use default built-in matrices */ |
(0xff << 0)); /* six 4x4 and two 8x8 scaling matrices */ |
else |
OUT_BCS_BATCH(batch, |
(0x0 << 8) | /* don't use default built-in matrices */ |
(0x3f << 0)); /* six 4x4 scaling matrices */ |
intel_batchbuffer_data(batch, &iq_matrix->ScalingList4x4[0][0], 6 * 4 * 4); |
if (pic_param->pic_fields.bits.transform_8x8_mode_flag) |
intel_batchbuffer_data(batch, &iq_matrix->ScalingList8x8[0][0], 2 * 16 * 4); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_avc_directmode_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
struct object_surface *obj_surface; |
GenAvcSurface *gen6_avc_surface; |
VAPictureH264 *va_pic; |
int i, j; |
BEGIN_BCS_BATCH(batch, 69); |
OUT_BCS_BATCH(batch, MFX_AVC_DIRECTMODE_STATE | (69 - 2)); |
/* reference surfaces 0..15 */ |
for (i = 0; i < ARRAY_ELEMS(gen6_mfd_context->reference_surface); i++) { |
if (gen6_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
obj_surface = SURFACE(gen6_mfd_context->reference_surface[i].surface_id); |
assert(obj_surface); |
gen6_avc_surface = obj_surface->private_data; |
if (gen6_avc_surface == NULL) { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} else { |
OUT_BCS_RELOC(batch, gen6_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
if (gen6_avc_surface->dmv_bottom_flag == 1) |
OUT_BCS_RELOC(batch, gen6_avc_surface->dmv_bottom, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_RELOC(batch, gen6_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
} |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
/* the current decoding frame/field */ |
va_pic = &pic_param->CurrPic; |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface && obj_surface->bo && obj_surface->private_data); |
gen6_avc_surface = obj_surface->private_data; |
OUT_BCS_RELOC(batch, gen6_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
if (gen6_avc_surface->dmv_bottom_flag == 1) |
OUT_BCS_RELOC(batch, gen6_avc_surface->dmv_bottom, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_RELOC(batch, gen6_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
/* POC List */ |
for (i = 0; i < ARRAY_ELEMS(gen6_mfd_context->reference_surface); i++) { |
if (gen6_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
int found = 0; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
va_pic = &pic_param->ReferenceFrames[j]; |
if (va_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (va_pic->picture_id == gen6_mfd_context->reference_surface[i].surface_id) { |
found = 1; |
break; |
} |
} |
assert(found == 1); |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
OUT_BCS_BATCH(batch, va_pic->TopFieldOrderCnt); |
OUT_BCS_BATCH(batch, va_pic->BottomFieldOrderCnt); |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
va_pic = &pic_param->CurrPic; |
OUT_BCS_BATCH(batch, va_pic->TopFieldOrderCnt); |
OUT_BCS_BATCH(batch, va_pic->BottomFieldOrderCnt); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_avc_slice_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
VASliceParameterBufferH264 *next_slice_param, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
int width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
int height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; |
int slice_hor_pos, slice_ver_pos, next_slice_hor_pos, next_slice_ver_pos; |
int num_ref_idx_l0, num_ref_idx_l1; |
int mbaff_picture = (!pic_param->pic_fields.bits.field_pic_flag && |
pic_param->seq_fields.bits.mb_adaptive_frame_field_flag); |
int weighted_pred_idc = 0; |
int first_mb_in_slice = 0, first_mb_in_next_slice = 0; |
unsigned int chroma_log2_weight_denom, luma_log2_weight_denom; |
int slice_type; |
if (slice_param->slice_type == SLICE_TYPE_I || |
slice_param->slice_type == SLICE_TYPE_SI) { |
slice_type = SLICE_TYPE_I; |
} else if (slice_param->slice_type == SLICE_TYPE_P || |
slice_param->slice_type == SLICE_TYPE_SP) { |
slice_type = SLICE_TYPE_P; |
} else { |
assert(slice_param->slice_type == SLICE_TYPE_B); |
slice_type = SLICE_TYPE_B; |
} |
luma_log2_weight_denom = slice_param->luma_log2_weight_denom; |
chroma_log2_weight_denom = slice_param->chroma_log2_weight_denom; |
if (slice_type == SLICE_TYPE_I) { |
assert(slice_param->num_ref_idx_l0_active_minus1 == 0); |
assert(slice_param->num_ref_idx_l1_active_minus1 == 0); |
num_ref_idx_l0 = 0; |
num_ref_idx_l1 = 0; |
} else if (slice_type == SLICE_TYPE_P) { |
assert(slice_param->num_ref_idx_l1_active_minus1 == 0); |
num_ref_idx_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; |
num_ref_idx_l1 = 0; |
weighted_pred_idc = (pic_param->pic_fields.bits.weighted_pred_flag == 1); |
} else { |
num_ref_idx_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; |
num_ref_idx_l1 = slice_param->num_ref_idx_l1_active_minus1 + 1; |
weighted_pred_idc = pic_param->pic_fields.bits.weighted_bipred_idc; |
if (weighted_pred_idc == 2) { |
/* 8.4.3 - Derivation process for prediction weights (8-279) */ |
luma_log2_weight_denom = 5; |
chroma_log2_weight_denom = 5; |
} |
} |
first_mb_in_slice = slice_param->first_mb_in_slice << mbaff_picture; |
slice_hor_pos = first_mb_in_slice % width_in_mbs; |
slice_ver_pos = first_mb_in_slice / width_in_mbs; |
if (next_slice_param) { |
first_mb_in_next_slice = next_slice_param->first_mb_in_slice << mbaff_picture; |
next_slice_hor_pos = first_mb_in_next_slice % width_in_mbs; |
next_slice_ver_pos = first_mb_in_next_slice / width_in_mbs; |
} else { |
next_slice_hor_pos = 0; |
next_slice_ver_pos = height_in_mbs; |
} |
BEGIN_BCS_BATCH(batch, 11); /* FIXME: is it 10??? */ |
OUT_BCS_BATCH(batch, MFX_AVC_SLICE_STATE | (11 - 2)); |
OUT_BCS_BATCH(batch, slice_type); |
OUT_BCS_BATCH(batch, |
(num_ref_idx_l1 << 24) | |
(num_ref_idx_l0 << 16) | |
(chroma_log2_weight_denom << 8) | |
(luma_log2_weight_denom << 0)); |
OUT_BCS_BATCH(batch, |
(weighted_pred_idc << 30) | |
(slice_param->direct_spatial_mv_pred_flag << 29) | |
(slice_param->disable_deblocking_filter_idc << 27) | |
(slice_param->cabac_init_idc << 24) | |
((pic_param->pic_init_qp_minus26 + 26 + slice_param->slice_qp_delta) << 16) | |
((slice_param->slice_beta_offset_div2 & 0xf) << 8) | |
((slice_param->slice_alpha_c0_offset_div2 & 0xf) << 0)); |
OUT_BCS_BATCH(batch, |
(slice_ver_pos << 24) | |
(slice_hor_pos << 16) | |
(first_mb_in_slice << 0)); |
OUT_BCS_BATCH(batch, |
(next_slice_ver_pos << 16) | |
(next_slice_hor_pos << 0)); |
OUT_BCS_BATCH(batch, |
(next_slice_param == NULL) << 19); /* last slice flag */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_avc_phantom_slice_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
int width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
int height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; /* frame height */ |
BEGIN_BCS_BATCH(batch, 11); /* FIXME: is it 10??? */ |
OUT_BCS_BATCH(batch, MFX_AVC_SLICE_STATE | (11 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
height_in_mbs << 24 | |
width_in_mbs * height_in_mbs / (1 + !!pic_param->pic_fields.bits.field_pic_flag)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static inline void |
gen6_mfd_avc_ref_idx_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
gen6_send_avc_ref_idx_state( |
gen6_mfd_context->base.batch, |
slice_param, |
gen6_mfd_context->reference_surface |
); |
} |
static void |
gen6_mfd_avc_weightoffset_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
int i, j, num_weight_offset_table = 0; |
short weightoffsets[32 * 6]; |
if ((slice_param->slice_type == SLICE_TYPE_P || |
slice_param->slice_type == SLICE_TYPE_SP) && |
(pic_param->pic_fields.bits.weighted_pred_flag == 1)) { |
num_weight_offset_table = 1; |
} |
if ((slice_param->slice_type == SLICE_TYPE_B) && |
(pic_param->pic_fields.bits.weighted_bipred_idc == 1)) { |
num_weight_offset_table = 2; |
} |
for (i = 0; i < num_weight_offset_table; i++) { |
BEGIN_BCS_BATCH(batch, 98); |
OUT_BCS_BATCH(batch, MFX_AVC_WEIGHTOFFSET_STATE | (98 - 2)); |
OUT_BCS_BATCH(batch, i); |
if (i == 0) { |
for (j = 0; j < 32; j++) { |
weightoffsets[j * 6 + 0] = slice_param->luma_weight_l0[j]; |
weightoffsets[j * 6 + 1] = slice_param->luma_offset_l0[j]; |
weightoffsets[j * 6 + 2] = slice_param->chroma_weight_l0[j][0]; |
weightoffsets[j * 6 + 3] = slice_param->chroma_offset_l0[j][0]; |
weightoffsets[j * 6 + 4] = slice_param->chroma_weight_l0[j][1]; |
weightoffsets[j * 6 + 5] = slice_param->chroma_offset_l0[j][1]; |
} |
} else { |
for (j = 0; j < 32; j++) { |
weightoffsets[j * 6 + 0] = slice_param->luma_weight_l1[j]; |
weightoffsets[j * 6 + 1] = slice_param->luma_offset_l1[j]; |
weightoffsets[j * 6 + 2] = slice_param->chroma_weight_l1[j][0]; |
weightoffsets[j * 6 + 3] = slice_param->chroma_offset_l1[j][0]; |
weightoffsets[j * 6 + 4] = slice_param->chroma_weight_l1[j][1]; |
weightoffsets[j * 6 + 5] = slice_param->chroma_offset_l1[j][1]; |
} |
} |
intel_batchbuffer_data(batch, weightoffsets, sizeof(weightoffsets)); |
ADVANCE_BCS_BATCH(batch); |
} |
} |
static void |
gen6_mfd_avc_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
dri_bo *slice_data_bo, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
unsigned int slice_data_bit_offset; |
slice_data_bit_offset = avc_get_first_mb_bit_offset( |
slice_data_bo, |
slice_param, |
pic_param->pic_fields.bits.entropy_coding_mode_flag |
); |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFD_AVC_BSD_OBJECT | (6 - 2)); |
OUT_BCS_BATCH(batch, |
(slice_param->slice_data_size - slice_param->slice_data_offset)); |
OUT_BCS_BATCH(batch, slice_param->slice_data_offset); |
OUT_BCS_BATCH(batch, |
(0 << 31) | |
(0 << 14) | |
(0 << 12) | |
(0 << 10) | |
(0 << 8)); |
OUT_BCS_BATCH(batch, |
((slice_data_bit_offset >> 3) << 16) | |
(1 << 7) | |
(1 << 6) | |
((0x7 - (slice_data_bit_offset & 0x7)) << 0)); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_avc_phantom_slice_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFD_AVC_BSD_OBJECT | (6 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_avc_phantom_slice(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
gen6_mfd_avc_phantom_slice_state(ctx, pic_param, gen6_mfd_context); |
gen6_mfd_avc_phantom_slice_bsd_object(ctx, pic_param, gen6_mfd_context); |
} |
static void |
gen6_mfd_avc_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
VAPictureParameterBufferH264 *pic_param; |
VASliceParameterBufferH264 *slice_param; |
VAPictureH264 *va_pic; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
dri_bo *bo; |
int i, j, enable_avc_ildb = 0; |
int width_in_mbs; |
for (j = 0; j < decode_state->num_slice_params && enable_avc_ildb == 0; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
assert((slice_param->slice_type == SLICE_TYPE_I) || |
(slice_param->slice_type == SLICE_TYPE_SI) || |
(slice_param->slice_type == SLICE_TYPE_P) || |
(slice_param->slice_type == SLICE_TYPE_SP) || |
(slice_param->slice_type == SLICE_TYPE_B)); |
if (slice_param->disable_deblocking_filter_idc != 1) { |
enable_avc_ildb = 1; |
break; |
} |
slice_param++; |
} |
} |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
gen6_mfd_avc_frame_store_index(ctx, pic_param, gen6_mfd_context); |
width_in_mbs = ((pic_param->picture_width_in_mbs_minus1 + 1) & 0xff); |
/* Current decoded picture */ |
va_pic = &pic_param->CurrPic; |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface); |
obj_surface->flags &= ~SURFACE_REF_DIS_MASK; |
obj_surface->flags |= (pic_param->pic_fields.bits.reference_pic_flag ? SURFACE_REFERENCED : 0); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
/* initial uv component for YUV400 case */ |
if (pic_param->seq_fields.bits.chroma_format_idc == 0) { |
unsigned int uv_offset = obj_surface->width * obj_surface->height; |
unsigned int uv_size = obj_surface->width * obj_surface->height / 2; |
drm_intel_gem_bo_map_gtt(obj_surface->bo); |
memset(obj_surface->bo->virtual + uv_offset, 0x80, uv_size); |
drm_intel_gem_bo_unmap_gtt(obj_surface->bo); |
} |
gen6_mfd_init_avc_surface(ctx, pic_param, obj_surface); |
dri_bo_unreference(gen6_mfd_context->post_deblocking_output.bo); |
gen6_mfd_context->post_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen6_mfd_context->post_deblocking_output.bo); |
gen6_mfd_context->post_deblocking_output.valid = enable_avc_ildb; |
dri_bo_unreference(gen6_mfd_context->pre_deblocking_output.bo); |
gen6_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen6_mfd_context->pre_deblocking_output.bo); |
gen6_mfd_context->pre_deblocking_output.valid = !enable_avc_ildb; |
dri_bo_unreference(gen6_mfd_context->intra_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"intra row store", |
width_in_mbs * 64, |
0x1000); |
assert(bo); |
gen6_mfd_context->intra_row_store_scratch_buffer.bo = bo; |
gen6_mfd_context->intra_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"deblocking filter row store", |
width_in_mbs * 64 * 4, |
0x1000); |
assert(bo); |
gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = bo; |
gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
width_in_mbs * 96, |
0x1000); |
assert(bo); |
gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen6_mfd_context->mpr_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"mpr row store", |
width_in_mbs * 64, |
0x1000); |
assert(bo); |
gen6_mfd_context->mpr_row_store_scratch_buffer.bo = bo; |
gen6_mfd_context->mpr_row_store_scratch_buffer.valid = 1; |
gen6_mfd_context->bitplane_read_buffer.valid = 0; |
} |
static void |
gen6_mfd_avc_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
VAPictureParameterBufferH264 *pic_param; |
VASliceParameterBufferH264 *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
gen6_mfd_avc_decode_init(ctx, decode_state, gen6_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen6_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_AVC, gen6_mfd_context); |
gen6_mfd_surface_state(ctx, decode_state, MFX_FORMAT_AVC, gen6_mfd_context); |
gen6_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_AVC, gen6_mfd_context); |
gen6_mfd_bsp_buf_base_addr_state(ctx, decode_state, MFX_FORMAT_AVC, gen6_mfd_context); |
gen6_mfd_avc_img_state(ctx, decode_state, gen6_mfd_context); |
gen6_mfd_avc_qm_state(ctx, decode_state, gen6_mfd_context); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen6_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_AVC, gen6_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
assert((slice_param->slice_type == SLICE_TYPE_I) || |
(slice_param->slice_type == SLICE_TYPE_SI) || |
(slice_param->slice_type == SLICE_TYPE_P) || |
(slice_param->slice_type == SLICE_TYPE_SP) || |
(slice_param->slice_type == SLICE_TYPE_B)); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen6_mfd_avc_directmode_state(ctx, pic_param, slice_param, gen6_mfd_context); |
gen6_mfd_avc_slice_state(ctx, pic_param, slice_param, next_slice_param, gen6_mfd_context); |
gen6_mfd_avc_ref_idx_state(ctx, pic_param, slice_param, gen6_mfd_context); |
gen6_mfd_avc_weightoffset_state(ctx, pic_param, slice_param, gen6_mfd_context); |
gen6_mfd_avc_bsd_object(ctx, pic_param, slice_param, slice_data_bo, gen6_mfd_context); |
slice_param++; |
} |
} |
gen6_mfd_avc_phantom_slice(ctx, pic_param, gen6_mfd_context); |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
static void |
gen6_mfd_mpeg2_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
VAPictureParameterBufferMPEG2 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
dri_bo *bo; |
unsigned int width_in_mbs; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
width_in_mbs = ALIGN(pic_param->horizontal_size, 16) / 16; |
mpeg2_set_reference_surfaces( |
ctx, |
gen6_mfd_context->reference_surface, |
decode_state, |
pic_param |
); |
/* Current decoded picture */ |
obj_surface = SURFACE(decode_state->current_render_target); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
dri_bo_unreference(gen6_mfd_context->pre_deblocking_output.bo); |
gen6_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen6_mfd_context->pre_deblocking_output.bo); |
gen6_mfd_context->pre_deblocking_output.valid = 1; |
dri_bo_unreference(gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
width_in_mbs * 96, |
0x1000); |
assert(bo); |
gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 1; |
gen6_mfd_context->post_deblocking_output.valid = 0; |
gen6_mfd_context->intra_row_store_scratch_buffer.valid = 0; |
gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 0; |
gen6_mfd_context->mpr_row_store_scratch_buffer.valid = 0; |
gen6_mfd_context->bitplane_read_buffer.valid = 0; |
} |
static void |
gen6_mfd_mpeg2_pic_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
VAPictureParameterBufferMPEG2 *pic_param; |
unsigned int tff, pic_structure; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
pic_structure = pic_param->picture_coding_extension.bits.picture_structure; |
if (pic_structure == MPEG_FRAME) |
tff = pic_param->picture_coding_extension.bits.top_field_first; |
else |
tff = !(pic_param->picture_coding_extension.bits.is_first_field ^ |
(pic_structure & MPEG_TOP_FIELD)); |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFX_MPEG2_PIC_STATE | (4 - 2)); |
OUT_BCS_BATCH(batch, |
(pic_param->f_code & 0xf) << 28 | /* f_code[1][1] */ |
((pic_param->f_code >> 4) & 0xf) << 24 | /* f_code[1][0] */ |
((pic_param->f_code >> 8) & 0xf) << 20 | /* f_code[0][1] */ |
((pic_param->f_code >> 12) & 0xf) << 16 | /* f_code[0][0] */ |
pic_param->picture_coding_extension.bits.intra_dc_precision << 14 | |
pic_param->picture_coding_extension.bits.picture_structure << 12 | |
tff << 11 | |
pic_param->picture_coding_extension.bits.frame_pred_frame_dct << 10 | |
pic_param->picture_coding_extension.bits.concealment_motion_vectors << 9 | |
pic_param->picture_coding_extension.bits.q_scale_type << 8 | |
pic_param->picture_coding_extension.bits.intra_vlc_format << 7 | |
pic_param->picture_coding_extension.bits.alternate_scan << 6); |
OUT_BCS_BATCH(batch, |
pic_param->picture_coding_type << 9); |
OUT_BCS_BATCH(batch, |
(ALIGN(pic_param->vertical_size, 16) / 16) << 16 | |
(ALIGN(pic_param->horizontal_size, 16) / 16)); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_mpeg2_qm_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
VAIQMatrixBufferMPEG2 * const gen_iq_matrix = &gen6_mfd_context->iq_matrix.mpeg2; |
int i, j; |
/* Update internal QM state */ |
if (decode_state->iq_matrix && decode_state->iq_matrix->buffer) { |
VAIQMatrixBufferMPEG2 * const iq_matrix = |
(VAIQMatrixBufferMPEG2 *)decode_state->iq_matrix->buffer; |
gen_iq_matrix->load_intra_quantiser_matrix = |
iq_matrix->load_intra_quantiser_matrix; |
if (iq_matrix->load_intra_quantiser_matrix) { |
for (j = 0; j < 64; j++) |
gen_iq_matrix->intra_quantiser_matrix[zigzag_direct[j]] = |
iq_matrix->intra_quantiser_matrix[j]; |
} |
gen_iq_matrix->load_non_intra_quantiser_matrix = |
iq_matrix->load_non_intra_quantiser_matrix; |
if (iq_matrix->load_non_intra_quantiser_matrix) { |
for (j = 0; j < 64; j++) |
gen_iq_matrix->non_intra_quantiser_matrix[zigzag_direct[j]] = |
iq_matrix->non_intra_quantiser_matrix[j]; |
} |
} |
/* Commit QM state to HW */ |
for (i = 0; i < 2; i++) { |
unsigned char *qm = NULL; |
if (i == 0) { |
if (gen_iq_matrix->load_intra_quantiser_matrix) |
qm = gen_iq_matrix->intra_quantiser_matrix; |
} else { |
if (gen_iq_matrix->load_non_intra_quantiser_matrix) |
qm = gen_iq_matrix->non_intra_quantiser_matrix; |
} |
if (!qm) |
continue; |
BEGIN_BCS_BATCH(batch, 18); |
OUT_BCS_BATCH(batch, MFX_MPEG2_QM_STATE | (18 - 2)); |
OUT_BCS_BATCH(batch, i); |
intel_batchbuffer_data(batch, qm, 64); |
ADVANCE_BCS_BATCH(batch); |
} |
} |
static void |
gen6_mfd_mpeg2_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferMPEG2 *pic_param, |
VASliceParameterBufferMPEG2 *slice_param, |
VASliceParameterBufferMPEG2 *next_slice_param, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
unsigned int width_in_mbs = ALIGN(pic_param->horizontal_size, 16) / 16; |
int mb_count, vpos0, hpos0, vpos1, hpos1, is_field_pic_wa, is_field_pic = 0; |
if (pic_param->picture_coding_extension.bits.picture_structure == MPEG_TOP_FIELD || |
pic_param->picture_coding_extension.bits.picture_structure == MPEG_BOTTOM_FIELD) |
is_field_pic = 1; |
is_field_pic_wa = is_field_pic && |
gen6_mfd_context->wa_mpeg2_slice_vertical_position > 0; |
vpos0 = slice_param->slice_vertical_position / (1 + is_field_pic_wa); |
hpos0 = slice_param->slice_horizontal_position; |
if (next_slice_param == NULL) { |
vpos1 = ALIGN(pic_param->vertical_size, 16) / 16 / (1 + is_field_pic); |
hpos1 = 0; |
} else { |
vpos1 = next_slice_param->slice_vertical_position / (1 + is_field_pic_wa); |
hpos1 = next_slice_param->slice_horizontal_position; |
} |
mb_count = (vpos1 * width_in_mbs + hpos1) - (vpos0 * width_in_mbs + hpos0); |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFD_MPEG2_BSD_OBJECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_size - (slice_param->macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_offset + (slice_param->macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
hpos0 << 24 | |
vpos0 << 16 | |
mb_count << 8 | |
(next_slice_param == NULL) << 5 | |
(next_slice_param == NULL) << 3 | |
(slice_param->macroblock_offset & 0x7)); |
OUT_BCS_BATCH(batch, |
slice_param->quantiser_scale_code << 24); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_mpeg2_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
VAPictureParameterBufferMPEG2 *pic_param; |
VASliceParameterBufferMPEG2 *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
gen6_mfd_mpeg2_decode_init(ctx, decode_state, gen6_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen6_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_MPEG2, gen6_mfd_context); |
gen6_mfd_surface_state(ctx, decode_state, MFX_FORMAT_MPEG2, gen6_mfd_context); |
gen6_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_MPEG2, gen6_mfd_context); |
gen6_mfd_bsp_buf_base_addr_state(ctx, decode_state, MFX_FORMAT_MPEG2, gen6_mfd_context); |
gen6_mfd_mpeg2_pic_state(ctx, decode_state, gen6_mfd_context); |
gen6_mfd_mpeg2_qm_state(ctx, decode_state, gen6_mfd_context); |
if (gen6_mfd_context->wa_mpeg2_slice_vertical_position < 0) |
gen6_mfd_context->wa_mpeg2_slice_vertical_position = |
mpeg2_wa_slice_vertical_position(decode_state, pic_param); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferMPEG2 *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen6_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_MPEG2, gen6_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferMPEG2 *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen6_mfd_mpeg2_bsd_object(ctx, pic_param, slice_param, next_slice_param, gen6_mfd_context); |
slice_param++; |
} |
} |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
static const int va_to_gen6_vc1_pic_type[5] = { |
GEN6_VC1_I_PICTURE, |
GEN6_VC1_P_PICTURE, |
GEN6_VC1_B_PICTURE, |
GEN6_VC1_BI_PICTURE, |
GEN6_VC1_P_PICTURE, |
}; |
static const int va_to_gen6_vc1_mv[4] = { |
1, /* 1-MV */ |
2, /* 1-MV half-pel */ |
3, /* 1-MV half-pef bilinear */ |
0, /* Mixed MV */ |
}; |
static const int b_picture_scale_factor[21] = { |
128, 85, 170, 64, 192, |
51, 102, 153, 204, 43, |
215, 37, 74, 111, 148, |
185, 222, 32, 96, 160, |
224, |
}; |
static const int va_to_gen6_vc1_condover[3] = { |
0, |
2, |
3 |
}; |
static const int va_to_gen6_vc1_profile[4] = { |
GEN6_VC1_SIMPLE_PROFILE, |
GEN6_VC1_MAIN_PROFILE, |
GEN6_VC1_RESERVED_PROFILE, |
GEN6_VC1_ADVANCED_PROFILE |
}; |
static void |
gen6_mfd_free_vc1_surface(void **data) |
{ |
struct gen6_vc1_surface *gen6_vc1_surface = *data; |
if (!gen6_vc1_surface) |
return; |
dri_bo_unreference(gen6_vc1_surface->dmv); |
free(gen6_vc1_surface); |
*data = NULL; |
} |
static void |
gen6_mfd_init_vc1_surface(VADriverContextP ctx, |
VAPictureParameterBufferVC1 *pic_param, |
struct object_surface *obj_surface) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_vc1_surface *gen6_vc1_surface = obj_surface->private_data; |
int height_in_mbs = ALIGN(pic_param->coded_height, 16) / 16; |
obj_surface->free_private_data = gen6_mfd_free_vc1_surface; |
if (!gen6_vc1_surface) { |
gen6_vc1_surface = calloc(sizeof(struct gen6_vc1_surface), 1); |
assert((obj_surface->size & 0x3f) == 0); |
obj_surface->private_data = gen6_vc1_surface; |
} |
gen6_vc1_surface->picture_type = pic_param->picture_fields.bits.picture_type; |
if (gen6_vc1_surface->dmv == NULL) { |
gen6_vc1_surface->dmv = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
128 * height_in_mbs * 64, /* scalable with frame height */ |
0x1000); |
} |
} |
static void |
gen6_mfd_vc1_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
VAPictureParameterBufferVC1 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
int i; |
dri_bo *bo; |
int width_in_mbs; |
int picture_type; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
width_in_mbs = ALIGN(pic_param->coded_width, 16) / 16; |
picture_type = pic_param->picture_fields.bits.picture_type; |
/* reference picture */ |
obj_surface = SURFACE(pic_param->forward_reference_picture); |
if (obj_surface && obj_surface->bo) |
gen6_mfd_context->reference_surface[0].surface_id = pic_param->forward_reference_picture; |
else |
gen6_mfd_context->reference_surface[0].surface_id = VA_INVALID_ID; |
obj_surface = SURFACE(pic_param->backward_reference_picture); |
if (obj_surface && obj_surface->bo) |
gen6_mfd_context->reference_surface[1].surface_id = pic_param->backward_reference_picture; |
else |
gen6_mfd_context->reference_surface[1].surface_id = pic_param->forward_reference_picture; |
/* must do so !!! */ |
for (i = 2; i < ARRAY_ELEMS(gen6_mfd_context->reference_surface); i++) |
gen6_mfd_context->reference_surface[i].surface_id = gen6_mfd_context->reference_surface[i % 2].surface_id; |
/* Current decoded picture */ |
obj_surface = SURFACE(decode_state->current_render_target); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
gen6_mfd_init_vc1_surface(ctx, pic_param, obj_surface); |
dri_bo_unreference(gen6_mfd_context->post_deblocking_output.bo); |
gen6_mfd_context->post_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen6_mfd_context->post_deblocking_output.bo); |
gen6_mfd_context->post_deblocking_output.valid = pic_param->entrypoint_fields.bits.loopfilter; |
dri_bo_unreference(gen6_mfd_context->pre_deblocking_output.bo); |
gen6_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen6_mfd_context->pre_deblocking_output.bo); |
gen6_mfd_context->pre_deblocking_output.valid = !pic_param->entrypoint_fields.bits.loopfilter; |
dri_bo_unreference(gen6_mfd_context->intra_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"intra row store", |
width_in_mbs * 64, |
0x1000); |
assert(bo); |
gen6_mfd_context->intra_row_store_scratch_buffer.bo = bo; |
gen6_mfd_context->intra_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"deblocking filter row store", |
width_in_mbs * 7 * 64, |
0x1000); |
assert(bo); |
gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = bo; |
gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
width_in_mbs * 96, |
0x1000); |
assert(bo); |
gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 1; |
gen6_mfd_context->mpr_row_store_scratch_buffer.valid = 0; |
gen6_mfd_context->bitplane_read_buffer.valid = !!pic_param->bitplane_present.value; |
dri_bo_unreference(gen6_mfd_context->bitplane_read_buffer.bo); |
if (gen6_mfd_context->bitplane_read_buffer.valid) { |
int width_in_mbs = ALIGN(pic_param->coded_width, 16) / 16; |
int height_in_mbs = ALIGN(pic_param->coded_height, 16) / 16; |
int bitplane_width = ALIGN(width_in_mbs, 2) / 2; |
int src_w, src_h; |
uint8_t *src = NULL, *dst = NULL; |
assert(decode_state->bit_plane->buffer); |
src = decode_state->bit_plane->buffer; |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"VC-1 Bitplane", |
bitplane_width * height_in_mbs, |
0x1000); |
assert(bo); |
gen6_mfd_context->bitplane_read_buffer.bo = bo; |
dri_bo_map(bo, True); |
assert(bo->virtual); |
dst = bo->virtual; |
for (src_h = 0; src_h < height_in_mbs; src_h++) { |
for(src_w = 0; src_w < width_in_mbs; src_w++) { |
int src_index, dst_index; |
int src_shift; |
uint8_t src_value; |
src_index = (src_h * width_in_mbs + src_w) / 2; |
src_shift = !((src_h * width_in_mbs + src_w) & 1) * 4; |
src_value = ((src[src_index] >> src_shift) & 0xf); |
if (picture_type == GEN6_VC1_SKIPPED_PICTURE){ |
src_value |= 0x2; |
} |
dst_index = src_w / 2; |
dst[dst_index] = ((dst[dst_index] >> 4) | (src_value << 4)); |
} |
if (src_w & 1) |
dst[src_w / 2] >>= 4; |
dst += bitplane_width; |
} |
dri_bo_unmap(bo); |
} else |
gen6_mfd_context->bitplane_read_buffer.bo = NULL; |
} |
static void |
gen6_mfd_vc1_pic_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
int alt_pquant_config = 0, alt_pquant_edge_mask = 0, alt_pq; |
int dquant, dquantfrm, dqprofile, dqdbedge, dqsbedge, dqbilevel; |
int unified_mv_mode; |
int ref_field_pic_polarity = 0; |
int scale_factor = 0; |
int trans_ac_y = 0; |
int dmv_surface_valid = 0; |
int brfd = 0; |
int fcm = 0; |
int picture_type; |
int profile; |
int overlap; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
profile = va_to_gen6_vc1_profile[pic_param->sequence_fields.bits.profile]; |
dquant = pic_param->pic_quantizer_fields.bits.dquant; |
dquantfrm = pic_param->pic_quantizer_fields.bits.dq_frame; |
dqprofile = pic_param->pic_quantizer_fields.bits.dq_profile; |
dqdbedge = pic_param->pic_quantizer_fields.bits.dq_db_edge; |
dqsbedge = pic_param->pic_quantizer_fields.bits.dq_sb_edge; |
dqbilevel = pic_param->pic_quantizer_fields.bits.dq_binary_level; |
alt_pq = pic_param->pic_quantizer_fields.bits.alt_pic_quantizer; |
if (dquant == 0) { |
alt_pquant_config = 0; |
alt_pquant_edge_mask = 0; |
} else if (dquant == 2) { |
alt_pquant_config = 1; |
alt_pquant_edge_mask = 0xf; |
} else { |
assert(dquant == 1); |
if (dquantfrm == 0) { |
alt_pquant_config = 0; |
alt_pquant_edge_mask = 0; |
alt_pq = 0; |
} else { |
assert(dquantfrm == 1); |
alt_pquant_config = 1; |
switch (dqprofile) { |
case 3: |
if (dqbilevel == 0) { |
alt_pquant_config = 2; |
alt_pquant_edge_mask = 0; |
} else { |
assert(dqbilevel == 1); |
alt_pquant_config = 3; |
alt_pquant_edge_mask = 0; |
} |
break; |
case 0: |
alt_pquant_edge_mask = 0xf; |
break; |
case 1: |
if (dqdbedge == 3) |
alt_pquant_edge_mask = 0x9; |
else |
alt_pquant_edge_mask = (0x3 << dqdbedge); |
break; |
case 2: |
alt_pquant_edge_mask = (0x1 << dqsbedge); |
break; |
default: |
assert(0); |
} |
} |
} |
if (pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation) { |
assert(pic_param->mv_fields.bits.mv_mode2 < 4); |
unified_mv_mode = va_to_gen6_vc1_mv[pic_param->mv_fields.bits.mv_mode2]; |
} else { |
assert(pic_param->mv_fields.bits.mv_mode < 4); |
unified_mv_mode = va_to_gen6_vc1_mv[pic_param->mv_fields.bits.mv_mode]; |
} |
if (pic_param->sequence_fields.bits.interlace == 1 && |
pic_param->picture_fields.bits.frame_coding_mode != 0) { /* frame-interlace or field-interlace */ |
/* FIXME: calculate reference field picture polarity */ |
assert(0); |
ref_field_pic_polarity = 0; |
} |
if (pic_param->b_picture_fraction < 21) |
scale_factor = b_picture_scale_factor[pic_param->b_picture_fraction]; |
picture_type = va_to_gen6_vc1_pic_type[pic_param->picture_fields.bits.picture_type]; |
if (profile == GEN6_VC1_ADVANCED_PROFILE && |
picture_type == GEN6_VC1_I_PICTURE) |
picture_type = GEN6_VC1_BI_PICTURE; |
if (picture_type == GEN6_VC1_I_PICTURE || picture_type == GEN6_VC1_BI_PICTURE) /* I picture */ |
trans_ac_y = pic_param->transform_fields.bits.transform_ac_codingset_idx2; |
else { |
trans_ac_y = pic_param->transform_fields.bits.transform_ac_codingset_idx1; |
/* |
* 8.3.6.2.1 Transform Type Selection |
* If variable-sized transform coding is not enabled, |
* then the 8x8 transform shall be used for all blocks. |
* it is also MFX_VC1_PIC_STATE requirement. |
*/ |
if (pic_param->transform_fields.bits.variable_sized_transform_flag == 0) { |
pic_param->transform_fields.bits.mb_level_transform_type_flag = 1; |
pic_param->transform_fields.bits.frame_level_transform_type = 0; |
} |
} |
if (picture_type == GEN6_VC1_B_PICTURE) { |
struct gen6_vc1_surface *gen6_vc1_surface = NULL; |
obj_surface = SURFACE(pic_param->backward_reference_picture); |
assert(obj_surface); |
gen6_vc1_surface = obj_surface->private_data; |
if (!gen6_vc1_surface || |
(va_to_gen6_vc1_pic_type[gen6_vc1_surface->picture_type] == GEN6_VC1_I_PICTURE || |
va_to_gen6_vc1_pic_type[gen6_vc1_surface->picture_type] == GEN6_VC1_BI_PICTURE)) |
dmv_surface_valid = 0; |
else |
dmv_surface_valid = 1; |
} |
assert(pic_param->picture_fields.bits.frame_coding_mode < 3); |
if (pic_param->picture_fields.bits.frame_coding_mode < 2) |
fcm = pic_param->picture_fields.bits.frame_coding_mode; |
else { |
if (pic_param->picture_fields.bits.top_field_first) |
fcm = 2; |
else |
fcm = 3; |
} |
if (pic_param->picture_fields.bits.picture_type == GEN6_VC1_B_PICTURE) { /* B picture */ |
brfd = pic_param->reference_fields.bits.reference_distance; |
brfd = (scale_factor * brfd) >> 8; |
brfd = pic_param->reference_fields.bits.reference_distance - brfd - 1; |
if (brfd < 0) |
brfd = 0; |
} |
overlap = 0; |
if (profile != GEN6_VC1_ADVANCED_PROFILE){ |
if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 && |
pic_param->picture_fields.bits.picture_type != GEN6_VC1_B_PICTURE) { |
overlap = 1; |
} |
}else { |
if (pic_param->picture_fields.bits.picture_type == GEN6_VC1_P_PICTURE && |
pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){ |
overlap = 1; |
} |
if (pic_param->picture_fields.bits.picture_type == GEN6_VC1_I_PICTURE || |
pic_param->picture_fields.bits.picture_type == GEN6_VC1_BI_PICTURE){ |
if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){ |
overlap = 1; |
} else if (va_to_gen6_vc1_condover[pic_param->conditional_overlap_flag] == 2 || |
va_to_gen6_vc1_condover[pic_param->conditional_overlap_flag] == 3) { |
overlap = 1; |
} |
} |
} |
assert(pic_param->conditional_overlap_flag < 3); |
assert(pic_param->mv_fields.bits.mv_table < 4); /* FIXME: interlace mode */ |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_VC1_PIC_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, |
(ALIGN(pic_param->coded_height, 16) / 16) << 16 | |
(ALIGN(pic_param->coded_width, 16) / 16)); |
OUT_BCS_BATCH(batch, |
pic_param->sequence_fields.bits.syncmarker << 31 | |
1 << 29 | /* concealment */ |
alt_pq << 24 | |
pic_param->entrypoint_fields.bits.loopfilter << 23 | |
overlap << 22 | |
(pic_param->pic_quantizer_fields.bits.quantizer == 0) << 21 | /* implicit quantizer */ |
pic_param->pic_quantizer_fields.bits.pic_quantizer_scale << 16 | |
alt_pquant_edge_mask << 12 | |
alt_pquant_config << 10 | |
pic_param->pic_quantizer_fields.bits.half_qp << 9 | |
pic_param->pic_quantizer_fields.bits.pic_quantizer_type << 8 | |
va_to_gen6_vc1_condover[pic_param->conditional_overlap_flag] << 6 | |
!pic_param->picture_fields.bits.is_first_field << 5 | |
picture_type << 2 | |
fcm << 0); |
OUT_BCS_BATCH(batch, |
!!pic_param->bitplane_present.value << 23 | |
!pic_param->bitplane_present.flags.bp_forward_mb << 22 | |
!pic_param->bitplane_present.flags.bp_mv_type_mb << 21 | |
!pic_param->bitplane_present.flags.bp_skip_mb << 20 | |
!pic_param->bitplane_present.flags.bp_direct_mb << 19 | |
!pic_param->bitplane_present.flags.bp_overflags << 18 | |
!pic_param->bitplane_present.flags.bp_ac_pred << 17 | |
!pic_param->bitplane_present.flags.bp_field_tx << 16 | |
pic_param->mv_fields.bits.extended_dmv_range << 14 | |
pic_param->mv_fields.bits.extended_mv_range << 12 | |
pic_param->mv_fields.bits.four_mv_switch << 11 | |
pic_param->fast_uvmc_flag << 10 | |
unified_mv_mode << 8 | |
ref_field_pic_polarity << 6 | |
pic_param->reference_fields.bits.num_reference_pictures << 5 | |
pic_param->reference_fields.bits.reference_distance << 0); |
OUT_BCS_BATCH(batch, |
scale_factor << 24 | |
pic_param->mv_fields.bits.mv_table << 20 | |
pic_param->mv_fields.bits.four_mv_block_pattern_table << 18 | |
pic_param->mv_fields.bits.two_mv_block_pattern_table << 16 | |
pic_param->transform_fields.bits.frame_level_transform_type << 12 | |
pic_param->transform_fields.bits.mb_level_transform_type_flag << 11 | |
pic_param->mb_mode_table << 8 | |
trans_ac_y << 6 | |
pic_param->transform_fields.bits.transform_ac_codingset_idx1 << 4 | |
pic_param->transform_fields.bits.intra_transform_dc_table << 3 | |
pic_param->cbp_table << 0); |
OUT_BCS_BATCH(batch, |
dmv_surface_valid << 13 | |
brfd << 8 | |
((ALIGN(pic_param->coded_width, 16) / 16 + 1) / 2 - 1)); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_vc1_pred_pipe_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
int interpolation_mode = 0; |
int intensitycomp_single; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
if (pic_param->mv_fields.bits.mv_mode == VAMvMode1MvHalfPelBilinear || |
(pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation && |
pic_param->mv_fields.bits.mv_mode2 == VAMvMode1MvHalfPelBilinear)) |
interpolation_mode = 2; /* Half-pel bilinear */ |
else if (pic_param->mv_fields.bits.mv_mode == VAMvMode1MvHalfPel || |
(pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation && |
pic_param->mv_fields.bits.mv_mode2 == VAMvMode1MvHalfPel)) |
interpolation_mode = 0; /* Half-pel bicubic */ |
else |
interpolation_mode = 1; /* Quarter-pel bicubic */ |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
intensitycomp_single = (pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation); |
BEGIN_BCS_BATCH(batch, 7); |
OUT_BCS_BATCH(batch, MFX_VC1_PRED_PIPE_STATE | (7 - 2)); |
OUT_BCS_BATCH(batch, |
0 << 8 | /* FIXME: interlace mode */ |
pic_param->rounding_control << 4 | |
va_to_gen6_vc1_profile[pic_param->sequence_fields.bits.profile] << 2); |
OUT_BCS_BATCH(batch, |
pic_param->luma_shift << 16 | |
pic_param->luma_scale << 0); /* FIXME: Luma Scaling */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
interpolation_mode << 19 | |
pic_param->fast_uvmc_flag << 18 | |
0 << 17 | /* FIXME: scale up or down ??? */ |
pic_param->range_reduction_frame << 16 | |
0 << 6 | /* FIXME: double ??? */ |
0 << 4 | |
intensitycomp_single << 2 | |
intensitycomp_single << 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_vc1_directmode_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
dri_bo *dmv_read_buffer = NULL, *dmv_write_buffer = NULL; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
obj_surface = SURFACE(decode_state->current_render_target); |
if (obj_surface && obj_surface->private_data) { |
dmv_write_buffer = ((struct gen6_vc1_surface *)(obj_surface->private_data))->dmv; |
} |
obj_surface = SURFACE(pic_param->backward_reference_picture); |
if (obj_surface && obj_surface->private_data) { |
dmv_read_buffer = ((struct gen6_vc1_surface *)(obj_surface->private_data))->dmv; |
} |
BEGIN_BCS_BATCH(batch, 3); |
OUT_BCS_BATCH(batch, MFX_VC1_DIRECTMODE_STATE | (3 - 2)); |
if (dmv_write_buffer) |
OUT_BCS_RELOC(batch, dmv_write_buffer, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (dmv_read_buffer) |
OUT_BCS_RELOC(batch, dmv_read_buffer, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static int |
gen6_mfd_vc1_get_macroblock_bit_offset(uint8_t *buf, int in_slice_data_bit_offset, int profile) |
{ |
int out_slice_data_bit_offset; |
int slice_header_size = in_slice_data_bit_offset / 8; |
int i, j; |
if (profile != 3) |
out_slice_data_bit_offset = in_slice_data_bit_offset; |
else { |
for (i = 0, j = 0; i < slice_header_size; i++, j++) { |
if (!buf[j] && !buf[j + 1] && buf[j + 2] == 3 && buf[j + 3] < 4) { |
i++, j += 2; |
} |
} |
out_slice_data_bit_offset = 8 * j + in_slice_data_bit_offset % 8; |
} |
return out_slice_data_bit_offset; |
} |
static void |
gen6_mfd_vc1_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferVC1 *pic_param, |
VASliceParameterBufferVC1 *slice_param, |
VASliceParameterBufferVC1 *next_slice_param, |
dri_bo *slice_data_bo, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
int next_slice_start_vert_pos; |
int macroblock_offset; |
uint8_t *slice_data = NULL; |
dri_bo_map(slice_data_bo, 0); |
slice_data = (uint8_t *)(slice_data_bo->virtual + slice_param->slice_data_offset); |
macroblock_offset = gen6_mfd_vc1_get_macroblock_bit_offset(slice_data, |
slice_param->macroblock_offset, |
pic_param->sequence_fields.bits.profile); |
dri_bo_unmap(slice_data_bo); |
if (next_slice_param) |
next_slice_start_vert_pos = next_slice_param->slice_vertical_position; |
else |
next_slice_start_vert_pos = ALIGN(pic_param->coded_height, 16) / 16; |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFD_VC1_BSD_OBJECT | (4 - 2)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_size - (macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_offset + (macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_vertical_position << 24 | |
next_slice_start_vert_pos << 16 | |
(macroblock_offset & 0x7)); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen6_mfd_vc1_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen6_mfd_context *gen6_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen6_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
VASliceParameterBufferVC1 *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
gen6_mfd_vc1_decode_init(ctx, decode_state, gen6_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen6_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_VC1, gen6_mfd_context); |
gen6_mfd_surface_state(ctx, decode_state, MFX_FORMAT_VC1, gen6_mfd_context); |
gen6_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_VC1, gen6_mfd_context); |
gen6_mfd_bsp_buf_base_addr_state(ctx, decode_state, MFX_FORMAT_VC1, gen6_mfd_context); |
gen6_mfd_vc1_pic_state(ctx, decode_state, gen6_mfd_context); |
gen6_mfd_vc1_pred_pipe_state(ctx, decode_state, gen6_mfd_context); |
gen6_mfd_vc1_directmode_state(ctx, decode_state, gen6_mfd_context); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferVC1 *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen6_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_VC1, gen6_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferVC1 *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen6_mfd_vc1_bsd_object(ctx, pic_param, slice_param, next_slice_param, slice_data_bo, gen6_mfd_context); |
slice_param++; |
} |
} |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
static void |
gen6_mfd_decode_picture(VADriverContextP ctx, |
VAProfile profile, |
union codec_state *codec_state, |
struct hw_context *hw_context) |
{ |
struct gen6_mfd_context *gen6_mfd_context = (struct gen6_mfd_context *)hw_context; |
struct decode_state *decode_state = &codec_state->decode; |
assert(gen6_mfd_context); |
switch (profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
gen6_mfd_mpeg2_decode_picture(ctx, decode_state, gen6_mfd_context); |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
gen6_mfd_avc_decode_picture(ctx, decode_state, gen6_mfd_context); |
break; |
case VAProfileVC1Simple: |
case VAProfileVC1Main: |
case VAProfileVC1Advanced: |
gen6_mfd_vc1_decode_picture(ctx, decode_state, gen6_mfd_context); |
break; |
default: |
assert(0); |
break; |
} |
} |
static void |
gen6_mfd_context_destroy(void *hw_context) |
{ |
struct gen6_mfd_context *gen6_mfd_context = (struct gen6_mfd_context *)hw_context; |
dri_bo_unreference(gen6_mfd_context->post_deblocking_output.bo); |
gen6_mfd_context->post_deblocking_output.bo = NULL; |
dri_bo_unreference(gen6_mfd_context->pre_deblocking_output.bo); |
gen6_mfd_context->pre_deblocking_output.bo = NULL; |
dri_bo_unreference(gen6_mfd_context->intra_row_store_scratch_buffer.bo); |
gen6_mfd_context->intra_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); |
gen6_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
gen6_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen6_mfd_context->mpr_row_store_scratch_buffer.bo); |
gen6_mfd_context->mpr_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen6_mfd_context->bitplane_read_buffer.bo); |
gen6_mfd_context->bitplane_read_buffer.bo = NULL; |
intel_batchbuffer_free(gen6_mfd_context->base.batch); |
free(gen6_mfd_context); |
} |
struct hw_context * |
gen6_dec_hw_context_init(VADriverContextP ctx, VAProfile profile) |
{ |
struct intel_driver_data *intel = intel_driver_data(ctx); |
struct gen6_mfd_context *gen6_mfd_context = calloc(1, sizeof(struct gen6_mfd_context)); |
int i; |
gen6_mfd_context->base.destroy = gen6_mfd_context_destroy; |
gen6_mfd_context->base.run = gen6_mfd_decode_picture; |
gen6_mfd_context->base.batch = intel_batchbuffer_new(intel, I915_EXEC_RENDER, 0); |
for (i = 0; i < ARRAY_ELEMS(gen6_mfd_context->reference_surface); i++) { |
gen6_mfd_context->reference_surface[i].surface_id = VA_INVALID_ID; |
gen6_mfd_context->reference_surface[i].frame_store_id = -1; |
} |
gen6_mfd_context->wa_mpeg2_slice_vertical_position = -1; |
return (struct hw_context *)gen6_mfd_context; |
} |
/drivers/video/i965/gen6_mfd.h |
---|
0,0 → 1,77 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#ifndef _GEN6_MFD_H_ |
#define _GEN6_MFD_H_ |
#include <xf86drm.h> |
#include <drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
#include "i965_decoder.h" |
#define GEN6_VC1_I_PICTURE 0 |
#define GEN6_VC1_P_PICTURE 1 |
#define GEN6_VC1_B_PICTURE 2 |
#define GEN6_VC1_BI_PICTURE 3 |
#define GEN6_VC1_SKIPPED_PICTURE 4 |
#define GEN6_VC1_SIMPLE_PROFILE 0 |
#define GEN6_VC1_MAIN_PROFILE 1 |
#define GEN6_VC1_ADVANCED_PROFILE 2 |
#define GEN6_VC1_RESERVED_PROFILE 3 |
struct gen6_vc1_surface |
{ |
dri_bo *dmv; |
int picture_type; |
}; |
struct hw_context; |
struct gen6_mfd_context |
{ |
struct hw_context base; |
union { |
VAIQMatrixBufferMPEG2 mpeg2; |
} iq_matrix; |
GenFrameStore reference_surface[MAX_GEN_REFERENCE_FRAMES]; |
GenBuffer post_deblocking_output; |
GenBuffer pre_deblocking_output; |
GenBuffer intra_row_store_scratch_buffer; |
GenBuffer deblocking_filter_row_store_scratch_buffer; |
GenBuffer bsd_mpc_row_store_scratch_buffer; |
GenBuffer mpr_row_store_scratch_buffer; |
GenBuffer bitplane_read_buffer; |
int wa_mpeg2_slice_vertical_position; |
}; |
#endif /* _GEN6_MFD_H_ */ |
/drivers/video/i965/gen6_vme.c |
---|
0,0 → 1,1046 |
/* |
* Copyright © 2010-2011 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Zhou Chang <chang.zhou@intel.com> |
* |
*/ |
#include <stdio.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "gen6_vme.h" |
#include "i965_encoder.h" |
#define SURFACE_STATE_PADDED_SIZE_0_GEN7 ALIGN(sizeof(struct gen7_surface_state), 32) |
#define SURFACE_STATE_PADDED_SIZE_1_GEN7 ALIGN(sizeof(struct gen7_surface_state2), 32) |
#define SURFACE_STATE_PADDED_SIZE_GEN7 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN7, SURFACE_STATE_PADDED_SIZE_1_GEN7) |
#define SURFACE_STATE_PADDED_SIZE_0_GEN6 ALIGN(sizeof(struct i965_surface_state), 32) |
#define SURFACE_STATE_PADDED_SIZE_1_GEN6 ALIGN(sizeof(struct i965_surface_state2), 32) |
#define SURFACE_STATE_PADDED_SIZE_GEN6 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN6, SURFACE_STATE_PADDED_SIZE_1_GEN7) |
#define SURFACE_STATE_PADDED_SIZE MAX(SURFACE_STATE_PADDED_SIZE_GEN6, SURFACE_STATE_PADDED_SIZE_GEN7) |
#define SURFACE_STATE_OFFSET(index) (SURFACE_STATE_PADDED_SIZE * index) |
#define BINDING_TABLE_OFFSET SURFACE_STATE_OFFSET(MAX_MEDIA_SURFACES_GEN6) |
#define VME_INTRA_SHADER 0 |
#define VME_INTER_SHADER 1 |
#define CURBE_ALLOCATION_SIZE 37 /* in 256-bit */ |
#define CURBE_TOTAL_DATA_LENGTH (4 * 32) /* in byte, it should be less than or equal to CURBE_ALLOCATION_SIZE * 32 */ |
#define CURBE_URB_ENTRY_LENGTH 4 /* in 256-bit, it should be less than or equal to CURBE_TOTAL_DATA_LENGTH / 32 */ |
static const uint32_t gen6_vme_intra_frame[][4] = { |
#include "shaders/vme/intra_frame.g6b" |
}; |
static const uint32_t gen6_vme_inter_frame[][4] = { |
#include "shaders/vme/inter_frame.g6b" |
}; |
static struct i965_kernel gen6_vme_kernels[] = { |
{ |
"VME Intra Frame", |
VME_INTRA_SHADER, /*index*/ |
gen6_vme_intra_frame, |
sizeof(gen6_vme_intra_frame), |
NULL |
}, |
{ |
"VME inter Frame", |
VME_INTER_SHADER, |
gen6_vme_inter_frame, |
sizeof(gen6_vme_inter_frame), |
NULL |
} |
}; |
static const uint32_t gen7_vme_intra_frame[][4] = { |
#include "shaders/vme/intra_frame.g7b" |
}; |
static const uint32_t gen7_vme_inter_frame[][4] = { |
#include "shaders/vme/inter_frame.g7b" |
}; |
static struct i965_kernel gen7_vme_kernels[] = { |
{ |
"VME Intra Frame", |
VME_INTRA_SHADER, /*index*/ |
gen7_vme_intra_frame, |
sizeof(gen7_vme_intra_frame), |
NULL |
}, |
{ |
"VME inter Frame", |
VME_INTER_SHADER, |
gen7_vme_inter_frame, |
sizeof(gen7_vme_inter_frame), |
NULL |
} |
}; |
static void |
gen6_vme_set_common_surface_tiling(struct i965_surface_state *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss3.tiled_surface = 0; |
ss->ss3.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss3.tiled_surface = 1; |
ss->ss3.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss3.tiled_surface = 1; |
ss->ss3.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
static void |
gen6_vme_set_source_surface_tiling(struct i965_surface_state2 *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss2.tiled_surface = 0; |
ss->ss2.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss2.tiled_surface = 1; |
ss->ss2.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss2.tiled_surface = 1; |
ss->ss2.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
/* only used for VME source surface state */ |
static void gen6_vme_source_surface_state(VADriverContextP ctx, |
int index, |
struct object_surface *obj_surface, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct i965_surface_state2 *ss; |
dri_bo *bo; |
int w, h, w_pitch, h_pitch; |
unsigned int tiling, swizzle; |
assert(obj_surface->bo); |
dri_bo_get_tiling(obj_surface->bo, &tiling, &swizzle); |
w = obj_surface->orig_width; |
h = obj_surface->orig_height; |
w_pitch = obj_surface->width; |
h_pitch = obj_surface->height; |
bo = vme_context->surface_state_binding_table.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
ss = (struct i965_surface_state2 *)((char *)bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_base_address = obj_surface->bo->offset; |
ss->ss1.cbcr_pixel_offset_v_direction = 2; |
ss->ss1.width = w - 1; |
ss->ss1.height = h - 1; |
ss->ss2.surface_format = MFX_SURFACE_PLANAR_420_8; |
ss->ss2.interleave_chroma = 1; |
ss->ss2.pitch = w_pitch - 1; |
ss->ss2.half_pitch_for_chroma = 0; |
gen6_vme_set_source_surface_tiling(ss, tiling); |
/* UV offset for interleave mode */ |
ss->ss3.x_offset_for_cb = 0; |
ss->ss3.y_offset_for_cb = h_pitch; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, 0, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct i965_surface_state2, ss0), |
obj_surface->bo); |
((unsigned int *)((char *)bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(bo); |
} |
static void |
gen6_vme_media_source_surface_state(VADriverContextP ctx, |
int index, |
struct object_surface *obj_surface, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct i965_surface_state *ss; |
dri_bo *bo; |
int w, h, w_pitch; |
unsigned int tiling, swizzle; |
w = obj_surface->orig_width; |
h = obj_surface->orig_height; |
w_pitch = obj_surface->width; |
/* Y plane */ |
dri_bo_get_tiling(obj_surface->bo, &tiling, &swizzle); |
bo = vme_context->surface_state_binding_table.bo; |
dri_bo_map(bo, True); |
assert(bo->virtual); |
ss = (struct i965_surface_state *)((char *)bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_type = I965_SURFACE_2D; |
ss->ss0.surface_format = I965_SURFACEFORMAT_R8_UNORM; |
ss->ss1.base_addr = obj_surface->bo->offset; |
ss->ss2.width = w / 4 - 1; |
ss->ss2.height = h - 1; |
ss->ss3.pitch = w_pitch - 1; |
gen6_vme_set_common_surface_tiling(ss, tiling); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, |
0, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct i965_surface_state, ss1), |
obj_surface->bo); |
((unsigned int *)((char *)bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(bo); |
} |
static VAStatus |
gen6_vme_output_buffer_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
int index, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct i965_surface_state *ss; |
dri_bo *bo; |
VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param->buffer; |
VAEncSliceParameterBuffer *pSliceParameter = (VAEncSliceParameterBuffer *)encode_state->slice_params[0]->buffer; |
int is_intra = pSliceParameter->slice_flags.bits.is_intra; |
int width_in_mbs = pSequenceParameter->picture_width_in_mbs; |
int height_in_mbs = pSequenceParameter->picture_height_in_mbs; |
int num_entries; |
if ( is_intra ) { |
vme_context->vme_output.num_blocks = width_in_mbs * height_in_mbs; |
} else { |
vme_context->vme_output.num_blocks = width_in_mbs * height_in_mbs * 4; |
} |
vme_context->vme_output.size_block = 16; /* an OWORD */ |
vme_context->vme_output.pitch = ALIGN(vme_context->vme_output.size_block, 16); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"VME output buffer", |
vme_context->vme_output.num_blocks * vme_context->vme_output.pitch, |
0x1000); |
assert(bo); |
vme_context->vme_output.bo = bo; |
bo = vme_context->surface_state_binding_table.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
ss = (struct i965_surface_state *)((char *)bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss, 0, sizeof(*ss)); |
/* always use 16 bytes as pitch on Sandy Bridge */ |
num_entries = vme_context->vme_output.num_blocks * vme_context->vme_output.pitch / 16; |
ss->ss0.render_cache_read_mode = 1; |
ss->ss0.surface_type = I965_SURFACE_BUFFER; |
ss->ss1.base_addr = vme_context->vme_output.bo->offset; |
ss->ss2.width = ((num_entries - 1) & 0x7f); |
ss->ss2.height = (((num_entries - 1) >> 7) & 0x1fff); |
ss->ss3.depth = (((num_entries - 1) >> 20) & 0x7f); |
ss->ss3.pitch = vme_context->vme_output.pitch - 1; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct i965_surface_state, ss1), |
vme_context->vme_output.bo); |
((unsigned int *)((char *)bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(bo); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen6_vme_surface_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
int is_intra, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
VAEncPictureParameterBufferH264 *pPicParameter = (VAEncPictureParameterBufferH264 *)encode_state->pic_param->buffer; |
/*Setup surfaces state*/ |
/* current picture for encoding */ |
obj_surface = SURFACE(encode_state->current_render_target); |
assert(obj_surface); |
gen6_vme_source_surface_state(ctx, 0, obj_surface, gen6_encoder_context); |
gen6_vme_media_source_surface_state(ctx, 4, obj_surface, gen6_encoder_context); |
if ( ! is_intra ) { |
/* reference 0 */ |
obj_surface = SURFACE(pPicParameter->reference_picture); |
assert(obj_surface); |
gen6_vme_source_surface_state(ctx, 1, obj_surface, gen6_encoder_context); |
/* reference 1, FIXME: */ |
// obj_surface = SURFACE(pPicParameter->reference_picture); |
// assert(obj_surface); |
//gen6_vme_source_surface_state(ctx, 2, obj_surface); |
} |
/* VME output */ |
gen6_vme_output_buffer_setup(ctx, encode_state, 3, gen6_encoder_context); |
return VA_STATUS_SUCCESS; |
} |
/* |
* Surface state for IvyBridge |
*/ |
static void |
gen7_vme_set_common_surface_tiling(struct gen7_surface_state *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss0.tiled_surface = 0; |
ss->ss0.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss0.tiled_surface = 1; |
ss->ss0.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss0.tiled_surface = 1; |
ss->ss0.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
static void |
gen7_vme_set_source_surface_tiling(struct gen7_surface_state2 *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss2.tiled_surface = 0; |
ss->ss2.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss2.tiled_surface = 1; |
ss->ss2.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss2.tiled_surface = 1; |
ss->ss2.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
/* only used for VME source surface state */ |
static void gen7_vme_source_surface_state(VADriverContextP ctx, |
int index, |
struct object_surface *obj_surface, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct gen7_surface_state2 *ss; |
dri_bo *bo; |
int w, h, w_pitch, h_pitch; |
unsigned int tiling, swizzle; |
assert(obj_surface->bo); |
w = obj_surface->orig_width; |
h = obj_surface->orig_height; |
w_pitch = obj_surface->width; |
h_pitch = obj_surface->height; |
bo = vme_context->surface_state_binding_table.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
ss = (struct gen7_surface_state2 *)((char *)bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_base_address = obj_surface->bo->offset; |
ss->ss1.cbcr_pixel_offset_v_direction = 2; |
ss->ss1.width = w - 1; |
ss->ss1.height = h - 1; |
ss->ss2.surface_format = MFX_SURFACE_PLANAR_420_8; |
ss->ss2.interleave_chroma = 1; |
ss->ss2.pitch = w_pitch - 1; |
ss->ss2.half_pitch_for_chroma = 0; |
dri_bo_get_tiling(obj_surface->bo, &tiling, &swizzle); |
gen7_vme_set_source_surface_tiling(ss, tiling); |
/* UV offset for interleave mode */ |
ss->ss3.x_offset_for_cb = 0; |
ss->ss3.y_offset_for_cb = h_pitch; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, 0, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct gen7_surface_state2, ss0), |
obj_surface->bo); |
((unsigned int *)((char *)bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(bo); |
} |
static void |
gen7_vme_media_source_surface_state(VADriverContextP ctx, |
int index, |
struct object_surface *obj_surface, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct gen7_surface_state *ss; |
dri_bo *bo; |
int w, h, w_pitch; |
unsigned int tiling, swizzle; |
/* Y plane */ |
w = obj_surface->orig_width; |
h = obj_surface->orig_height; |
w_pitch = obj_surface->width; |
bo = vme_context->surface_state_binding_table.bo; |
dri_bo_map(bo, True); |
assert(bo->virtual); |
ss = (struct gen7_surface_state *)((char *)bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_type = I965_SURFACE_2D; |
ss->ss0.surface_format = I965_SURFACEFORMAT_R8_UNORM; |
ss->ss1.base_addr = obj_surface->bo->offset; |
ss->ss2.width = w / 4 - 1; |
ss->ss2.height = h - 1; |
ss->ss3.pitch = w_pitch - 1; |
dri_bo_get_tiling(obj_surface->bo, &tiling, &swizzle); |
gen7_vme_set_common_surface_tiling(ss, tiling); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, 0, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct gen7_surface_state, ss1), |
obj_surface->bo); |
((unsigned int *)((char *)bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(bo); |
} |
static VAStatus |
gen7_vme_output_buffer_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
int index, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct gen7_surface_state *ss; |
dri_bo *bo; |
VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param->buffer; |
VAEncSliceParameterBuffer *pSliceParameter = (VAEncSliceParameterBuffer *)encode_state->slice_params[0]->buffer; |
int is_intra = pSliceParameter->slice_flags.bits.is_intra; |
int width_in_mbs = pSequenceParameter->picture_width_in_mbs; |
int height_in_mbs = pSequenceParameter->picture_height_in_mbs; |
int num_entries; |
if ( is_intra ) { |
vme_context->vme_output.num_blocks = width_in_mbs * height_in_mbs; |
} else { |
vme_context->vme_output.num_blocks = width_in_mbs * height_in_mbs * 4; |
} |
vme_context->vme_output.size_block = 16; /* an OWORD */ |
vme_context->vme_output.pitch = ALIGN(vme_context->vme_output.size_block, 16); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"VME output buffer", |
vme_context->vme_output.num_blocks * vme_context->vme_output.pitch, |
0x1000); |
assert(bo); |
vme_context->vme_output.bo = bo; |
bo = vme_context->surface_state_binding_table.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
ss = (struct gen7_surface_state *)((char *)bo->virtual + SURFACE_STATE_OFFSET(index)); |
ss = bo->virtual; |
memset(ss, 0, sizeof(*ss)); |
/* always use 16 bytes as pitch on Sandy Bridge */ |
num_entries = vme_context->vme_output.num_blocks * vme_context->vme_output.pitch / 16; |
ss->ss0.surface_type = I965_SURFACE_BUFFER; |
ss->ss1.base_addr = vme_context->vme_output.bo->offset; |
ss->ss2.width = ((num_entries - 1) & 0x7f); |
ss->ss2.height = (((num_entries - 1) >> 7) & 0x3fff); |
ss->ss3.depth = (((num_entries - 1) >> 21) & 0x3f); |
ss->ss3.pitch = vme_context->vme_output.pitch - 1; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct gen7_surface_state, ss1), |
vme_context->vme_output.bo); |
((unsigned int *)((char *)bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(bo); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen7_vme_surface_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
int is_intra, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
VAEncPictureParameterBufferH264 *pPicParameter = (VAEncPictureParameterBufferH264 *)encode_state->pic_param->buffer; |
/*Setup surfaces state*/ |
/* current picture for encoding */ |
obj_surface = SURFACE(encode_state->current_render_target); |
assert(obj_surface); |
gen7_vme_source_surface_state(ctx, 1, obj_surface, gen6_encoder_context); |
gen7_vme_media_source_surface_state(ctx, 4, obj_surface, gen6_encoder_context); |
if ( ! is_intra ) { |
/* reference 0 */ |
obj_surface = SURFACE(pPicParameter->reference_picture); |
assert(obj_surface); |
gen7_vme_source_surface_state(ctx, 2, obj_surface, gen6_encoder_context); |
/* reference 1, FIXME: */ |
// obj_surface = SURFACE(pPicParameter->reference_picture); |
// assert(obj_surface); |
//gen7_vme_source_surface_state(ctx, 3, obj_surface); |
} |
/* VME output */ |
gen7_vme_output_buffer_setup(ctx, encode_state, 0, gen6_encoder_context); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen6_vme_interface_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct gen6_interface_descriptor_data *desc; |
int i; |
dri_bo *bo; |
bo = vme_context->idrt.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
desc = bo->virtual; |
for (i = 0; i < GEN6_VME_KERNEL_NUMBER; i++) { |
struct i965_kernel *kernel; |
kernel = &vme_context->vme_kernels[i]; |
assert(sizeof(*desc) == 32); |
/*Setup the descritor table*/ |
memset(desc, 0, sizeof(*desc)); |
desc->desc0.kernel_start_pointer = (kernel->bo->offset >> 6); |
desc->desc2.sampler_count = 1; /* FIXME: */ |
desc->desc2.sampler_state_pointer = (vme_context->vme_state.bo->offset >> 5); |
desc->desc3.binding_table_entry_count = 1; /* FIXME: */ |
desc->desc3.binding_table_pointer = (BINDING_TABLE_OFFSET >> 5); |
desc->desc4.constant_urb_entry_read_offset = 0; |
desc->desc4.constant_urb_entry_read_length = CURBE_URB_ENTRY_LENGTH; |
/*kernel start*/ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
i * sizeof(*desc) + offsetof(struct gen6_interface_descriptor_data, desc0), |
kernel->bo); |
/*Sampler State(VME state pointer)*/ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
(1 << 2), // |
i * sizeof(*desc) + offsetof(struct gen6_interface_descriptor_data, desc2), |
vme_context->vme_state.bo); |
desc++; |
} |
dri_bo_unmap(bo); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen6_vme_constant_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
dri_bo_map(vme_context->curbe.bo, 1); |
assert(vme_context->curbe.bo->virtual); |
/*TODO copy buffer into CURB*/ |
dri_bo_unmap( vme_context->curbe.bo); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen6_vme_vme_state_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
int is_intra, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
unsigned int *vme_state_message; |
int i; |
//building VME state message |
dri_bo_map(vme_context->vme_state.bo, 1); |
assert(vme_context->vme_state.bo->virtual); |
vme_state_message = (unsigned int *)vme_context->vme_state.bo->virtual; |
vme_state_message[0] = 0x10010101; |
vme_state_message[1] = 0x100F0F0F; |
vme_state_message[2] = 0x10010101; |
vme_state_message[3] = 0x000F0F0F; |
for(i = 4; i < 14; i++) { |
vme_state_message[i] = 0x00000000; |
} |
for(i = 14; i < 32; i++) { |
vme_state_message[i] = 0x00000000; |
} |
//vme_state_message[16] = 0x42424242; //cost function LUT set 0 for Intra |
dri_bo_unmap( vme_context->vme_state.bo); |
return VA_STATUS_SUCCESS; |
} |
static void gen6_vme_pipeline_select(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, 1); |
OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA); |
ADVANCE_BATCH(batch); |
} |
static void gen6_vme_state_base_address(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, 10); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | 8); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); //General State Base Address |
OUT_RELOC(batch, vme_context->surface_state_binding_table.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */ |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); //Dynamic State Base Address |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); //Indirect Object Base Address |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); //Instruction Base Address |
OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY); //General State Access Upper Bound |
OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY); //Dynamic State Access Upper Bound |
OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY); //Indirect Object Access Upper Bound |
OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY); //Instruction Access Upper Bound |
/* |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); //LLC Coherent Base Address |
OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY ); //LLC Coherent Upper Bound |
*/ |
ADVANCE_BATCH(batch); |
} |
static void gen6_vme_vfe_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, 8); |
OUT_BATCH(batch, CMD_MEDIA_VFE_STATE | 6); /*Gen6 CMD_MEDIA_STATE_POINTERS = CMD_MEDIA_STATE */ |
OUT_BATCH(batch, 0); /*Scratch Space Base Pointer and Space*/ |
OUT_BATCH(batch, (vme_context->vfe_state.max_num_threads << 16) |
| (vme_context->vfe_state.num_urb_entries << 8) |
| (vme_context->vfe_state.gpgpu_mode << 2) ); /*Maximum Number of Threads , Number of URB Entries, MEDIA Mode*/ |
OUT_BATCH(batch, 0); /*Debug: Object ID*/ |
OUT_BATCH(batch, (vme_context->vfe_state.urb_entry_size << 16) |
| vme_context->vfe_state.curbe_allocation_size); /*URB Entry Allocation Size , CURBE Allocation Size*/ |
OUT_BATCH(batch, 0); /*Disable Scoreboard*/ |
OUT_BATCH(batch, 0); /*Disable Scoreboard*/ |
OUT_BATCH(batch, 0); /*Disable Scoreboard*/ |
ADVANCE_BATCH(batch); |
} |
static void gen6_vme_curbe_load(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, 4); |
OUT_BATCH(batch, CMD_MEDIA_CURBE_LOAD | 2); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, CURBE_TOTAL_DATA_LENGTH); |
OUT_RELOC(batch, vme_context->curbe.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
ADVANCE_BATCH(batch); |
} |
static void gen6_vme_idrt(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, 4); |
OUT_BATCH(batch, CMD_MEDIA_INTERFACE_LOAD | 2); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, GEN6_VME_KERNEL_NUMBER * sizeof(struct gen6_interface_descriptor_data)); |
OUT_RELOC(batch, vme_context->idrt.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
ADVANCE_BATCH(batch); |
} |
static int gen6_vme_media_object(VADriverContextP ctx, |
struct encode_state *encode_state, |
int mb_x, int mb_y, |
int kernel, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(encode_state->current_render_target); |
int mb_width = ALIGN(obj_surface->orig_width, 16) / 16; |
int len_in_dowrds = 6 + 1; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, len_in_dowrds); |
OUT_BATCH(batch, CMD_MEDIA_OBJECT | (len_in_dowrds - 2)); |
OUT_BATCH(batch, kernel); /*Interface Descriptor Offset*/ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
/*inline data */ |
OUT_BATCH(batch, mb_width << 16 | mb_y << 8 | mb_x); /*M0.0 Refrence0 X,Y, not used in Intra*/ |
ADVANCE_BATCH(batch); |
return len_in_dowrds * 4; |
} |
static void gen6_vme_media_init(VADriverContextP ctx, struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
dri_bo *bo; |
/* constant buffer */ |
dri_bo_unreference(vme_context->curbe.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
CURBE_TOTAL_DATA_LENGTH, 64); |
assert(bo); |
vme_context->curbe.bo = bo; |
dri_bo_unreference(vme_context->surface_state_binding_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state & binding table", |
(SURFACE_STATE_PADDED_SIZE + sizeof(unsigned int)) * MAX_MEDIA_SURFACES_GEN6, |
4096); |
assert(bo); |
vme_context->surface_state_binding_table.bo = bo; |
/* interface descriptor remapping table */ |
dri_bo_unreference(vme_context->idrt.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
MAX_INTERFACE_DESC_GEN6 * sizeof(struct gen6_interface_descriptor_data), 16); |
assert(bo); |
vme_context->idrt.bo = bo; |
/* VME output buffer */ |
dri_bo_unreference(vme_context->vme_output.bo); |
vme_context->vme_output.bo = NULL; |
/* VME state */ |
dri_bo_unreference(vme_context->vme_state.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
1024*16, 64); |
assert(bo); |
vme_context->vme_state.bo = bo; |
vme_context->vfe_state.max_num_threads = 60 - 1; |
vme_context->vfe_state.num_urb_entries = 16; |
vme_context->vfe_state.gpgpu_mode = 0; |
vme_context->vfe_state.urb_entry_size = 59 - 1; |
vme_context->vfe_state.curbe_allocation_size = CURBE_ALLOCATION_SIZE - 1; |
} |
static void gen6_vme_pipeline_programing(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *main_batch = gen6_encoder_context->base.batch; |
VAEncSliceParameterBuffer *pSliceParameter = (VAEncSliceParameterBuffer *)encode_state->slice_params[0]->buffer; |
VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param->buffer; |
int is_intra = pSliceParameter->slice_flags.bits.is_intra; |
int width_in_mbs = pSequenceParameter->picture_width_in_mbs; |
int height_in_mbs = pSequenceParameter->picture_height_in_mbs; |
int emit_new_state = 1, object_len_in_bytes; |
int x, y; |
struct intel_batchbuffer *batch = intel_batchbuffer_new(&i965->intel, I915_EXEC_RENDER, width_in_mbs * height_in_mbs * 8 * 4 + 0x200); |
intel_batchbuffer_start_atomic(batch, width_in_mbs * height_in_mbs * 8 * 4 + 0x100); |
for(y = 0; y < height_in_mbs; y++){ |
for(x = 0; x < width_in_mbs; x++){ |
if (emit_new_state) { |
/*Step1: MI_FLUSH/PIPE_CONTROL*/ |
intel_batchbuffer_emit_mi_flush(batch); |
/*Step2: State command PIPELINE_SELECT*/ |
gen6_vme_pipeline_select(ctx, gen6_encoder_context, batch); |
/*Step3: State commands configuring pipeline states*/ |
gen6_vme_state_base_address(ctx, gen6_encoder_context, batch); |
gen6_vme_vfe_state(ctx, gen6_encoder_context, batch); |
gen6_vme_curbe_load(ctx, gen6_encoder_context, batch); |
gen6_vme_idrt(ctx, gen6_encoder_context, batch); |
emit_new_state = 0; |
} |
/*Step4: Primitive commands*/ |
object_len_in_bytes = gen6_vme_media_object(ctx, encode_state, x, y, is_intra ? VME_INTRA_SHADER : VME_INTER_SHADER, gen6_encoder_context, batch); |
if (intel_batchbuffer_check_free_space(batch, object_len_in_bytes) == 0) { |
assert(0); |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
emit_new_state = 1; |
intel_batchbuffer_start_atomic(batch, 0x1000); |
} |
} |
} |
intel_batchbuffer_align(batch, 8); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, MI_BATCH_BUFFER_END); |
ADVANCE_BATCH(batch); |
intel_batchbuffer_end_atomic(batch); |
/* chain to the main batch buffer */ |
intel_batchbuffer_start_atomic(main_batch, 0x100); |
intel_batchbuffer_emit_mi_flush(main_batch); |
BEGIN_BATCH(main_batch, 2); |
OUT_BATCH(main_batch, MI_BATCH_BUFFER_START | (2 << 6)); |
OUT_RELOC(main_batch, |
batch->buffer, |
I915_GEM_DOMAIN_COMMAND, 0, |
0); |
ADVANCE_BATCH(main_batch); |
intel_batchbuffer_end_atomic(main_batch); |
// end programing |
intel_batchbuffer_free(batch); |
} |
static VAStatus gen6_vme_prepare(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
VAEncSliceParameterBuffer *pSliceParameter = (VAEncSliceParameterBuffer *)encode_state->slice_params[0]->buffer; |
int is_intra = pSliceParameter->slice_flags.bits.is_intra; |
/*Setup all the memory object*/ |
if (IS_GEN7(i965->intel.device_id)) |
gen7_vme_surface_setup(ctx, encode_state, is_intra, gen6_encoder_context); |
else |
gen6_vme_surface_setup(ctx, encode_state, is_intra, gen6_encoder_context); |
gen6_vme_interface_setup(ctx, encode_state, gen6_encoder_context); |
gen6_vme_constant_setup(ctx, encode_state, gen6_encoder_context); |
gen6_vme_vme_state_setup(ctx, encode_state, is_intra, gen6_encoder_context); |
/*Programing media pipeline*/ |
gen6_vme_pipeline_programing(ctx, encode_state, gen6_encoder_context); |
return vaStatus; |
} |
static VAStatus gen6_vme_run(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct intel_batchbuffer *batch = gen6_encoder_context->base.batch; |
intel_batchbuffer_flush(batch); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen6_vme_stop(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
return VA_STATUS_SUCCESS; |
} |
VAStatus gen6_vme_pipeline(VADriverContextP ctx, |
VAProfile profile, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
gen6_vme_media_init(ctx, gen6_encoder_context); |
gen6_vme_prepare(ctx, encode_state, gen6_encoder_context); |
gen6_vme_run(ctx, encode_state, gen6_encoder_context); |
gen6_vme_stop(ctx, encode_state, gen6_encoder_context); |
return VA_STATUS_SUCCESS; |
} |
Bool gen6_vme_context_init(VADriverContextP ctx, struct gen6_vme_context *vme_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i; |
if (IS_GEN7(i965->intel.device_id)) |
memcpy(vme_context->vme_kernels, gen7_vme_kernels, sizeof(vme_context->vme_kernels)); |
else |
memcpy(vme_context->vme_kernels, gen6_vme_kernels, sizeof(vme_context->vme_kernels)); |
for (i = 0; i < GEN6_VME_KERNEL_NUMBER; i++) { |
/*Load kernel into GPU memory*/ |
struct i965_kernel *kernel = &vme_context->vme_kernels[i]; |
kernel->bo = dri_bo_alloc(i965->intel.bufmgr, |
kernel->name, |
kernel->size, |
0x1000); |
assert(kernel->bo); |
dri_bo_subdata(kernel->bo, 0, kernel->size, kernel->bin); |
} |
return True; |
} |
Bool gen6_vme_context_destroy(struct gen6_vme_context *vme_context) |
{ |
int i; |
dri_bo_unreference(vme_context->idrt.bo); |
vme_context->idrt.bo = NULL; |
dri_bo_unreference(vme_context->surface_state_binding_table.bo); |
vme_context->surface_state_binding_table.bo = NULL; |
dri_bo_unreference(vme_context->curbe.bo); |
vme_context->curbe.bo = NULL; |
dri_bo_unreference(vme_context->vme_output.bo); |
vme_context->vme_output.bo = NULL; |
dri_bo_unreference(vme_context->vme_state.bo); |
vme_context->vme_state.bo = NULL; |
for (i = 0; i < GEN6_VME_KERNEL_NUMBER; i++) { |
/*Load kernel into GPU memory*/ |
struct i965_kernel *kernel = &vme_context->vme_kernels[i]; |
dri_bo_unreference(kernel->bo); |
kernel->bo = NULL; |
} |
return True; |
} |
/drivers/video/i965/gen6_vme.h |
---|
0,0 → 1,98 |
/* |
* Copyright © 2009 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWAR |
* |
* Authors: |
* Zhou Chang <chang.zhou@intel.com> |
* |
*/ |
#ifndef _GEN6_VME_H_ |
#define _GEN6_VME_H_ |
#include <xf86drm.h> |
#include <drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
#define INTRA_VME_OUTPUT_IN_BYTES 16 /* in bytes */ |
#define MAX_INTERFACE_DESC_GEN6 32 |
#define MAX_MEDIA_SURFACES_GEN6 34 |
#define GEN6_VME_KERNEL_NUMBER 2 |
struct encode_state; |
struct gen6_encoder_context; |
struct gen6_vme_context |
{ |
struct { |
dri_bo *bo; |
} surface_state_binding_table; |
struct { |
dri_bo *bo; |
} idrt; /* interface descriptor remap table */ |
struct { |
dri_bo *bo; |
} curbe; |
struct { |
unsigned int gpgpu_mode:1; |
unsigned int max_num_threads:16; |
unsigned int num_urb_entries:8; |
unsigned int urb_entry_size:16; |
unsigned int curbe_allocation_size:16; |
} vfe_state; |
struct { |
dri_bo *bo; |
} vme_state; |
struct { |
dri_bo *bo; |
unsigned int num_blocks; |
unsigned int size_block; /* in bytes */ |
unsigned int pitch; |
} vme_output; |
struct i965_kernel vme_kernels[GEN6_VME_KERNEL_NUMBER]; |
void *vme_state_message; |
}; |
VAStatus gen6_vme_pipeline(VADriverContextP ctx, |
VAProfile profile, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context); |
Bool gen6_vme_context_init(VADriverContextP ctx, struct gen6_vme_context *vme_context); |
Bool gen6_vme_context_destroy(struct gen6_vme_context *vme_context); |
VAStatus gen75_vme_pipeline(VADriverContextP ctx, |
VAProfile profile, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context); |
Bool gen75_vme_context_init(VADriverContextP ctx, struct gen6_vme_context *vme_context); |
Bool gen75_vme_context_destroy(struct gen6_vme_context *vme_context); |
#endif /* _GEN6_VME_H_ */ |
/drivers/video/i965/gen75_mfc.c |
---|
0,0 → 1,1183 |
/* |
* Copyright © 2010-2011 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Zhao Yakui <yakui.zhao@intel.com> |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
#include "assert.h" |
#include "intel_batchbuffer.h" |
#include "i965_defines.h" |
#include "i965_structs.h" |
#include "i965_drv_video.h" |
#include "i965_encoder.h" |
#define B0_STEP_REV 2 |
#define IS_STEPPING_BPLUS(i965) ((i965->intel.revision) >= B0_STEP_REV) |
static void |
gen75_mfc_pipe_mode_select(VADriverContextP ctx, |
int standard_select, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
assert(standard_select == MFX_FORMAT_MPEG2 || |
standard_select == MFX_FORMAT_AVC); |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFX_PIPE_MODE_SELECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
(MFX_LONG_MODE << 17) | /* Must be long format for encoder */ |
(MFD_MODE_VLD << 15) | /* VLD mode */ |
(0 << 10) | /* disable Stream-Out */ |
(1 << 9) | /* Post Deblocking Output */ |
(0 << 8) | /* Pre Deblocking Output */ |
(0 << 5) | /* not in stitch mode */ |
(1 << 4) | /* encoding mode */ |
(standard_select << 0)); /* standard select: avc or mpeg2 */ |
OUT_BCS_BATCH(batch, |
(0 << 7) | /* expand NOA bus flag */ |
(0 << 6) | /* disable slice-level clock gating */ |
(0 << 5) | /* disable clock gating for NOA */ |
(0 << 4) | /* terminate if AVC motion and POC table error occurs */ |
(0 << 3) | /* terminate if AVC mbdata error occurs */ |
(0 << 2) | /* terminate if AVC CABAC/CAVLC decode error occurs */ |
(0 << 1) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
#define INTER_MODE_MASK 0x03 |
#define INTER_8X8 0x03 |
#define SUBMB_SHAPE_MASK 0x00FF00 |
#define INTER_MV8 (4 << 20) |
#define INTER_MV32 (6 << 20) |
static void |
gen75_mfc_surface_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_SURFACE_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
((mfc_context->surface_state.height - 1) << 18) | |
((mfc_context->surface_state.width - 1) << 4)); |
OUT_BCS_BATCH(batch, |
(MFX_SURFACE_PLANAR_420_8 << 28) | /* 420 planar YUV surface */ |
(1 << 27) | /* must be 1 for interleave U/V, hardware requirement */ |
(0 << 22) | /* surface object control state, FIXME??? */ |
((mfc_context->surface_state.w_pitch - 1) << 3) | /* pitch */ |
(0 << 2) | /* must be 0 for interleave U/V */ |
(1 << 1) | /* must be tiled */ |
(I965_TILEWALK_YMAJOR << 0)); /* tile walk, TILEWALK_YMAJOR */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* must be 0 for interleave U/V */ |
(mfc_context->surface_state.h_pitch)); /* y offset for U(cb) */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfc_pipe_buf_addr_state_bplus(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
int i; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 61); |
OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (61 - 2)); |
/* the DW1-3 is for pre_deblocking */ |
OUT_BCS_BATCH(batch, 0); /* pre output addr */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW4-6 is for the post_deblocking */ |
if (mfc_context->post_deblocking_output.bo) |
OUT_BCS_RELOC(batch, mfc_context->post_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); /* post output addr */ |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW7-9 is for the uncompressed_picture */ |
OUT_BCS_RELOC(batch, mfc_context->uncompressed_picture_source.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); /* uncompressed data */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW10-12 is for the mb status */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW13-15 is for the intra_row_store_scratch */ |
OUT_BCS_RELOC(batch, mfc_context->intra_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW16-18 is for the deblocking filter */ |
OUT_BCS_RELOC(batch, mfc_context->deblocking_filter_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW 19-50 is for Reference pictures*/ |
for (i = 0; i < ARRAY_ELEMS(mfc_context->reference_surfaces); i++) { |
if ( mfc_context->reference_surfaces[i].bo != NULL) { |
OUT_BCS_RELOC(batch, mfc_context->reference_surfaces[i].bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
} else { |
OUT_BCS_BATCH(batch, 0); |
} |
OUT_BCS_BATCH(batch, 0); |
} |
OUT_BCS_BATCH(batch, 0); |
/* The DW 52-54 is for the MB status buffer */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW 55-57 is the ILDB buffer */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW 58-60 is the second ILDB buffer */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfc_pipe_buf_addr_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
int i; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_mfc_pipe_buf_addr_state_bplus(ctx, gen6_encoder_context, batch); |
return; |
} |
BEGIN_BCS_BATCH(batch, 25); |
OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (25 - 2)); |
OUT_BCS_BATCH(batch, 0); /* pre output addr */ |
OUT_BCS_RELOC(batch, mfc_context->post_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); /* post output addr */ |
OUT_BCS_RELOC(batch, mfc_context->uncompressed_picture_source.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); /* uncompressed data */ |
OUT_BCS_BATCH(batch, 0); /* StreamOut data*/ |
OUT_BCS_RELOC(batch, mfc_context->intra_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_RELOC(batch, mfc_context->deblocking_filter_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
/* 7..22 Reference pictures*/ |
for (i = 0; i < ARRAY_ELEMS(mfc_context->reference_surfaces); i++) { |
if ( mfc_context->reference_surfaces[i].bo != NULL) { |
OUT_BCS_RELOC(batch, mfc_context->reference_surfaces[i].bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
} else { |
OUT_BCS_BATCH(batch, 0); |
} |
} |
OUT_BCS_BATCH(batch, 0); /* no block status */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfc_ind_obj_base_addr_state_bplus(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 26); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (26 - 2)); |
/* the DW1-3 is for the MFX indirect bistream offset */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW4-5 is the MFX upper bound */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW6-10 is for MFX Indirect MV Object Base Address */ |
OUT_BCS_RELOC(batch, vme_context->vme_output.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0x80000000); /* must set, up to 2G */ |
OUT_BCS_BATCH(batch, 0); |
/* the DW11-15 is for MFX IT-COFF. Not used on encoder */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW16-20 is for MFX indirect DBLK. Not used on encoder */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW21-25 is for MFC Indirect PAK-BSE Object Base Address for Encoder*/ |
OUT_BCS_RELOC(batch, |
mfc_context->mfc_indirect_pak_bse_object.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0x00000000); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfc_ind_obj_base_addr_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_mfc_ind_obj_base_addr_state_bplus(ctx, gen6_encoder_context, batch); |
return; |
} |
BEGIN_BCS_BATCH(batch, 11); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (11 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* MFX Indirect MV Object Base Address */ |
OUT_BCS_RELOC(batch, vme_context->vme_output.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
OUT_BCS_BATCH(batch, 0x80000000); /* must set, up to 2G */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/*MFC Indirect PAK-BSE Object Base Address for Encoder*/ |
OUT_BCS_RELOC(batch, |
mfc_context->mfc_indirect_pak_bse_object.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0x00000000); /* must set, up to 2G */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfc_bsp_buf_base_addr_state_bplus(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 10); |
OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (10 - 2)); |
OUT_BCS_RELOC(batch, mfc_context->bsd_mpc_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW4-6 is for MPR Row Store Scratch Buffer Base Address */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW7-9 is for Bitplane Read Buffer Base Address */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfc_bsp_buf_base_addr_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_mfc_bsp_buf_base_addr_state_bplus(ctx, gen6_encoder_context, batch); |
return; |
} |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (4 - 2)); |
OUT_BCS_RELOC(batch, mfc_context->bsd_mpc_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfc_avc_img_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
int width_in_mbs = (mfc_context->surface_state.width + 15) / 16; |
int height_in_mbs = (mfc_context->surface_state.height + 15) / 16; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 16); |
OUT_BCS_BATCH(batch, MFX_AVC_IMG_STATE | (16 - 2)); |
OUT_BCS_BATCH(batch, |
((width_in_mbs * height_in_mbs) & 0xFFFF)); |
OUT_BCS_BATCH(batch, |
((height_in_mbs - 1) << 16) | |
((width_in_mbs - 1) << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 24) | /* Second Chroma QP Offset */ |
(0 << 16) | /* Chroma QP Offset */ |
(0 << 14) | /* Max-bit conformance Intra flag */ |
(0 << 13) | /* Max Macroblock size conformance Inter flag */ |
(0 << 12) | /* FIXME: Weighted_Pred_Flag */ |
(0 << 10) | /* FIXME: Weighted_BiPred_Idc */ |
(0 << 8) | /* FIXME: Image Structure */ |
(0 << 0) ); /* Current Decoed Image Frame Store ID, reserved in Encode mode */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* Mininum Frame size */ |
(0 << 15) | /* Disable reading of Macroblock Status Buffer */ |
(0 << 14) | /* Load BitStream Pointer only once, 1 slic 1 frame */ |
(0 << 13) | /* CABAC 0 word insertion test enable */ |
(1 << 12) | /* MVUnpackedEnable,compliant to DXVA */ |
(1 << 10) | /* Chroma Format IDC, 4:2:0 */ |
(0 << 8) | /* FIXME: MbMvFormatFlag */ |
(1 << 7) | /* 0:CAVLC encoding mode,1:CABAC */ |
(0 << 6) | /* Only valid for VLD decoding mode */ |
(0 << 5) | /* Constrained Intra Predition Flag, from PPS */ |
(0 << 4) | /* Direct 8x8 inference flag */ |
(0 << 3) | /* Only 8x8 IDCT Transform Mode Flag */ |
(1 << 2) | /* Frame MB only flag */ |
(0 << 1) | /* MBAFF mode is in active */ |
(0 << 0)); /* Field picture flag */ |
OUT_BCS_BATCH(batch, 0); /* Mainly about MB rate control and debug, just ignoring */ |
OUT_BCS_BATCH(batch, /* Inter and Intra Conformance Max size limit */ |
(0xBB8 << 16) | /* InterMbMaxSz */ |
(0xEE8) ); /* IntraMbMaxSz */ |
OUT_BCS_BATCH(batch, 0); /* Reserved */ |
OUT_BCS_BATCH(batch, 0); /* Slice QP Delta for bitrate control */ |
OUT_BCS_BATCH(batch, 0); /* Slice QP Delta for bitrate control */ |
OUT_BCS_BATCH(batch, 0x8C000000); |
OUT_BCS_BATCH(batch, 0x00010000); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfc_avc_directmode_state_bplus(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
int i; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 71); |
OUT_BCS_BATCH(batch, MFX_AVC_DIRECTMODE_STATE | (71 - 2)); |
/* Reference frames and Current frames */ |
/* the DW1-32 is for the direct MV for reference */ |
for(i = 0; i < NUM_MFC_DMV_BUFFERS - 2; i += 2) { |
if ( mfc_context->direct_mv_buffers[i].bo != NULL) { |
OUT_BCS_RELOC(batch, mfc_context->direct_mv_buffers[i].bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BCS_BATCH(batch, 0); |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
OUT_BCS_BATCH(batch, 0); |
/* the DW34-36 is the MV for the current reference */ |
OUT_BCS_RELOC(batch, mfc_context->direct_mv_buffers[NUM_MFC_DMV_BUFFERS - 2].bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* POL list */ |
for(i = 0; i < 32; i++) { |
OUT_BCS_BATCH(batch, i/2); |
} |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void gen75_mfc_avc_directmode_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
int i; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_mfc_avc_directmode_state_bplus(ctx, gen6_encoder_context, batch); |
return; |
} |
BEGIN_BCS_BATCH(batch, 69); |
OUT_BCS_BATCH(batch, MFX_AVC_DIRECTMODE_STATE | (69 - 2)); |
//TODO: reference DMV |
for (i = 0; i < NUM_MFC_DMV_BUFFERS - 2; i++){ |
if (mfc_context->direct_mv_buffers[i].bo) |
OUT_BCS_RELOC(batch, mfc_context->direct_mv_buffers[i].bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
} |
//TODO: current DMV just for test |
#if 0 |
OUT_BCS_RELOC(batch, mfc_context->direct_mv_buffers[0].bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
#else |
//drm_intel_bo_pin(mfc_context->direct_mv_buffers[0].bo, 0x1000); |
//OUT_BCS_BATCH(batch, mfc_context->direct_mv_buffers[0].bo->offset); |
OUT_BCS_RELOC(batch, mfc_context->direct_mv_buffers[NUM_MFC_DMV_BUFFERS - 2].bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
#endif |
OUT_BCS_BATCH(batch, 0); |
//TODO: POL list |
for(i = 0; i < 34; i++) { |
OUT_BCS_BATCH(batch, 0); |
} |
ADVANCE_BCS_BATCH(batch); |
} |
static void gen75_mfc_avc_slice_state(VADriverContextP ctx, |
int intra_slice, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 11);; |
OUT_BCS_BATCH(batch, MFX_AVC_SLICE_STATE | (11 - 2) ); |
if ( intra_slice ) |
OUT_BCS_BATCH(batch, 2); /*Slice Type: I Slice*/ |
else |
OUT_BCS_BATCH(batch, 0); /*Slice Type: P Slice*/ |
if ( intra_slice ) |
OUT_BCS_BATCH(batch, 0); /*no reference frames and pred_weight_table*/ |
else |
OUT_BCS_BATCH(batch, 0x00010000); /*1 reference frame*/ |
OUT_BCS_BATCH(batch, (0<<24) | /*Enable deblocking operation*/ |
(26<<16) | /*Slice Quantization Parameter*/ |
0x0202 ); |
OUT_BCS_BATCH(batch, 0); /*First MB X&Y , the postion of current slice*/ |
OUT_BCS_BATCH(batch, ( ((mfc_context->surface_state.height+15)/16) << 16) ); |
OUT_BCS_BATCH(batch, |
(0<<31) | /*RateControlCounterEnable = disable*/ |
(1<<30) | /*ResetRateControlCounter*/ |
(2<<28) | /*RC Triggle Mode = Loose Rate Control*/ |
(1<<19) | /*IsLastSlice*/ |
(0<<18) | /*BitstreamOutputFlag Compressed BitStream Output Disable Flag 0:enable 1:disable*/ |
(0<<17) | /*HeaderPresentFlag*/ |
(1<<16) | /*SliceData PresentFlag*/ |
(0<<15) | /*TailPresentFlag*/ |
(1<<13) | /*RBSP NAL TYPE*/ |
(0<<12) ); /*CabacZeroWordInsertionEnable*/ |
OUT_BCS_BATCH(batch, mfc_context->mfc_indirect_pak_bse_object.offset); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfc_qm_state(VADriverContextP ctx, |
int qm_type, |
unsigned int *qm, |
int qm_length, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
unsigned int qm_buffer[16]; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
assert(qm_length <= 16); |
assert(sizeof(*qm) == 4); |
memcpy(qm_buffer, qm, qm_length * 4); |
BEGIN_BCS_BATCH(batch, 18); |
OUT_BCS_BATCH(batch, MFX_QM_STATE | (18 - 2)); |
OUT_BCS_BATCH(batch, qm_type << 0); |
intel_batchbuffer_data(batch, qm_buffer, 16 * 4); |
ADVANCE_BCS_BATCH(batch); |
} |
static void gen75_mfc_avc_qm_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
unsigned int qm[16] = { |
0x10101010, 0x10101010, 0x10101010, 0x10101010, |
0x10101010, 0x10101010, 0x10101010, 0x10101010, |
0x10101010, 0x10101010, 0x10101010, 0x10101010, |
0x10101010, 0x10101010, 0x10101010, 0x10101010 |
}; |
gen75_mfc_qm_state(ctx, MFX_QM_AVC_4X4_INTRA_MATRIX, qm, 12, gen6_encoder_context, batch); |
gen75_mfc_qm_state(ctx, MFX_QM_AVC_4X4_INTER_MATRIX, qm, 12, gen6_encoder_context, batch); |
gen75_mfc_qm_state(ctx, MFX_QM_AVC_8x8_INTRA_MATRIX, qm, 16, gen6_encoder_context, batch); |
gen75_mfc_qm_state(ctx, MFX_QM_AVC_8x8_INTER_MATRIX, qm, 16, gen6_encoder_context, batch); |
} |
static void |
gen75_mfc_fqm_state(VADriverContextP ctx, |
int fqm_type, |
unsigned int *fqm, |
int fqm_length, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
unsigned int fqm_buffer[32]; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
assert(fqm_length <= 32); |
assert(sizeof(*fqm) == 4); |
memcpy(fqm_buffer, fqm, fqm_length * 4); |
BEGIN_BCS_BATCH(batch, 34); |
OUT_BCS_BATCH(batch, MFX_FQM_STATE | (34 - 2)); |
OUT_BCS_BATCH(batch, fqm_type << 0); |
intel_batchbuffer_data(batch, fqm_buffer, 32 * 4); |
ADVANCE_BCS_BATCH(batch); |
} |
static void gen75_mfc_avc_fqm_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
unsigned int qm[32] = { |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000, |
0x10001000, 0x10001000, 0x10001000, 0x10001000 |
}; |
gen75_mfc_fqm_state(ctx, MFX_QM_AVC_4X4_INTRA_MATRIX, qm, 24, gen6_encoder_context, batch); |
gen75_mfc_fqm_state(ctx, MFX_QM_AVC_4X4_INTER_MATRIX, qm, 24, gen6_encoder_context, batch); |
gen75_mfc_fqm_state(ctx, MFX_QM_AVC_8x8_INTRA_MATRIX, qm, 32, gen6_encoder_context, batch); |
gen75_mfc_fqm_state(ctx, MFX_QM_AVC_8x8_INTER_MATRIX, qm, 32, gen6_encoder_context, batch); |
} |
static void gen75_mfc_avc_ref_idx_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
int i; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, 10); |
OUT_BCS_BATCH(batch, MFX_AVC_REF_IDX_STATE | 8); |
OUT_BCS_BATCH(batch, 0); //Select L0 |
OUT_BCS_BATCH(batch, 0x80808000); //Only 1 reference |
for(i = 0; i < 7; i++) { |
OUT_BCS_BATCH(batch, 0x80808080); |
} |
ADVANCE_BCS_BATCH(batch); |
} |
static int |
gen75_mfc_avc_pak_object_intra(VADriverContextP ctx, int x, int y, int end_mb, int qp,unsigned int *msg, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
int len_in_dwords = 12; |
unsigned int intra_msg; |
#define INTRA_MSG_FLAG (1 << 13) |
#define INTRA_MBTYPE_MASK (0x1F0000) |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, len_in_dwords); |
intra_msg = msg[0] & 0xC0FF; |
intra_msg |= INTRA_MSG_FLAG; |
intra_msg |= ((msg[0] & INTRA_MBTYPE_MASK) >> 8); |
OUT_BCS_BATCH(batch, MFC_AVC_PAK_OBJECT | (len_in_dwords - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
(0 << 24) | /* PackedMvNum, Debug*/ |
(0 << 20) | /* No motion vector */ |
(1 << 19) | /* CbpDcY */ |
(1 << 18) | /* CbpDcU */ |
(1 << 17) | /* CbpDcV */ |
intra_msg); |
OUT_BCS_BATCH(batch, (0xFFFF<<16) | (y << 8) | x); /* Code Block Pattern for Y*/ |
OUT_BCS_BATCH(batch, 0x000F000F); /* Code Block Pattern */ |
OUT_BCS_BATCH(batch, (0 << 27) | (end_mb << 26) | qp); /* Last MB */ |
/*Stuff for Intra MB*/ |
OUT_BCS_BATCH(batch, msg[1]); /* We using Intra16x16 no 4x4 predmode*/ |
OUT_BCS_BATCH(batch, msg[2]); |
OUT_BCS_BATCH(batch, msg[3]&0xFC); |
OUT_BCS_BATCH(batch, 0x00000); /*MaxSizeInWord and TargetSzieInWord*/ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
return len_in_dwords; |
} |
static int gen75_mfc_avc_pak_object_inter(VADriverContextP ctx, int x, int y, int end_mb, int qp, |
unsigned int offset, unsigned int *msg, struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
int len_in_dwords = 12; |
unsigned int inter_msg; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BCS_BATCH(batch, len_in_dwords); |
OUT_BCS_BATCH(batch, MFC_AVC_PAK_OBJECT | (len_in_dwords - 2)); |
inter_msg = 32; |
/* MV quantity */ |
if ((msg[0] & INTER_MODE_MASK) == INTER_8X8) { |
if (msg[1] & SUBMB_SHAPE_MASK) |
inter_msg = 128; |
} |
OUT_BCS_BATCH(batch, inter_msg); /* 32 MV*/ |
OUT_BCS_BATCH(batch, offset); |
inter_msg = msg[0] & (0x1F00FFFF); |
inter_msg |= INTER_MV8; |
if (((msg[0] & INTER_MODE_MASK) == INTER_8X8) && |
(msg[1] & SUBMB_SHAPE_MASK)) { |
inter_msg |= INTER_MV32; |
} |
OUT_BCS_BATCH(batch, inter_msg); |
OUT_BCS_BATCH(batch, (0xFFFF<<16) | (y << 8) | x); /* Code Block Pattern for Y*/ |
OUT_BCS_BATCH(batch, 0x000F000F); /* Code Block Pattern */ |
OUT_BCS_BATCH(batch, (0 << 27) | (end_mb << 26) | qp); /* Last MB */ |
/*Stuff for Inter MB*/ |
inter_msg = msg[1] >> 8; |
OUT_BCS_BATCH(batch, inter_msg); |
OUT_BCS_BATCH(batch, 0x0); |
OUT_BCS_BATCH(batch, 0x0); |
OUT_BCS_BATCH(batch, 0x00000000); /*MaxSizeInWord and TargetSzieInWord*/ |
OUT_BCS_BATCH(batch, 0x0); |
ADVANCE_BCS_BATCH(batch); |
return len_in_dwords; |
} |
static void gen75_mfc_init(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
dri_bo *bo; |
int i; |
VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param->buffer; |
int width_in_mbs = pSequenceParameter->picture_width_in_mbs; |
/*Encode common setup for MFC*/ |
dri_bo_unreference(mfc_context->post_deblocking_output.bo); |
mfc_context->post_deblocking_output.bo = NULL; |
dri_bo_unreference(mfc_context->pre_deblocking_output.bo); |
mfc_context->pre_deblocking_output.bo = NULL; |
dri_bo_unreference(mfc_context->uncompressed_picture_source.bo); |
mfc_context->uncompressed_picture_source.bo = NULL; |
dri_bo_unreference(mfc_context->mfc_indirect_pak_bse_object.bo); |
mfc_context->mfc_indirect_pak_bse_object.bo = NULL; |
for (i = 0; i < MAX_MFC_REFERENCE_SURFACES; i++){ |
if (mfc_context->reference_surfaces[i].bo != NULL) |
dri_bo_unreference(mfc_context->reference_surfaces[i].bo); |
mfc_context->reference_surfaces[i].bo = NULL; |
} |
dri_bo_unreference(mfc_context->intra_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
width_in_mbs * 64, |
64); |
assert(bo); |
mfc_context->intra_row_store_scratch_buffer.bo = bo; |
dri_bo_unreference(mfc_context->deblocking_filter_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
4 * width_in_mbs * 64, /* 4 * width_in_mbs * 64 */ |
64); |
assert(bo); |
mfc_context->deblocking_filter_row_store_scratch_buffer.bo = bo; |
dri_bo_unreference(mfc_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
2 * width_in_mbs * 64, /* 2 * width_in_mbs * 64 */ |
0x1000); |
assert(bo); |
mfc_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
} |
#define INTRA_RDO_OFFSET 4 |
#define INTER_RDO_OFFSET 54 |
#define INTER_MSG_OFFSET 52 |
#define INTER_MV_OFFSET 224 |
#define RDO_MASK 0xFFFF |
static void gen75_mfc_avc_pipeline_programing(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *main_batch = gen6_encoder_context->base.batch; |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param->buffer; |
VAEncSliceParameterBuffer *pSliceParameter = (VAEncSliceParameterBuffer *)encode_state->slice_params[0]->buffer; /* FIXME: multi slices */ |
unsigned int *msg = NULL, offset = 0; |
unsigned char *msg_ptr = NULL; |
int emit_new_state = 1, object_len_in_bytes; |
int is_intra = pSliceParameter->slice_flags.bits.is_intra; |
int width_in_mbs = (mfc_context->surface_state.width + 15) / 16; |
int height_in_mbs = (mfc_context->surface_state.height + 15) / 16; |
int x,y, mb_index; |
int inter_rdo, intra_rdo; |
struct intel_batchbuffer *batch = intel_batchbuffer_new(&i965->intel, I915_EXEC_BSD, width_in_mbs * height_in_mbs * 12 * 4 + 0x800); |
intel_batchbuffer_start_atomic_bcs(batch, width_in_mbs * height_in_mbs * 12 * 4 + 0x700); |
dri_bo_map(vme_context->vme_output.bo , 1); |
msg_ptr = (unsigned char *)vme_context->vme_output.bo->virtual; |
if (is_intra) { |
msg = (unsigned int *) (msg_ptr + 0 * vme_context->vme_output.size_block); |
} else { |
msg = (unsigned int *) (msg_ptr + 0 * vme_context->vme_output.size_block); |
offset = 0; |
} |
for (y = 0; y < height_in_mbs; y++) { |
for (x = 0; x < width_in_mbs; x++) { |
int last_mb = (y == (height_in_mbs-1)) && ( x == (width_in_mbs-1) ); |
int qp = pSequenceParameter->initial_qp; |
mb_index = (y * width_in_mbs) + x; |
if (emit_new_state) { |
intel_batchbuffer_emit_mi_flush(batch); |
gen75_mfc_pipe_mode_select(ctx, MFX_FORMAT_AVC, gen6_encoder_context, batch); |
gen75_mfc_surface_state(ctx, gen6_encoder_context, batch); |
gen75_mfc_ind_obj_base_addr_state(ctx, gen6_encoder_context, batch); |
gen75_mfc_pipe_buf_addr_state(ctx, gen6_encoder_context, batch); |
gen75_mfc_bsp_buf_base_addr_state(ctx, gen6_encoder_context, batch); |
gen75_mfc_avc_img_state(ctx, gen6_encoder_context, batch); |
gen75_mfc_avc_qm_state(ctx, gen6_encoder_context, batch); |
gen75_mfc_avc_fqm_state(ctx, gen6_encoder_context, batch); |
gen75_mfc_avc_directmode_state(ctx, gen6_encoder_context, batch); |
gen75_mfc_avc_ref_idx_state(ctx, gen6_encoder_context, batch); |
gen75_mfc_avc_slice_state(ctx, is_intra, gen6_encoder_context, batch); |
emit_new_state = 0; |
} |
msg = (unsigned int *) (msg_ptr + mb_index * vme_context->vme_output.size_block); |
if (is_intra) { |
object_len_in_bytes = gen75_mfc_avc_pak_object_intra(ctx, x, y, last_mb, qp, msg, gen6_encoder_context, batch); |
} else { |
inter_rdo = msg[INTER_RDO_OFFSET] & RDO_MASK; |
intra_rdo = msg[INTRA_RDO_OFFSET] & RDO_MASK; |
if (intra_rdo < inter_rdo) { |
object_len_in_bytes = gen75_mfc_avc_pak_object_intra(ctx, x, y, last_mb, qp, msg, gen6_encoder_context, batch); |
} else { |
msg += INTER_MSG_OFFSET; |
offset = mb_index * vme_context->vme_output.size_block + INTER_MV_OFFSET; |
object_len_in_bytes = gen75_mfc_avc_pak_object_inter(ctx, x, y, last_mb, qp, offset, msg, gen6_encoder_context, batch); |
} |
} |
if (intel_batchbuffer_check_free_space(batch, object_len_in_bytes) == 0) { |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
emit_new_state = 1; |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
} |
} |
} |
dri_bo_unmap(vme_context->vme_output.bo); |
intel_batchbuffer_align(batch, 8); |
BEGIN_BCS_BATCH(batch, 2); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, MI_BATCH_BUFFER_END); |
ADVANCE_BCS_BATCH(batch); |
intel_batchbuffer_end_atomic(batch); |
/* chain to the main batch buffer */ |
intel_batchbuffer_start_atomic_bcs(main_batch, 0x100); |
intel_batchbuffer_emit_mi_flush(main_batch); |
BEGIN_BCS_BATCH(main_batch, 2); |
OUT_BCS_BATCH(main_batch, MI_BATCH_BUFFER_START | (1 << 8)); |
OUT_BCS_RELOC(main_batch, |
batch->buffer, |
I915_GEM_DOMAIN_COMMAND, 0, |
0); |
ADVANCE_BCS_BATCH(main_batch); |
intel_batchbuffer_end_atomic(main_batch); |
// end programing |
intel_batchbuffer_free(batch); |
} |
static VAStatus gen75_mfc_avc_prepare(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
struct object_surface *obj_surface; |
struct object_buffer *obj_buffer; |
dri_bo *bo; |
VAEncPictureParameterBufferH264 *pPicParameter = (VAEncPictureParameterBufferH264 *)encode_state->pic_param->buffer; |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
/*Setup all the input&output object*/ |
obj_surface = SURFACE(pPicParameter->reconstructed_picture); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
mfc_context->post_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(mfc_context->post_deblocking_output.bo); |
mfc_context->surface_state.width = obj_surface->orig_width; |
mfc_context->surface_state.height = obj_surface->orig_height; |
mfc_context->surface_state.w_pitch = obj_surface->width; |
mfc_context->surface_state.h_pitch = obj_surface->height; |
obj_surface = SURFACE(pPicParameter->reference_picture); |
assert(obj_surface); |
if (obj_surface->bo != NULL) { |
mfc_context->reference_surfaces[0].bo = obj_surface->bo; |
dri_bo_reference(obj_surface->bo); |
} |
obj_surface = SURFACE(encode_state->current_render_target); |
assert(obj_surface && obj_surface->bo); |
mfc_context->uncompressed_picture_source.bo = obj_surface->bo; |
dri_bo_reference(mfc_context->uncompressed_picture_source.bo); |
obj_buffer = BUFFER (pPicParameter->coded_buf); /* FIXME: fix this later */ |
bo = obj_buffer->buffer_store->bo; |
assert(bo); |
mfc_context->mfc_indirect_pak_bse_object.bo = bo; |
mfc_context->mfc_indirect_pak_bse_object.offset = ALIGN(sizeof(VACodedBufferSegment), 64); |
dri_bo_reference(mfc_context->mfc_indirect_pak_bse_object.bo); |
/*Programing bcs pipeline*/ |
gen75_mfc_avc_pipeline_programing(ctx, encode_state, gen6_encoder_context); //filling the pipeline |
return vaStatus; |
} |
static VAStatus gen75_mfc_run(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct intel_batchbuffer *batch = gen6_encoder_context->base.batch; |
intel_batchbuffer_flush(batch); //run the pipeline |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen75_mfc_stop(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
#if 0 |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_mfc_context *mfc_context = &gen6_encoder_context->mfc_context; |
VAEncPictureParameterBufferH264 *pPicParameter = (VAEncPictureParameterBufferH264 *)encode_state->pic_param->buffer; |
struct object_surface *obj_surface = SURFACE(pPicParameter->reconstructed_picture); |
//struct object_surface *obj_surface = SURFACE(pPicParameter->reference_picture[0]); |
//struct object_surface *obj_surface = SURFACE(encode_state->current_render_target); |
my_debug(obj_surface); |
#endif |
return VA_STATUS_SUCCESS; |
} |
static VAStatus |
gen75_mfc_avc_encode_picture(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
gen75_mfc_init(ctx, encode_state, gen6_encoder_context); |
gen75_mfc_avc_prepare(ctx, encode_state, gen6_encoder_context); |
gen75_mfc_run(ctx, encode_state, gen6_encoder_context); |
gen75_mfc_stop(ctx, encode_state, gen6_encoder_context); |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
gen75_mfc_pipeline(VADriverContextP ctx, |
VAProfile profile, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
VAStatus vaStatus; |
switch (profile) { |
case VAProfileH264Baseline: |
vaStatus = gen75_mfc_avc_encode_picture(ctx, encode_state, gen6_encoder_context); |
break; |
/* FIXME: add for other profile */ |
default: |
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; |
break; |
} |
return vaStatus; |
} |
Bool gen75_mfc_context_init(VADriverContextP ctx, struct gen6_mfc_context *mfc_context) |
{ |
int i; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
dri_bo *bo; |
for (i = 0; i < NUM_MFC_DMV_BUFFERS; i++){ |
dri_bo_unreference(mfc_context->direct_mv_buffers[i].bo); |
mfc_context->direct_mv_buffers[i].bo = NULL; |
} |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
68*8192, |
64); |
mfc_context->direct_mv_buffers[0].bo = bo; |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
68*8192, |
64); |
mfc_context->direct_mv_buffers[NUM_MFC_DMV_BUFFERS - 2].bo = bo; |
return True; |
} |
Bool gen75_mfc_context_destroy(struct gen6_mfc_context *mfc_context) |
{ |
int i; |
dri_bo_unreference(mfc_context->post_deblocking_output.bo); |
mfc_context->post_deblocking_output.bo = NULL; |
dri_bo_unreference(mfc_context->pre_deblocking_output.bo); |
mfc_context->pre_deblocking_output.bo = NULL; |
dri_bo_unreference(mfc_context->uncompressed_picture_source.bo); |
mfc_context->uncompressed_picture_source.bo = NULL; |
dri_bo_unreference(mfc_context->mfc_indirect_pak_bse_object.bo); |
mfc_context->mfc_indirect_pak_bse_object.bo = NULL; |
for (i = 0; i < NUM_MFC_DMV_BUFFERS; i++){ |
dri_bo_unreference(mfc_context->direct_mv_buffers[i].bo); |
mfc_context->direct_mv_buffers[i].bo = NULL; |
} |
dri_bo_unreference(mfc_context->intra_row_store_scratch_buffer.bo); |
mfc_context->intra_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(mfc_context->deblocking_filter_row_store_scratch_buffer.bo); |
mfc_context->deblocking_filter_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(mfc_context->bsd_mpc_row_store_scratch_buffer.bo); |
mfc_context->bsd_mpc_row_store_scratch_buffer.bo = NULL; |
return True; |
} |
/drivers/video/i965/gen75_mfd.c |
---|
0,0 → 1,3449 |
/* |
* Copyright © 2011 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* Zhao Yakui <yakui.zhao@intel.com> |
* |
*/ |
#ifndef HAVE_GEN_AVC_SURFACE |
#define HAVE_GEN_AVC_SURFACE 1 |
#endif |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
//#include "config.h" |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_decoder_utils.h" |
#include "gen7_mfd.h" |
#define B0_STEP_REV 2 |
#define IS_STEPPING_BPLUS(i965) ((i965->intel.revision) >= B0_STEP_REV) |
static const uint32_t zigzag_direct[64] = { |
0, 1, 8, 16, 9, 2, 3, 10, |
17, 24, 32, 25, 18, 11, 4, 5, |
12, 19, 26, 33, 40, 48, 41, 34, |
27, 20, 13, 6, 7, 14, 21, 28, |
35, 42, 49, 56, 57, 50, 43, 36, |
29, 22, 15, 23, 30, 37, 44, 51, |
58, 59, 52, 45, 38, 31, 39, 46, |
53, 60, 61, 54, 47, 55, 62, 63 |
}; |
static void |
gen75_mfd_avc_frame_store_index(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i, j; |
assert(ARRAY_ELEMS(gen7_mfd_context->reference_surface) == ARRAY_ELEMS(pic_param->ReferenceFrames)); |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
int found = 0; |
if (gen7_mfd_context->reference_surface[i].surface_id == VA_INVALID_ID) |
continue; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
VAPictureH264 *ref_pic = &pic_param->ReferenceFrames[j]; |
if (ref_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (gen7_mfd_context->reference_surface[i].surface_id == ref_pic->picture_id) { |
found = 1; |
break; |
} |
} |
if (!found) { |
struct object_surface *obj_surface = SURFACE(gen7_mfd_context->reference_surface[i].surface_id); |
obj_surface->flags &= ~SURFACE_REFERENCED; |
if ((obj_surface->flags & SURFACE_ALL_MASK) == SURFACE_DISPLAYED) { |
dri_bo_unreference(obj_surface->bo); |
obj_surface->bo = NULL; |
obj_surface->flags &= ~SURFACE_REF_DIS_MASK; |
} |
if (obj_surface->free_private_data) |
obj_surface->free_private_data(&obj_surface->private_data); |
gen7_mfd_context->reference_surface[i].surface_id = VA_INVALID_ID; |
gen7_mfd_context->reference_surface[i].frame_store_id = -1; |
} |
} |
for (i = 0; i < ARRAY_ELEMS(pic_param->ReferenceFrames); i++) { |
VAPictureH264 *ref_pic = &pic_param->ReferenceFrames[i]; |
int found = 0; |
if (ref_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
for (j = 0; j < ARRAY_ELEMS(gen7_mfd_context->reference_surface); j++) { |
if (gen7_mfd_context->reference_surface[j].surface_id == VA_INVALID_ID) |
continue; |
if (gen7_mfd_context->reference_surface[j].surface_id == ref_pic->picture_id) { |
found = 1; |
break; |
} |
} |
if (!found) { |
int frame_idx; |
struct object_surface *obj_surface = SURFACE(ref_pic->picture_id); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
for (frame_idx = 0; frame_idx < ARRAY_ELEMS(gen7_mfd_context->reference_surface); frame_idx++) { |
for (j = 0; j < ARRAY_ELEMS(gen7_mfd_context->reference_surface); j++) { |
if (gen7_mfd_context->reference_surface[j].surface_id == VA_INVALID_ID) |
continue; |
if (gen7_mfd_context->reference_surface[j].frame_store_id == frame_idx) |
break; |
} |
if (j == ARRAY_ELEMS(gen7_mfd_context->reference_surface)) |
break; |
} |
assert(frame_idx < ARRAY_ELEMS(gen7_mfd_context->reference_surface)); |
for (j = 0; j < ARRAY_ELEMS(gen7_mfd_context->reference_surface); j++) { |
if (gen7_mfd_context->reference_surface[j].surface_id == VA_INVALID_ID) { |
gen7_mfd_context->reference_surface[j].surface_id = ref_pic->picture_id; |
gen7_mfd_context->reference_surface[j].frame_store_id = frame_idx; |
break; |
} |
} |
} |
} |
/* sort */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface) - 1; i++) { |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID && |
gen7_mfd_context->reference_surface[i].frame_store_id == i) |
continue; |
for (j = i + 1; j < ARRAY_ELEMS(gen7_mfd_context->reference_surface); j++) { |
if (gen7_mfd_context->reference_surface[j].surface_id != VA_INVALID_ID && |
gen7_mfd_context->reference_surface[j].frame_store_id == i) { |
VASurfaceID id = gen7_mfd_context->reference_surface[i].surface_id; |
int frame_idx = gen7_mfd_context->reference_surface[i].frame_store_id; |
gen7_mfd_context->reference_surface[i].surface_id = gen7_mfd_context->reference_surface[j].surface_id; |
gen7_mfd_context->reference_surface[i].frame_store_id = gen7_mfd_context->reference_surface[j].frame_store_id; |
gen7_mfd_context->reference_surface[j].surface_id = id; |
gen7_mfd_context->reference_surface[j].frame_store_id = frame_idx; |
break; |
} |
} |
} |
} |
static void |
gen75_mfd_init_avc_surface(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
struct object_surface *obj_surface) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
GenAvcSurface *gen7_avc_surface = obj_surface->private_data; |
int width_in_mbs, height_in_mbs; |
obj_surface->free_private_data = gen_free_avc_surface; |
width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; /* frame height */ |
if (!gen7_avc_surface) { |
gen7_avc_surface = calloc(sizeof(GenAvcSurface), 1); |
assert((obj_surface->size & 0x3f) == 0); |
obj_surface->private_data = gen7_avc_surface; |
} |
gen7_avc_surface->dmv_bottom_flag = (pic_param->pic_fields.bits.field_pic_flag && |
!pic_param->seq_fields.bits.direct_8x8_inference_flag); |
if (gen7_avc_surface->dmv_top == NULL) { |
gen7_avc_surface->dmv_top = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
width_in_mbs * height_in_mbs * 128, |
0x1000); |
assert(gen7_avc_surface->dmv_top); |
} |
if (gen7_avc_surface->dmv_bottom_flag && |
gen7_avc_surface->dmv_bottom == NULL) { |
gen7_avc_surface->dmv_bottom = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
width_in_mbs * height_in_mbs * 128, |
0x1000); |
assert(gen7_avc_surface->dmv_bottom); |
} |
} |
static void |
gen75_mfd_pipe_mode_select(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
assert(standard_select == MFX_FORMAT_MPEG2 || |
standard_select == MFX_FORMAT_AVC || |
standard_select == MFX_FORMAT_VC1 || |
standard_select == MFX_FORMAT_JPEG); |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFX_PIPE_MODE_SELECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
(MFX_LONG_MODE << 17) | /* Currently only support long format */ |
(MFD_MODE_VLD << 15) | /* VLD mode */ |
(0 << 10) | /* disable Stream-Out */ |
(gen7_mfd_context->post_deblocking_output.valid << 9) | /* Post Deblocking Output */ |
(gen7_mfd_context->pre_deblocking_output.valid << 8) | /* Pre Deblocking Output */ |
(0 << 5) | /* not in stitch mode */ |
(MFX_CODEC_DECODE << 4) | /* decoding mode */ |
(standard_select << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 4) | /* terminate if AVC motion and POC table error occurs */ |
(0 << 3) | /* terminate if AVC mbdata error occurs */ |
(0 << 2) | /* terminate if AVC CABAC/CAVLC decode error occurs */ |
(0 << 1) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, 0); /* pic status/error report id */ |
OUT_BCS_BATCH(batch, 0); /* reserved */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_surface_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(decode_state->current_render_target); |
unsigned int y_cb_offset; |
unsigned int y_cr_offset; |
assert(obj_surface); |
y_cb_offset = obj_surface->y_cb_offset; |
y_cr_offset = obj_surface->y_cr_offset; |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_SURFACE_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
((obj_surface->orig_height - 1) << 18) | |
((obj_surface->orig_width - 1) << 4)); |
OUT_BCS_BATCH(batch, |
(MFX_SURFACE_PLANAR_420_8 << 28) | /* 420 planar YUV surface */ |
((standard_select != MFX_FORMAT_JPEG) << 27) | /* interleave chroma, set to 0 for JPEG */ |
(0 << 22) | /* surface object control state, ignored */ |
((obj_surface->width - 1) << 3) | /* pitch */ |
(0 << 2) | /* must be 0 */ |
(1 << 1) | /* must be tiled */ |
(I965_TILEWALK_YMAJOR << 0)); /* tile walk, must be 1 */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* X offset for U(Cb), must be 0 */ |
(y_cb_offset << 0)); /* Y offset for U(Cb) */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* X offset for V(Cr), must be 0 */ |
(y_cr_offset << 0)); /* Y offset for V(Cr), must be 0 for video codec, non-zoro for JPEG */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_pipe_buf_addr_state_bplus(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i; |
BEGIN_BCS_BATCH(batch, 61); |
OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (61 - 2)); |
/* Pre-deblock 1-3 */ |
if (gen7_mfd_context->pre_deblocking_output.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->pre_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* Post-debloing 4-6 */ |
if (gen7_mfd_context->post_deblocking_output.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->post_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* uncompressed-video & stream out 7-12 */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* intra row-store scratch 13-15 */ |
if (gen7_mfd_context->intra_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->intra_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* deblocking-filter-row-store 16-18 */ |
if (gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* DW 19..50 */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
struct object_surface *obj_surface; |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
obj_surface = SURFACE(gen7_mfd_context->reference_surface[i].surface_id); |
assert(obj_surface && obj_surface->bo); |
OUT_BCS_RELOC(batch, obj_surface->bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
} else { |
OUT_BCS_BATCH(batch, 0); |
} |
OUT_BCS_BATCH(batch, 0); |
} |
/* reference property 51 */ |
OUT_BCS_BATCH(batch, 0); |
/* Macroblock status & ILDB 52-57 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the second Macroblock status 58-60 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_pipe_buf_addr_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_mfd_pipe_buf_addr_state_bplus(ctx, decode_state, |
standard_select, gen7_mfd_context); |
return; |
} |
BEGIN_BCS_BATCH(batch, 25); |
OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (25 - 2)); |
if (gen7_mfd_context->pre_deblocking_output.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->pre_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen7_mfd_context->post_deblocking_output.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->post_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
if (gen7_mfd_context->intra_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->intra_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
/* DW 7..22 */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
struct object_surface *obj_surface; |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
obj_surface = SURFACE(gen7_mfd_context->reference_surface[i].surface_id); |
assert(obj_surface && obj_surface->bo); |
OUT_BCS_RELOC(batch, obj_surface->bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
} else { |
OUT_BCS_BATCH(batch, 0); |
} |
} |
OUT_BCS_BATCH(batch, 0); /* ignore DW23 for decoding */ |
OUT_BCS_BATCH(batch, 0); /* ignore DW24 for decoding */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_ind_obj_base_addr_state_bplus(VADriverContextP ctx, |
dri_bo *slice_data_bo, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 26); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (26 - 2)); |
/* MFX In BS 1-5 */ |
OUT_BCS_RELOC(batch, slice_data_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); /* MFX Indirect Bitstream Object Base Address */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* Upper bound 4-5 */ |
OUT_BCS_BATCH(batch, 0x80000000); /* must set, up to 2G */ |
OUT_BCS_BATCH(batch, 0); |
/* MFX indirect MV 6-10 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* MFX IT_COFF 11-15 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* MFX IT_DBLK 16-20 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* MFX PAK_BSE object for encoder 21-25 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_ind_obj_base_addr_state(VADriverContextP ctx, |
dri_bo *slice_data_bo, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_mfd_ind_obj_base_addr_state_bplus(ctx, slice_data_bo, |
standard_select, gen7_mfd_context); |
return; |
} |
BEGIN_BCS_BATCH(batch, 11); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (11 - 2)); |
OUT_BCS_RELOC(batch, slice_data_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); /* MFX Indirect Bitstream Object Base Address */ |
OUT_BCS_BATCH(batch, 0x80000000); /* must set, up to 2G */ |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_bsp_buf_base_addr_state_bplus(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 10); |
OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (10 - 2)); |
if (gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* MPR Row Store Scratch buffer 4-6 */ |
if (gen7_mfd_context->mpr_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->mpr_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* Bitplane 7-9 */ |
if (gen7_mfd_context->bitplane_read_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->bitplane_read_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_bsp_buf_base_addr_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_mfd_bsp_buf_base_addr_state_bplus(ctx, decode_state, |
standard_select, gen7_mfd_context); |
return; |
} |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (4 - 2)); |
if (gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen7_mfd_context->mpr_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->mpr_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen7_mfd_context->bitplane_read_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->bitplane_read_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_qm_state(VADriverContextP ctx, |
int qm_type, |
unsigned char *qm, |
int qm_length, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
unsigned int qm_buffer[16]; |
assert(qm_length <= 16 * 4); |
memcpy(qm_buffer, qm, qm_length); |
BEGIN_BCS_BATCH(batch, 18); |
OUT_BCS_BATCH(batch, MFX_QM_STATE | (18 - 2)); |
OUT_BCS_BATCH(batch, qm_type << 0); |
intel_batchbuffer_data(batch, qm_buffer, 16 * 4); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_avc_img_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int img_struct; |
int mbaff_frame_flag; |
unsigned int width_in_mbs, height_in_mbs; |
VAPictureParameterBufferH264 *pic_param; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
assert(!(pic_param->CurrPic.flags & VA_PICTURE_H264_INVALID)); |
if (pic_param->CurrPic.flags & VA_PICTURE_H264_TOP_FIELD) |
img_struct = 1; |
else if (pic_param->CurrPic.flags & VA_PICTURE_H264_BOTTOM_FIELD) |
img_struct = 3; |
else |
img_struct = 0; |
if ((img_struct & 0x1) == 0x1) { |
assert(pic_param->pic_fields.bits.field_pic_flag == 0x1); |
} else { |
assert(pic_param->pic_fields.bits.field_pic_flag == 0x0); |
} |
if (pic_param->seq_fields.bits.frame_mbs_only_flag) { /* a frame containing only frame macroblocks */ |
assert(pic_param->seq_fields.bits.mb_adaptive_frame_field_flag == 0); |
assert(pic_param->pic_fields.bits.field_pic_flag == 0); |
} else { |
assert(pic_param->seq_fields.bits.direct_8x8_inference_flag == 1); /* see H.264 spec */ |
} |
mbaff_frame_flag = (pic_param->seq_fields.bits.mb_adaptive_frame_field_flag && |
!pic_param->pic_fields.bits.field_pic_flag); |
width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; /* frame height */ |
/* MFX unit doesn't support 4:2:2 and 4:4:4 picture */ |
assert(pic_param->seq_fields.bits.chroma_format_idc == 0 || /* monochrome picture */ |
pic_param->seq_fields.bits.chroma_format_idc == 1); /* 4:2:0 */ |
assert(pic_param->seq_fields.bits.residual_colour_transform_flag == 0); /* only available for 4:4:4 */ |
BEGIN_BCS_BATCH(batch, 16); |
OUT_BCS_BATCH(batch, MFX_AVC_IMG_STATE | (16 - 2)); |
OUT_BCS_BATCH(batch, |
width_in_mbs * height_in_mbs); |
OUT_BCS_BATCH(batch, |
((height_in_mbs - 1) << 16) | |
((width_in_mbs - 1) << 0)); |
OUT_BCS_BATCH(batch, |
((pic_param->second_chroma_qp_index_offset & 0x1f) << 24) | |
((pic_param->chroma_qp_index_offset & 0x1f) << 16) | |
(0 << 14) | /* Max-bit conformance Intra flag ??? FIXME */ |
(0 << 13) | /* Max Macroblock size conformance Inter flag ??? FIXME */ |
(pic_param->pic_fields.bits.weighted_pred_flag << 12) | /* differ from GEN6 */ |
(pic_param->pic_fields.bits.weighted_bipred_idc << 10) | |
(img_struct << 8)); |
OUT_BCS_BATCH(batch, |
(pic_param->seq_fields.bits.chroma_format_idc << 10) | |
(pic_param->pic_fields.bits.entropy_coding_mode_flag << 7) | |
((!pic_param->pic_fields.bits.reference_pic_flag) << 6) | |
(pic_param->pic_fields.bits.constrained_intra_pred_flag << 5) | |
(pic_param->seq_fields.bits.direct_8x8_inference_flag << 4) | |
(pic_param->pic_fields.bits.transform_8x8_mode_flag << 3) | |
(pic_param->seq_fields.bits.frame_mbs_only_flag << 2) | |
(mbaff_frame_flag << 1) | |
(pic_param->pic_fields.bits.field_pic_flag << 0)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_avc_qm_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAIQMatrixBufferH264 *iq_matrix; |
VAPictureParameterBufferH264 *pic_param; |
if (decode_state->iq_matrix && decode_state->iq_matrix->buffer) |
iq_matrix = (VAIQMatrixBufferH264 *)decode_state->iq_matrix->buffer; |
else |
iq_matrix = &gen7_mfd_context->iq_matrix.h264; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
gen75_mfd_qm_state(ctx, MFX_QM_AVC_4X4_INTRA_MATRIX, &iq_matrix->ScalingList4x4[0][0], 3 * 16, gen7_mfd_context); |
gen75_mfd_qm_state(ctx, MFX_QM_AVC_4X4_INTER_MATRIX, &iq_matrix->ScalingList4x4[3][0], 3 * 16, gen7_mfd_context); |
if (pic_param->pic_fields.bits.transform_8x8_mode_flag) { |
gen75_mfd_qm_state(ctx, MFX_QM_AVC_8x8_INTRA_MATRIX, &iq_matrix->ScalingList8x8[0][0], 64, gen7_mfd_context); |
gen75_mfd_qm_state(ctx, MFX_QM_AVC_8x8_INTER_MATRIX, &iq_matrix->ScalingList8x8[1][0], 64, gen7_mfd_context); |
} |
} |
static void |
gen75_mfd_avc_picid_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 10); |
OUT_BCS_BATCH(batch, MFD_AVC_PICID_STATE | (10 - 2)); |
OUT_BCS_BATCH(batch, 1); // disable Picture ID Remapping |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_avc_directmode_state_bplus(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
struct object_surface *obj_surface; |
GenAvcSurface *gen7_avc_surface; |
VAPictureH264 *va_pic; |
int i, j; |
BEGIN_BCS_BATCH(batch, 71); |
OUT_BCS_BATCH(batch, MFX_AVC_DIRECTMODE_STATE | (71 - 2)); |
/* reference surfaces 0..15 */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
obj_surface = SURFACE(gen7_mfd_context->reference_surface[i].surface_id); |
assert(obj_surface); |
gen7_avc_surface = obj_surface->private_data; |
if (gen7_avc_surface == NULL) { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} else { |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BCS_BATCH(batch, 0); |
} |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
OUT_BCS_BATCH(batch, 0); |
/* the current decoding frame/field */ |
va_pic = &pic_param->CurrPic; |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface && obj_surface->bo && obj_surface->private_data); |
gen7_avc_surface = obj_surface->private_data; |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* POC List */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
int found = 0; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
va_pic = &pic_param->ReferenceFrames[j]; |
if (va_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (va_pic->picture_id == gen7_mfd_context->reference_surface[i].surface_id) { |
found = 1; |
break; |
} |
} |
assert(found == 1); |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
OUT_BCS_BATCH(batch, va_pic->TopFieldOrderCnt); |
OUT_BCS_BATCH(batch, va_pic->BottomFieldOrderCnt); |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
va_pic = &pic_param->CurrPic; |
OUT_BCS_BATCH(batch, va_pic->TopFieldOrderCnt); |
OUT_BCS_BATCH(batch, va_pic->BottomFieldOrderCnt); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_avc_directmode_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
struct object_surface *obj_surface; |
GenAvcSurface *gen7_avc_surface; |
VAPictureH264 *va_pic; |
int i, j; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_mfd_avc_directmode_state_bplus(ctx, pic_param, slice_param, |
gen7_mfd_context); |
return; |
} |
BEGIN_BCS_BATCH(batch, 69); |
OUT_BCS_BATCH(batch, MFX_AVC_DIRECTMODE_STATE | (69 - 2)); |
/* reference surfaces 0..15 */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
obj_surface = SURFACE(gen7_mfd_context->reference_surface[i].surface_id); |
assert(obj_surface); |
gen7_avc_surface = obj_surface->private_data; |
if (gen7_avc_surface == NULL) { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} else { |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
if (gen7_avc_surface->dmv_bottom_flag == 1) |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_bottom, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
} |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
/* the current decoding frame/field */ |
va_pic = &pic_param->CurrPic; |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface && obj_surface->bo && obj_surface->private_data); |
gen7_avc_surface = obj_surface->private_data; |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
if (gen7_avc_surface->dmv_bottom_flag == 1) |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_bottom, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
/* POC List */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
int found = 0; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
va_pic = &pic_param->ReferenceFrames[j]; |
if (va_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (va_pic->picture_id == gen7_mfd_context->reference_surface[i].surface_id) { |
found = 1; |
break; |
} |
} |
assert(found == 1); |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
OUT_BCS_BATCH(batch, va_pic->TopFieldOrderCnt); |
OUT_BCS_BATCH(batch, va_pic->BottomFieldOrderCnt); |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
va_pic = &pic_param->CurrPic; |
OUT_BCS_BATCH(batch, va_pic->TopFieldOrderCnt); |
OUT_BCS_BATCH(batch, va_pic->BottomFieldOrderCnt); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_avc_slice_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
VASliceParameterBufferH264 *next_slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
int height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; |
int slice_hor_pos, slice_ver_pos, next_slice_hor_pos, next_slice_ver_pos; |
int num_ref_idx_l0, num_ref_idx_l1; |
int mbaff_picture = (!pic_param->pic_fields.bits.field_pic_flag && |
pic_param->seq_fields.bits.mb_adaptive_frame_field_flag); |
int first_mb_in_slice = 0, first_mb_in_next_slice = 0; |
int slice_type; |
if (slice_param->slice_type == SLICE_TYPE_I || |
slice_param->slice_type == SLICE_TYPE_SI) { |
slice_type = SLICE_TYPE_I; |
} else if (slice_param->slice_type == SLICE_TYPE_P || |
slice_param->slice_type == SLICE_TYPE_SP) { |
slice_type = SLICE_TYPE_P; |
} else { |
assert(slice_param->slice_type == SLICE_TYPE_B); |
slice_type = SLICE_TYPE_B; |
} |
if (slice_type == SLICE_TYPE_I) { |
assert(slice_param->num_ref_idx_l0_active_minus1 == 0); |
assert(slice_param->num_ref_idx_l1_active_minus1 == 0); |
num_ref_idx_l0 = 0; |
num_ref_idx_l1 = 0; |
} else if (slice_type == SLICE_TYPE_P) { |
assert(slice_param->num_ref_idx_l1_active_minus1 == 0); |
num_ref_idx_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; |
num_ref_idx_l1 = 0; |
} else { |
num_ref_idx_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; |
num_ref_idx_l1 = slice_param->num_ref_idx_l1_active_minus1 + 1; |
} |
first_mb_in_slice = slice_param->first_mb_in_slice << mbaff_picture; |
slice_hor_pos = first_mb_in_slice % width_in_mbs; |
slice_ver_pos = first_mb_in_slice / width_in_mbs; |
if (next_slice_param) { |
first_mb_in_next_slice = next_slice_param->first_mb_in_slice << mbaff_picture; |
next_slice_hor_pos = first_mb_in_next_slice % width_in_mbs; |
next_slice_ver_pos = first_mb_in_next_slice / width_in_mbs; |
} else { |
next_slice_hor_pos = 0; |
next_slice_ver_pos = height_in_mbs / (1 + !!pic_param->pic_fields.bits.field_pic_flag); |
} |
BEGIN_BCS_BATCH(batch, 11); /* FIXME: is it 10??? */ |
OUT_BCS_BATCH(batch, MFX_AVC_SLICE_STATE | (11 - 2)); |
OUT_BCS_BATCH(batch, slice_type); |
OUT_BCS_BATCH(batch, |
(num_ref_idx_l1 << 24) | |
(num_ref_idx_l0 << 16) | |
(slice_param->chroma_log2_weight_denom << 8) | |
(slice_param->luma_log2_weight_denom << 0)); |
OUT_BCS_BATCH(batch, |
(slice_param->direct_spatial_mv_pred_flag << 29) | |
(slice_param->disable_deblocking_filter_idc << 27) | |
(slice_param->cabac_init_idc << 24) | |
((pic_param->pic_init_qp_minus26 + 26 + slice_param->slice_qp_delta) << 16) | |
((slice_param->slice_beta_offset_div2 & 0xf) << 8) | |
((slice_param->slice_alpha_c0_offset_div2 & 0xf) << 0)); |
OUT_BCS_BATCH(batch, |
(slice_ver_pos << 24) | |
(slice_hor_pos << 16) | |
(first_mb_in_slice << 0)); |
OUT_BCS_BATCH(batch, |
(next_slice_ver_pos << 16) | |
(next_slice_hor_pos << 0)); |
OUT_BCS_BATCH(batch, |
(next_slice_param == NULL) << 19); /* last slice flag */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static inline void |
gen75_mfd_avc_ref_idx_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
gen6_send_avc_ref_idx_state( |
gen7_mfd_context->base.batch, |
slice_param, |
gen7_mfd_context->reference_surface |
); |
} |
static void |
gen75_mfd_avc_weightoffset_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int i, j, num_weight_offset_table = 0; |
short weightoffsets[32 * 6]; |
if ((slice_param->slice_type == SLICE_TYPE_P || |
slice_param->slice_type == SLICE_TYPE_SP) && |
(pic_param->pic_fields.bits.weighted_pred_flag == 1)) { |
num_weight_offset_table = 1; |
} |
if ((slice_param->slice_type == SLICE_TYPE_B) && |
(pic_param->pic_fields.bits.weighted_bipred_idc == 1)) { |
num_weight_offset_table = 2; |
} |
for (i = 0; i < num_weight_offset_table; i++) { |
BEGIN_BCS_BATCH(batch, 98); |
OUT_BCS_BATCH(batch, MFX_AVC_WEIGHTOFFSET_STATE | (98 - 2)); |
OUT_BCS_BATCH(batch, i); |
if (i == 0) { |
for (j = 0; j < 32; j++) { |
weightoffsets[j * 6 + 0] = slice_param->luma_weight_l0[j]; |
weightoffsets[j * 6 + 1] = slice_param->luma_offset_l0[j]; |
weightoffsets[j * 6 + 2] = slice_param->chroma_weight_l0[j][0]; |
weightoffsets[j * 6 + 3] = slice_param->chroma_offset_l0[j][0]; |
weightoffsets[j * 6 + 4] = slice_param->chroma_weight_l0[j][1]; |
weightoffsets[j * 6 + 5] = slice_param->chroma_offset_l0[j][1]; |
} |
} else { |
for (j = 0; j < 32; j++) { |
weightoffsets[j * 6 + 0] = slice_param->luma_weight_l1[j]; |
weightoffsets[j * 6 + 1] = slice_param->luma_offset_l1[j]; |
weightoffsets[j * 6 + 2] = slice_param->chroma_weight_l1[j][0]; |
weightoffsets[j * 6 + 3] = slice_param->chroma_offset_l1[j][0]; |
weightoffsets[j * 6 + 4] = slice_param->chroma_weight_l1[j][1]; |
weightoffsets[j * 6 + 5] = slice_param->chroma_offset_l1[j][1]; |
} |
} |
intel_batchbuffer_data(batch, weightoffsets, sizeof(weightoffsets)); |
ADVANCE_BCS_BATCH(batch); |
} |
} |
static void |
gen75_mfd_avc_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
dri_bo *slice_data_bo, |
VASliceParameterBufferH264 *next_slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
unsigned int slice_data_bit_offset; |
slice_data_bit_offset = avc_get_first_mb_bit_offset( |
slice_data_bo, |
slice_param, |
pic_param->pic_fields.bits.entropy_coding_mode_flag |
); |
/* the input bitsteam format on GEN7 differs from GEN6 */ |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFD_AVC_BSD_OBJECT | (6 - 2)); |
OUT_BCS_BATCH(batch, |
(slice_param->slice_data_size - slice_param->slice_data_offset)); |
OUT_BCS_BATCH(batch, slice_param->slice_data_offset); |
OUT_BCS_BATCH(batch, |
(0 << 31) | |
(0 << 14) | |
(0 << 12) | |
(0 << 10) | |
(0 << 8)); |
OUT_BCS_BATCH(batch, |
((slice_data_bit_offset >> 3) << 16) | |
(1 << 7) | |
(0 << 5) | |
(0 << 4) | |
((next_slice_param == NULL) << 3) | /* LastSlice Flag */ |
(slice_data_bit_offset & 0x7)); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static inline void |
gen75_mfd_avc_context_init( |
VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context |
) |
{ |
/* Initialize flat scaling lists */ |
avc_gen_default_iq_matrix(&gen7_mfd_context->iq_matrix.h264); |
} |
static void |
gen75_mfd_avc_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAPictureParameterBufferH264 *pic_param; |
VASliceParameterBufferH264 *slice_param; |
VAPictureH264 *va_pic; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
dri_bo *bo; |
int i, j, enable_avc_ildb = 0; |
unsigned int width_in_mbs, height_in_mbs; |
for (j = 0; j < decode_state->num_slice_params && enable_avc_ildb == 0; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
assert((slice_param->slice_type == SLICE_TYPE_I) || |
(slice_param->slice_type == SLICE_TYPE_SI) || |
(slice_param->slice_type == SLICE_TYPE_P) || |
(slice_param->slice_type == SLICE_TYPE_SP) || |
(slice_param->slice_type == SLICE_TYPE_B)); |
if (slice_param->disable_deblocking_filter_idc != 1) { |
enable_avc_ildb = 1; |
break; |
} |
slice_param++; |
} |
} |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
gen75_mfd_avc_frame_store_index(ctx, pic_param, gen7_mfd_context); |
width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; |
assert(width_in_mbs > 0 && width_in_mbs <= 256); /* 4K */ |
assert(height_in_mbs > 0 && height_in_mbs <= 256); |
/* Current decoded picture */ |
va_pic = &pic_param->CurrPic; |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface); |
obj_surface->flags &= ~SURFACE_REF_DIS_MASK; |
obj_surface->flags |= (pic_param->pic_fields.bits.reference_pic_flag ? SURFACE_REFERENCED : 0); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
/* initial uv component for YUV400 case */ |
if (pic_param->seq_fields.bits.chroma_format_idc == 0) { |
unsigned int uv_offset = obj_surface->width * obj_surface->height; |
unsigned int uv_size = obj_surface->width * obj_surface->height / 2; |
drm_intel_gem_bo_map_gtt(obj_surface->bo); |
memset(obj_surface->bo->virtual + uv_offset, 0x80, uv_size); |
drm_intel_gem_bo_unmap_gtt(obj_surface->bo); |
} |
gen75_mfd_init_avc_surface(ctx, pic_param, obj_surface); |
dri_bo_unreference(gen7_mfd_context->post_deblocking_output.bo); |
gen7_mfd_context->post_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->post_deblocking_output.bo); |
gen7_mfd_context->post_deblocking_output.valid = enable_avc_ildb; |
dri_bo_unreference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.valid = !enable_avc_ildb; |
dri_bo_unreference(gen7_mfd_context->intra_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"intra row store", |
width_in_mbs * 64, |
0x1000); |
assert(bo); |
gen7_mfd_context->intra_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->intra_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"deblocking filter row store", |
width_in_mbs * 64 * 4, |
0x1000); |
assert(bo); |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
width_in_mbs * 64 * 2, |
0x1000); |
assert(bo); |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen7_mfd_context->mpr_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"mpr row store", |
width_in_mbs * 64 * 2, |
0x1000); |
assert(bo); |
gen7_mfd_context->mpr_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->mpr_row_store_scratch_buffer.valid = 1; |
gen7_mfd_context->bitplane_read_buffer.valid = 0; |
} |
static void |
gen75_mfd_avc_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferH264 *pic_param; |
VASliceParameterBufferH264 *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
gen75_mfd_avc_decode_init(ctx, decode_state, gen7_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen75_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_AVC, gen7_mfd_context); |
gen75_mfd_surface_state(ctx, decode_state, MFX_FORMAT_AVC, gen7_mfd_context); |
gen75_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_AVC, gen7_mfd_context); |
gen75_mfd_bsp_buf_base_addr_state(ctx, decode_state, MFX_FORMAT_AVC, gen7_mfd_context); |
gen75_mfd_avc_qm_state(ctx, decode_state, gen7_mfd_context); |
gen75_mfd_avc_img_state(ctx, decode_state, gen7_mfd_context); |
gen75_mfd_avc_picid_state(ctx, decode_state, gen7_mfd_context); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen75_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_AVC, gen7_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
assert((slice_param->slice_type == SLICE_TYPE_I) || |
(slice_param->slice_type == SLICE_TYPE_SI) || |
(slice_param->slice_type == SLICE_TYPE_P) || |
(slice_param->slice_type == SLICE_TYPE_SP) || |
(slice_param->slice_type == SLICE_TYPE_B)); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen75_mfd_avc_directmode_state(ctx, pic_param, slice_param, gen7_mfd_context); |
gen75_mfd_avc_ref_idx_state(ctx, pic_param, slice_param, gen7_mfd_context); |
gen75_mfd_avc_weightoffset_state(ctx, pic_param, slice_param, gen7_mfd_context); |
gen75_mfd_avc_slice_state(ctx, pic_param, slice_param, next_slice_param, gen7_mfd_context); |
gen75_mfd_avc_bsd_object(ctx, pic_param, slice_param, slice_data_bo, next_slice_param, gen7_mfd_context); |
slice_param++; |
} |
} |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
static void |
gen75_mfd_mpeg2_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAPictureParameterBufferMPEG2 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
dri_bo *bo; |
unsigned int width_in_mbs; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
width_in_mbs = ALIGN(pic_param->horizontal_size, 16) / 16; |
mpeg2_set_reference_surfaces( |
ctx, |
gen7_mfd_context->reference_surface, |
decode_state, |
pic_param |
); |
/* Current decoded picture */ |
obj_surface = SURFACE(decode_state->current_render_target); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
dri_bo_unreference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.valid = 1; |
dri_bo_unreference(gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
width_in_mbs * 96, |
0x1000); |
assert(bo); |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 1; |
gen7_mfd_context->post_deblocking_output.valid = 0; |
gen7_mfd_context->intra_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->mpr_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->bitplane_read_buffer.valid = 0; |
} |
static void |
gen75_mfd_mpeg2_pic_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferMPEG2 *pic_param; |
unsigned int slice_concealment_disable_bit = 0; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
/* XXX: disable concealment for now */ |
slice_concealment_disable_bit = 1; |
BEGIN_BCS_BATCH(batch, 13); |
OUT_BCS_BATCH(batch, MFX_MPEG2_PIC_STATE | (13 - 2)); |
OUT_BCS_BATCH(batch, |
(pic_param->f_code & 0xf) << 28 | /* f_code[1][1] */ |
((pic_param->f_code >> 4) & 0xf) << 24 | /* f_code[1][0] */ |
((pic_param->f_code >> 8) & 0xf) << 20 | /* f_code[0][1] */ |
((pic_param->f_code >> 12) & 0xf) << 16 | /* f_code[0][0] */ |
pic_param->picture_coding_extension.bits.intra_dc_precision << 14 | |
pic_param->picture_coding_extension.bits.picture_structure << 12 | |
pic_param->picture_coding_extension.bits.top_field_first << 11 | |
pic_param->picture_coding_extension.bits.frame_pred_frame_dct << 10 | |
pic_param->picture_coding_extension.bits.concealment_motion_vectors << 9 | |
pic_param->picture_coding_extension.bits.q_scale_type << 8 | |
pic_param->picture_coding_extension.bits.intra_vlc_format << 7 | |
pic_param->picture_coding_extension.bits.alternate_scan << 6); |
OUT_BCS_BATCH(batch, |
pic_param->picture_coding_type << 9); |
OUT_BCS_BATCH(batch, |
(slice_concealment_disable_bit << 31) | |
((ALIGN(pic_param->vertical_size, 16) / 16) - 1) << 16 | |
((ALIGN(pic_param->horizontal_size, 16) / 16) - 1)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_mpeg2_qm_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAIQMatrixBufferMPEG2 * const gen_iq_matrix = &gen7_mfd_context->iq_matrix.mpeg2; |
int i, j; |
/* Update internal QM state */ |
if (decode_state->iq_matrix && decode_state->iq_matrix->buffer) { |
VAIQMatrixBufferMPEG2 * const iq_matrix = |
(VAIQMatrixBufferMPEG2 *)decode_state->iq_matrix->buffer; |
if (gen_iq_matrix->load_intra_quantiser_matrix == -1 || |
iq_matrix->load_intra_quantiser_matrix) { |
gen_iq_matrix->load_intra_quantiser_matrix = |
iq_matrix->load_intra_quantiser_matrix; |
if (iq_matrix->load_intra_quantiser_matrix) { |
for (j = 0; j < 64; j++) |
gen_iq_matrix->intra_quantiser_matrix[zigzag_direct[j]] = |
iq_matrix->intra_quantiser_matrix[j]; |
} |
} |
if (gen_iq_matrix->load_non_intra_quantiser_matrix == -1 || |
iq_matrix->load_non_intra_quantiser_matrix) { |
gen_iq_matrix->load_non_intra_quantiser_matrix = |
iq_matrix->load_non_intra_quantiser_matrix; |
if (iq_matrix->load_non_intra_quantiser_matrix) { |
for (j = 0; j < 64; j++) |
gen_iq_matrix->non_intra_quantiser_matrix[zigzag_direct[j]] = |
iq_matrix->non_intra_quantiser_matrix[j]; |
} |
} |
} |
/* Commit QM state to HW */ |
for (i = 0; i < 2; i++) { |
unsigned char *qm = NULL; |
int qm_type; |
if (i == 0) { |
if (gen_iq_matrix->load_intra_quantiser_matrix) { |
qm = gen_iq_matrix->intra_quantiser_matrix; |
qm_type = MFX_QM_MPEG_INTRA_QUANTIZER_MATRIX; |
} |
} else { |
if (gen_iq_matrix->load_non_intra_quantiser_matrix) { |
qm = gen_iq_matrix->non_intra_quantiser_matrix; |
qm_type = MFX_QM_MPEG_NON_INTRA_QUANTIZER_MATRIX; |
} |
} |
if (!qm) |
continue; |
gen75_mfd_qm_state(ctx, qm_type, qm, 64, gen7_mfd_context); |
} |
} |
static void |
gen75_mfd_mpeg2_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferMPEG2 *pic_param, |
VASliceParameterBufferMPEG2 *slice_param, |
VASliceParameterBufferMPEG2 *next_slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
unsigned int width_in_mbs = ALIGN(pic_param->horizontal_size, 16) / 16; |
int mb_count, vpos0, hpos0, vpos1, hpos1, is_field_pic_wa, is_field_pic = 0; |
if (pic_param->picture_coding_extension.bits.picture_structure == MPEG_TOP_FIELD || |
pic_param->picture_coding_extension.bits.picture_structure == MPEG_BOTTOM_FIELD) |
is_field_pic = 1; |
is_field_pic_wa = is_field_pic && |
gen7_mfd_context->wa_mpeg2_slice_vertical_position > 0; |
vpos0 = slice_param->slice_vertical_position / (1 + is_field_pic_wa); |
hpos0 = slice_param->slice_horizontal_position; |
if (next_slice_param == NULL) { |
vpos1 = ALIGN(pic_param->vertical_size, 16) / 16 / (1 + is_field_pic); |
hpos1 = 0; |
} else { |
vpos1 = next_slice_param->slice_vertical_position / (1 + is_field_pic_wa); |
hpos1 = next_slice_param->slice_horizontal_position; |
} |
mb_count = (vpos1 * width_in_mbs + hpos1) - (vpos0 * width_in_mbs + hpos0); |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFD_MPEG2_BSD_OBJECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_size - (slice_param->macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_offset + (slice_param->macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
hpos0 << 24 | |
vpos0 << 16 | |
mb_count << 8 | |
(next_slice_param == NULL) << 5 | |
(next_slice_param == NULL) << 3 | |
(slice_param->macroblock_offset & 0x7)); |
OUT_BCS_BATCH(batch, |
(slice_param->quantiser_scale_code << 24) | |
(vpos1 << 8 | hpos1)); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_mpeg2_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferMPEG2 *pic_param; |
VASliceParameterBufferMPEG2 *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
gen75_mfd_mpeg2_decode_init(ctx, decode_state, gen7_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen75_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_MPEG2, gen7_mfd_context); |
gen75_mfd_surface_state(ctx, decode_state, MFX_FORMAT_MPEG2, gen7_mfd_context); |
gen75_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_MPEG2, gen7_mfd_context); |
gen75_mfd_bsp_buf_base_addr_state(ctx, decode_state, MFX_FORMAT_MPEG2, gen7_mfd_context); |
gen75_mfd_mpeg2_pic_state(ctx, decode_state, gen7_mfd_context); |
gen75_mfd_mpeg2_qm_state(ctx, decode_state, gen7_mfd_context); |
if (gen7_mfd_context->wa_mpeg2_slice_vertical_position < 0) |
gen7_mfd_context->wa_mpeg2_slice_vertical_position = |
mpeg2_wa_slice_vertical_position(decode_state, pic_param); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferMPEG2 *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen75_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_MPEG2, gen7_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferMPEG2 *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen75_mfd_mpeg2_bsd_object(ctx, pic_param, slice_param, next_slice_param, gen7_mfd_context); |
slice_param++; |
} |
} |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
static const int va_to_gen7_vc1_pic_type[5] = { |
GEN7_VC1_I_PICTURE, |
GEN7_VC1_P_PICTURE, |
GEN7_VC1_B_PICTURE, |
GEN7_VC1_BI_PICTURE, |
GEN7_VC1_P_PICTURE, |
}; |
static const int va_to_gen7_vc1_mv[4] = { |
1, /* 1-MV */ |
2, /* 1-MV half-pel */ |
3, /* 1-MV half-pef bilinear */ |
0, /* Mixed MV */ |
}; |
static const int b_picture_scale_factor[21] = { |
128, 85, 170, 64, 192, |
51, 102, 153, 204, 43, |
215, 37, 74, 111, 148, |
185, 222, 32, 96, 160, |
224, |
}; |
static const int va_to_gen7_vc1_condover[3] = { |
0, |
2, |
3 |
}; |
static const int va_to_gen7_vc1_profile[4] = { |
GEN7_VC1_SIMPLE_PROFILE, |
GEN7_VC1_MAIN_PROFILE, |
GEN7_VC1_RESERVED_PROFILE, |
GEN7_VC1_ADVANCED_PROFILE |
}; |
static void |
gen75_mfd_free_vc1_surface(void **data) |
{ |
struct gen7_vc1_surface *gen7_vc1_surface = *data; |
if (!gen7_vc1_surface) |
return; |
dri_bo_unreference(gen7_vc1_surface->dmv); |
free(gen7_vc1_surface); |
*data = NULL; |
} |
static void |
gen75_mfd_init_vc1_surface(VADriverContextP ctx, |
VAPictureParameterBufferVC1 *pic_param, |
struct object_surface *obj_surface) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen7_vc1_surface *gen7_vc1_surface = obj_surface->private_data; |
int width_in_mbs = ALIGN(pic_param->coded_width, 16) / 16; |
int height_in_mbs = ALIGN(pic_param->coded_height, 16) / 16; |
obj_surface->free_private_data = gen75_mfd_free_vc1_surface; |
if (!gen7_vc1_surface) { |
gen7_vc1_surface = calloc(sizeof(struct gen7_vc1_surface), 1); |
assert((obj_surface->size & 0x3f) == 0); |
obj_surface->private_data = gen7_vc1_surface; |
} |
gen7_vc1_surface->picture_type = pic_param->picture_fields.bits.picture_type; |
if (gen7_vc1_surface->dmv == NULL) { |
gen7_vc1_surface->dmv = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
width_in_mbs * height_in_mbs * 64, |
0x1000); |
} |
} |
static void |
gen75_mfd_vc1_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAPictureParameterBufferVC1 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
int i; |
dri_bo *bo; |
int width_in_mbs; |
int picture_type; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
width_in_mbs = ALIGN(pic_param->coded_width, 16) / 16; |
picture_type = pic_param->picture_fields.bits.picture_type; |
/* reference picture */ |
obj_surface = SURFACE(pic_param->forward_reference_picture); |
if (obj_surface && obj_surface->bo) |
gen7_mfd_context->reference_surface[0].surface_id = pic_param->forward_reference_picture; |
else |
gen7_mfd_context->reference_surface[0].surface_id = VA_INVALID_ID; |
obj_surface = SURFACE(pic_param->backward_reference_picture); |
if (obj_surface && obj_surface->bo) |
gen7_mfd_context->reference_surface[1].surface_id = pic_param->backward_reference_picture; |
else |
gen7_mfd_context->reference_surface[1].surface_id = pic_param->forward_reference_picture; |
/* must do so !!! */ |
for (i = 2; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) |
gen7_mfd_context->reference_surface[i].surface_id = gen7_mfd_context->reference_surface[i % 2].surface_id; |
/* Current decoded picture */ |
obj_surface = SURFACE(decode_state->current_render_target); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
gen75_mfd_init_vc1_surface(ctx, pic_param, obj_surface); |
dri_bo_unreference(gen7_mfd_context->post_deblocking_output.bo); |
gen7_mfd_context->post_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->post_deblocking_output.bo); |
gen7_mfd_context->post_deblocking_output.valid = pic_param->entrypoint_fields.bits.loopfilter; |
dri_bo_unreference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.valid = !pic_param->entrypoint_fields.bits.loopfilter; |
dri_bo_unreference(gen7_mfd_context->intra_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"intra row store", |
width_in_mbs * 64, |
0x1000); |
assert(bo); |
gen7_mfd_context->intra_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->intra_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"deblocking filter row store", |
width_in_mbs * 7 * 64, |
0x1000); |
assert(bo); |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
width_in_mbs * 96, |
0x1000); |
assert(bo); |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 1; |
gen7_mfd_context->mpr_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->bitplane_read_buffer.valid = !!pic_param->bitplane_present.value; |
dri_bo_unreference(gen7_mfd_context->bitplane_read_buffer.bo); |
if (gen7_mfd_context->bitplane_read_buffer.valid) { |
int width_in_mbs = ALIGN(pic_param->coded_width, 16) / 16; |
int height_in_mbs = ALIGN(pic_param->coded_height, 16) / 16; |
int bitplane_width = ALIGN(width_in_mbs, 2) / 2; |
int src_w, src_h; |
uint8_t *src = NULL, *dst = NULL; |
assert(decode_state->bit_plane->buffer); |
src = decode_state->bit_plane->buffer; |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"VC-1 Bitplane", |
bitplane_width * height_in_mbs, |
0x1000); |
assert(bo); |
gen7_mfd_context->bitplane_read_buffer.bo = bo; |
dri_bo_map(bo, True); |
assert(bo->virtual); |
dst = bo->virtual; |
for (src_h = 0; src_h < height_in_mbs; src_h++) { |
for(src_w = 0; src_w < width_in_mbs; src_w++) { |
int src_index, dst_index; |
int src_shift; |
uint8_t src_value; |
src_index = (src_h * width_in_mbs + src_w) / 2; |
src_shift = !((src_h * width_in_mbs + src_w) & 1) * 4; |
src_value = ((src[src_index] >> src_shift) & 0xf); |
if (picture_type == GEN7_VC1_SKIPPED_PICTURE){ |
src_value |= 0x2; |
} |
dst_index = src_w / 2; |
dst[dst_index] = ((dst[dst_index] >> 4) | (src_value << 4)); |
} |
if (src_w & 1) |
dst[src_w / 2] >>= 4; |
dst += bitplane_width; |
} |
dri_bo_unmap(bo); |
} else |
gen7_mfd_context->bitplane_read_buffer.bo = NULL; |
} |
static void |
gen75_mfd_vc1_pic_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
int alt_pquant_config = 0, alt_pquant_edge_mask = 0, alt_pq; |
int dquant, dquantfrm, dqprofile, dqdbedge, dqsbedge, dqbilevel; |
int unified_mv_mode; |
int ref_field_pic_polarity = 0; |
int scale_factor = 0; |
int trans_ac_y = 0; |
int dmv_surface_valid = 0; |
int brfd = 0; |
int fcm = 0; |
int picture_type; |
int profile; |
int overlap; |
int interpolation_mode = 0; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
profile = va_to_gen7_vc1_profile[pic_param->sequence_fields.bits.profile]; |
dquant = pic_param->pic_quantizer_fields.bits.dquant; |
dquantfrm = pic_param->pic_quantizer_fields.bits.dq_frame; |
dqprofile = pic_param->pic_quantizer_fields.bits.dq_profile; |
dqdbedge = pic_param->pic_quantizer_fields.bits.dq_db_edge; |
dqsbedge = pic_param->pic_quantizer_fields.bits.dq_sb_edge; |
dqbilevel = pic_param->pic_quantizer_fields.bits.dq_binary_level; |
alt_pq = pic_param->pic_quantizer_fields.bits.alt_pic_quantizer; |
if (dquant == 0) { |
alt_pquant_config = 0; |
alt_pquant_edge_mask = 0; |
} else if (dquant == 2) { |
alt_pquant_config = 1; |
alt_pquant_edge_mask = 0xf; |
} else { |
assert(dquant == 1); |
if (dquantfrm == 0) { |
alt_pquant_config = 0; |
alt_pquant_edge_mask = 0; |
alt_pq = 0; |
} else { |
assert(dquantfrm == 1); |
alt_pquant_config = 1; |
switch (dqprofile) { |
case 3: |
if (dqbilevel == 0) { |
alt_pquant_config = 2; |
alt_pquant_edge_mask = 0; |
} else { |
assert(dqbilevel == 1); |
alt_pquant_config = 3; |
alt_pquant_edge_mask = 0; |
} |
break; |
case 0: |
alt_pquant_edge_mask = 0xf; |
break; |
case 1: |
if (dqdbedge == 3) |
alt_pquant_edge_mask = 0x9; |
else |
alt_pquant_edge_mask = (0x3 << dqdbedge); |
break; |
case 2: |
alt_pquant_edge_mask = (0x1 << dqsbedge); |
break; |
default: |
assert(0); |
} |
} |
} |
if (pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation) { |
assert(pic_param->mv_fields.bits.mv_mode2 < 4); |
unified_mv_mode = va_to_gen7_vc1_mv[pic_param->mv_fields.bits.mv_mode2]; |
} else { |
assert(pic_param->mv_fields.bits.mv_mode < 4); |
unified_mv_mode = va_to_gen7_vc1_mv[pic_param->mv_fields.bits.mv_mode]; |
} |
if (pic_param->sequence_fields.bits.interlace == 1 && |
pic_param->picture_fields.bits.frame_coding_mode != 0) { /* frame-interlace or field-interlace */ |
/* FIXME: calculate reference field picture polarity */ |
assert(0); |
ref_field_pic_polarity = 0; |
} |
if (pic_param->b_picture_fraction < 21) |
scale_factor = b_picture_scale_factor[pic_param->b_picture_fraction]; |
picture_type = va_to_gen7_vc1_pic_type[pic_param->picture_fields.bits.picture_type]; |
if (profile == GEN7_VC1_ADVANCED_PROFILE && |
picture_type == GEN7_VC1_I_PICTURE) |
picture_type = GEN7_VC1_BI_PICTURE; |
if (picture_type == GEN7_VC1_I_PICTURE || picture_type == GEN7_VC1_BI_PICTURE) /* I picture */ |
trans_ac_y = pic_param->transform_fields.bits.transform_ac_codingset_idx2; |
else { |
trans_ac_y = pic_param->transform_fields.bits.transform_ac_codingset_idx1; |
/* |
* 8.3.6.2.1 Transform Type Selection |
* If variable-sized transform coding is not enabled, |
* then the 8x8 transform shall be used for all blocks. |
* it is also MFX_VC1_PIC_STATE requirement. |
*/ |
if (pic_param->transform_fields.bits.variable_sized_transform_flag == 0) { |
pic_param->transform_fields.bits.mb_level_transform_type_flag = 1; |
pic_param->transform_fields.bits.frame_level_transform_type = 0; |
} |
} |
if (picture_type == GEN7_VC1_B_PICTURE) { |
struct gen7_vc1_surface *gen7_vc1_surface = NULL; |
obj_surface = SURFACE(pic_param->backward_reference_picture); |
assert(obj_surface); |
gen7_vc1_surface = obj_surface->private_data; |
if (!gen7_vc1_surface || |
(va_to_gen7_vc1_pic_type[gen7_vc1_surface->picture_type] == GEN7_VC1_I_PICTURE || |
va_to_gen7_vc1_pic_type[gen7_vc1_surface->picture_type] == GEN7_VC1_BI_PICTURE)) |
dmv_surface_valid = 0; |
else |
dmv_surface_valid = 1; |
} |
assert(pic_param->picture_fields.bits.frame_coding_mode < 3); |
if (pic_param->picture_fields.bits.frame_coding_mode < 2) |
fcm = pic_param->picture_fields.bits.frame_coding_mode; |
else { |
if (pic_param->picture_fields.bits.top_field_first) |
fcm = 2; |
else |
fcm = 3; |
} |
if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_B_PICTURE) { /* B picture */ |
brfd = pic_param->reference_fields.bits.reference_distance; |
brfd = (scale_factor * brfd) >> 8; |
brfd = pic_param->reference_fields.bits.reference_distance - brfd - 1; |
if (brfd < 0) |
brfd = 0; |
} |
overlap = 0; |
if (profile != GEN7_VC1_ADVANCED_PROFILE){ |
if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 && |
pic_param->picture_fields.bits.picture_type != GEN7_VC1_B_PICTURE) { |
overlap = 1; |
} |
}else { |
if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_P_PICTURE && |
pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){ |
overlap = 1; |
} |
if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_I_PICTURE || |
pic_param->picture_fields.bits.picture_type == GEN7_VC1_BI_PICTURE){ |
if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){ |
overlap = 1; |
} else if (va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 2 || |
va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 3) { |
overlap = 1; |
} |
} |
} |
assert(pic_param->conditional_overlap_flag < 3); |
assert(pic_param->mv_fields.bits.mv_table < 4); /* FIXME: interlace mode */ |
if (pic_param->mv_fields.bits.mv_mode == VAMvMode1MvHalfPelBilinear || |
(pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation && |
pic_param->mv_fields.bits.mv_mode2 == VAMvMode1MvHalfPelBilinear)) |
interpolation_mode = 9; /* Half-pel bilinear */ |
else if (pic_param->mv_fields.bits.mv_mode == VAMvMode1MvHalfPel || |
(pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation && |
pic_param->mv_fields.bits.mv_mode2 == VAMvMode1MvHalfPel)) |
interpolation_mode = 1; /* Half-pel bicubic */ |
else |
interpolation_mode = 0; /* Quarter-pel bicubic */ |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFD_VC1_LONG_PIC_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, |
(((ALIGN(pic_param->coded_height, 16) / 16) - 1) << 16) | |
((ALIGN(pic_param->coded_width, 16) / 16) - 1)); |
OUT_BCS_BATCH(batch, |
((ALIGN(pic_param->coded_width, 16) / 16 + 1) / 2 - 1) << 24 | |
dmv_surface_valid << 15 | |
(pic_param->pic_quantizer_fields.bits.quantizer == 0) << 14 | /* implicit quantizer */ |
pic_param->rounding_control << 13 | |
pic_param->sequence_fields.bits.syncmarker << 12 | |
interpolation_mode << 8 | |
0 << 7 | /* FIXME: scale up or down ??? */ |
pic_param->range_reduction_frame << 6 | |
pic_param->entrypoint_fields.bits.loopfilter << 5 | |
overlap << 4 | |
!pic_param->picture_fields.bits.is_first_field << 3 | |
(pic_param->sequence_fields.bits.profile == 3) << 0); |
OUT_BCS_BATCH(batch, |
va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] << 29 | |
picture_type << 26 | |
fcm << 24 | |
alt_pq << 16 | |
pic_param->pic_quantizer_fields.bits.pic_quantizer_scale << 8 | |
scale_factor << 0); |
OUT_BCS_BATCH(batch, |
unified_mv_mode << 28 | |
pic_param->mv_fields.bits.four_mv_switch << 27 | |
pic_param->fast_uvmc_flag << 26 | |
ref_field_pic_polarity << 25 | |
pic_param->reference_fields.bits.num_reference_pictures << 24 | |
pic_param->reference_fields.bits.reference_distance << 20 | |
pic_param->reference_fields.bits.reference_distance << 16 | /* FIXME: ??? */ |
pic_param->mv_fields.bits.extended_dmv_range << 10 | |
pic_param->mv_fields.bits.extended_mv_range << 8 | |
alt_pquant_edge_mask << 4 | |
alt_pquant_config << 2 | |
pic_param->pic_quantizer_fields.bits.half_qp << 1 | |
pic_param->pic_quantizer_fields.bits.pic_quantizer_type << 0); |
OUT_BCS_BATCH(batch, |
!!pic_param->bitplane_present.value << 31 | |
!pic_param->bitplane_present.flags.bp_forward_mb << 30 | |
!pic_param->bitplane_present.flags.bp_mv_type_mb << 29 | |
!pic_param->bitplane_present.flags.bp_skip_mb << 28 | |
!pic_param->bitplane_present.flags.bp_direct_mb << 27 | |
!pic_param->bitplane_present.flags.bp_overflags << 26 | |
!pic_param->bitplane_present.flags.bp_ac_pred << 25 | |
!pic_param->bitplane_present.flags.bp_field_tx << 24 | |
pic_param->mv_fields.bits.mv_table << 20 | |
pic_param->mv_fields.bits.four_mv_block_pattern_table << 18 | |
pic_param->mv_fields.bits.two_mv_block_pattern_table << 16 | |
pic_param->transform_fields.bits.frame_level_transform_type << 12 | |
pic_param->transform_fields.bits.mb_level_transform_type_flag << 11 | |
pic_param->mb_mode_table << 8 | |
trans_ac_y << 6 | |
pic_param->transform_fields.bits.transform_ac_codingset_idx1 << 4 | |
pic_param->transform_fields.bits.intra_transform_dc_table << 3 | |
pic_param->cbp_table << 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_vc1_pred_pipe_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
int intensitycomp_single; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
intensitycomp_single = (pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation); |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_VC1_PRED_PIPE_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, |
0 << 14 | /* FIXME: double ??? */ |
0 << 12 | |
intensitycomp_single << 10 | |
intensitycomp_single << 8 | |
0 << 4 | /* FIXME: interlace mode */ |
0); |
OUT_BCS_BATCH(batch, |
pic_param->luma_shift << 16 | |
pic_param->luma_scale << 0); /* FIXME: Luma Scaling */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_vc1_directmode_state_bplus(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
dri_bo *dmv_read_buffer = NULL, *dmv_write_buffer = NULL; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
obj_surface = SURFACE(decode_state->current_render_target); |
if (obj_surface && obj_surface->private_data) { |
dmv_write_buffer = ((struct gen7_vc1_surface *)(obj_surface->private_data))->dmv; |
} |
obj_surface = SURFACE(pic_param->backward_reference_picture); |
if (obj_surface && obj_surface->private_data) { |
dmv_read_buffer = ((struct gen7_vc1_surface *)(obj_surface->private_data))->dmv; |
} |
BEGIN_BCS_BATCH(batch, 7); |
OUT_BCS_BATCH(batch, MFX_VC1_DIRECTMODE_STATE | (7 - 2)); |
if (dmv_write_buffer) |
OUT_BCS_RELOC(batch, dmv_write_buffer, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
if (dmv_read_buffer) |
OUT_BCS_RELOC(batch, dmv_read_buffer, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_vc1_directmode_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
dri_bo *dmv_read_buffer = NULL, *dmv_write_buffer = NULL; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_mfd_vc1_directmode_state_bplus(ctx, decode_state, gen7_mfd_context); |
return; |
} |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
obj_surface = SURFACE(decode_state->current_render_target); |
if (obj_surface && obj_surface->private_data) { |
dmv_write_buffer = ((struct gen7_vc1_surface *)(obj_surface->private_data))->dmv; |
} |
obj_surface = SURFACE(pic_param->backward_reference_picture); |
if (obj_surface && obj_surface->private_data) { |
dmv_read_buffer = ((struct gen7_vc1_surface *)(obj_surface->private_data))->dmv; |
} |
BEGIN_BCS_BATCH(batch, 3); |
OUT_BCS_BATCH(batch, MFX_VC1_DIRECTMODE_STATE | (3 - 2)); |
if (dmv_write_buffer) |
OUT_BCS_RELOC(batch, dmv_write_buffer, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (dmv_read_buffer) |
OUT_BCS_RELOC(batch, dmv_read_buffer, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static int |
gen75_mfd_vc1_get_macroblock_bit_offset(uint8_t *buf, int in_slice_data_bit_offset, int profile) |
{ |
int out_slice_data_bit_offset; |
int slice_header_size = in_slice_data_bit_offset / 8; |
int i, j; |
if (profile != 3) |
out_slice_data_bit_offset = in_slice_data_bit_offset; |
else { |
for (i = 0, j = 0; i < slice_header_size; i++, j++) { |
if (!buf[j] && !buf[j + 1] && buf[j + 2] == 3 && buf[j + 3] < 4) { |
i++, j += 2; |
} |
} |
out_slice_data_bit_offset = 8 * j + in_slice_data_bit_offset % 8; |
} |
return out_slice_data_bit_offset; |
} |
static void |
gen75_mfd_vc1_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferVC1 *pic_param, |
VASliceParameterBufferVC1 *slice_param, |
VASliceParameterBufferVC1 *next_slice_param, |
dri_bo *slice_data_bo, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int next_slice_start_vert_pos; |
int macroblock_offset; |
uint8_t *slice_data = NULL; |
dri_bo_map(slice_data_bo, 0); |
slice_data = (uint8_t *)(slice_data_bo->virtual + slice_param->slice_data_offset); |
macroblock_offset = gen75_mfd_vc1_get_macroblock_bit_offset(slice_data, |
slice_param->macroblock_offset, |
pic_param->sequence_fields.bits.profile); |
dri_bo_unmap(slice_data_bo); |
if (next_slice_param) |
next_slice_start_vert_pos = next_slice_param->slice_vertical_position; |
else |
next_slice_start_vert_pos = ALIGN(pic_param->coded_height, 16) / 16; |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFD_VC1_BSD_OBJECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_size - (macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_offset + (macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_vertical_position << 16 | |
next_slice_start_vert_pos << 0); |
OUT_BCS_BATCH(batch, |
(macroblock_offset & 0x7)); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_vc1_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
VASliceParameterBufferVC1 *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
gen75_mfd_vc1_decode_init(ctx, decode_state, gen7_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen75_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_VC1, gen7_mfd_context); |
gen75_mfd_surface_state(ctx, decode_state, MFX_FORMAT_VC1, gen7_mfd_context); |
gen75_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_VC1, gen7_mfd_context); |
gen75_mfd_bsp_buf_base_addr_state(ctx, decode_state, MFX_FORMAT_VC1, gen7_mfd_context); |
gen75_mfd_vc1_pic_state(ctx, decode_state, gen7_mfd_context); |
gen75_mfd_vc1_pred_pipe_state(ctx, decode_state, gen7_mfd_context); |
gen75_mfd_vc1_directmode_state(ctx, decode_state, gen7_mfd_context); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferVC1 *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen75_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_VC1, gen7_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferVC1 *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen75_mfd_vc1_bsd_object(ctx, pic_param, slice_param, next_slice_param, slice_data_bo, gen7_mfd_context); |
slice_param++; |
} |
} |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
static void |
gen75_mfd_jpeg_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
VAPictureParameterBufferJPEGBaseline *pic_param; |
int subsampling = SUBSAMPLE_YUV420; |
pic_param = (VAPictureParameterBufferJPEGBaseline *)decode_state->pic_param->buffer; |
if (pic_param->num_components == 1) |
subsampling = SUBSAMPLE_YUV400; |
else if (pic_param->num_components == 3) { |
int h1 = pic_param->components[0].h_sampling_factor; |
int h2 = pic_param->components[1].h_sampling_factor; |
int h3 = pic_param->components[2].h_sampling_factor; |
int v1 = pic_param->components[0].v_sampling_factor; |
int v2 = pic_param->components[1].v_sampling_factor; |
int v3 = pic_param->components[2].v_sampling_factor; |
if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV420; |
else if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV422H; |
else if (h1 == 1 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV444; |
else if (h1 == 4 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV411; |
else if (h1 == 1 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV422V; |
else if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 2 && v3 == 2) |
subsampling = SUBSAMPLE_YUV422H; |
else if (h2 == 2 && h2 == 2 && h3 == 2 && |
v1 == 2 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV422V; |
else |
assert(0); |
} else { |
assert(0); |
} |
/* Current decoded picture */ |
obj_surface = SURFACE(decode_state->current_render_target); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('I','M','C','1'), subsampling); |
dri_bo_unreference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.valid = 1; |
gen7_mfd_context->post_deblocking_output.bo = NULL; |
gen7_mfd_context->post_deblocking_output.valid = 0; |
gen7_mfd_context->intra_row_store_scratch_buffer.bo = NULL; |
gen7_mfd_context->intra_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = NULL; |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = NULL; |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->mpr_row_store_scratch_buffer.bo = NULL; |
gen7_mfd_context->mpr_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->bitplane_read_buffer.bo = NULL; |
gen7_mfd_context->bitplane_read_buffer.valid = 0; |
} |
static const int va_to_gen7_jpeg_rotation[4] = { |
GEN7_JPEG_ROTATION_0, |
GEN7_JPEG_ROTATION_90, |
GEN7_JPEG_ROTATION_180, |
GEN7_JPEG_ROTATION_270 |
}; |
static void |
gen75_mfd_jpeg_pic_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferJPEGBaseline *pic_param; |
int chroma_type = GEN7_YUV420; |
int frame_width_in_blks; |
int frame_height_in_blks; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferJPEGBaseline *)decode_state->pic_param->buffer; |
if (pic_param->num_components == 1) |
chroma_type = GEN7_YUV400; |
else if (pic_param->num_components == 3) { |
int h1 = pic_param->components[0].h_sampling_factor; |
int h2 = pic_param->components[1].h_sampling_factor; |
int h3 = pic_param->components[2].h_sampling_factor; |
int v1 = pic_param->components[0].v_sampling_factor; |
int v2 = pic_param->components[1].v_sampling_factor; |
int v3 = pic_param->components[2].v_sampling_factor; |
if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV420; |
else if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV422H_2Y; |
else if (h1 == 1 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV444; |
else if (h1 == 4 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV411; |
else if (h1 == 1 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV422V_2Y; |
else if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 2 && v3 == 2) |
chroma_type = GEN7_YUV422H_4Y; |
else if (h2 == 2 && h2 == 2 && h3 == 2 && |
v1 == 2 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV422V_4Y; |
else |
assert(0); |
} |
if (chroma_type == GEN7_YUV400 || |
chroma_type == GEN7_YUV444 || |
chroma_type == GEN7_YUV422V_2Y) { |
frame_width_in_blks = ((pic_param->picture_width + 7) / 8); |
frame_height_in_blks = ((pic_param->picture_height + 7) / 8); |
} else if (chroma_type == GEN7_YUV411) { |
frame_width_in_blks = ((pic_param->picture_width + 31) / 32) * 4; |
frame_height_in_blks = ((pic_param->picture_height + 31) / 32) * 4; |
} else { |
frame_width_in_blks = ((pic_param->picture_width + 15) / 16) * 2; |
frame_height_in_blks = ((pic_param->picture_height + 15) / 16) * 2; |
} |
BEGIN_BCS_BATCH(batch, 3); |
OUT_BCS_BATCH(batch, MFX_JPEG_PIC_STATE | (3 - 2)); |
OUT_BCS_BATCH(batch, |
(va_to_gen7_jpeg_rotation[0] << 4) | /* without rotation */ |
(chroma_type << 0)); |
OUT_BCS_BATCH(batch, |
((frame_height_in_blks - 1) << 16) | /* FrameHeightInBlks */ |
((frame_width_in_blks - 1) << 0)); /* FrameWidthInBlks */ |
ADVANCE_BCS_BATCH(batch); |
} |
static const int va_to_gen7_jpeg_hufftable[2] = { |
MFX_HUFFTABLE_ID_Y, |
MFX_HUFFTABLE_ID_UV |
}; |
static void |
gen75_mfd_jpeg_huff_table_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context, |
int num_tables) |
{ |
VAHuffmanTableBufferJPEGBaseline *huffman_table; |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int index; |
if (!decode_state->huffman_table || !decode_state->huffman_table->buffer) |
return; |
huffman_table = (VAHuffmanTableBufferJPEGBaseline *)decode_state->huffman_table->buffer; |
for (index = 0; index < num_tables; index++) { |
int id = va_to_gen7_jpeg_hufftable[index]; |
BEGIN_BCS_BATCH(batch, 53); |
OUT_BCS_BATCH(batch, MFX_JPEG_HUFF_TABLE_STATE | (53 - 2)); |
OUT_BCS_BATCH(batch, id); |
intel_batchbuffer_data(batch, huffman_table->huffman_table[index].num_dc_codes, 12); |
intel_batchbuffer_data(batch, huffman_table->huffman_table[index].dc_values, 12); |
intel_batchbuffer_data(batch, huffman_table->huffman_table[index].num_ac_codes, 16); |
intel_batchbuffer_data(batch, huffman_table->huffman_table[index].ac_values, 164); |
ADVANCE_BCS_BATCH(batch); |
} |
} |
static const int va_to_gen7_jpeg_qm[5] = { |
-1, |
MFX_QM_JPEG_LUMA_Y_QUANTIZER_MATRIX, |
MFX_QM_JPEG_CHROMA_CB_QUANTIZER_MATRIX, |
MFX_QM_JPEG_CHROMA_CR_QUANTIZER_MATRIX, |
MFX_QM_JPEG_ALPHA_QUANTIZER_MATRIX |
}; |
static void |
gen75_mfd_jpeg_qm_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAPictureParameterBufferJPEGBaseline *pic_param; |
VAIQMatrixBufferJPEGBaseline *iq_matrix; |
int index; |
if (!decode_state->iq_matrix || !decode_state->iq_matrix->buffer) |
return; |
iq_matrix = (VAIQMatrixBufferJPEGBaseline *)decode_state->iq_matrix->buffer; |
pic_param = (VAPictureParameterBufferJPEGBaseline *)decode_state->pic_param->buffer; |
assert(pic_param->num_components <= 3); |
for (index = 0; index < pic_param->num_components; index++) { |
int qm_type = va_to_gen7_jpeg_qm[pic_param->components[index].component_id - pic_param->components[0].component_id + 1]; |
unsigned char *qm = iq_matrix->quantiser_table[pic_param->components[index].quantiser_table_selector]; |
unsigned char raster_qm[64]; |
int j; |
if (!iq_matrix->load_quantiser_table[pic_param->components[index].quantiser_table_selector]) |
continue; |
for (j = 0; j < 64; j++) |
raster_qm[zigzag_direct[j]] = qm[j]; |
gen75_mfd_qm_state(ctx, qm_type, raster_qm, 64, gen7_mfd_context); |
} |
} |
static void |
gen75_mfd_jpeg_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferJPEGBaseline *pic_param, |
VASliceParameterBufferJPEGBaseline *slice_param, |
VASliceParameterBufferJPEGBaseline *next_slice_param, |
dri_bo *slice_data_bo, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int scan_component_mask = 0; |
int i; |
assert(slice_param->num_components > 0); |
assert(slice_param->num_components < 4); |
assert(slice_param->num_components <= pic_param->num_components); |
for (i = 0; i < slice_param->num_components; i++) { |
switch (slice_param->components[i].component_selector - pic_param->components[0].component_id + 1) { |
case 1: |
scan_component_mask |= (1 << 0); |
break; |
case 2: |
scan_component_mask |= (1 << 1); |
break; |
case 3: |
scan_component_mask |= (1 << 2); |
break; |
default: |
assert(0); |
break; |
} |
} |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFD_JPEG_BSD_OBJECT | (6 - 2)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_size); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_offset); |
OUT_BCS_BATCH(batch, |
slice_param->slice_horizontal_position << 16 | |
slice_param->slice_vertical_position << 0); |
OUT_BCS_BATCH(batch, |
((slice_param->num_components != 1) << 30) | /* interleaved */ |
(scan_component_mask << 27) | /* scan components */ |
(0 << 26) | /* disable interrupt allowed */ |
(slice_param->num_mcus << 0)); /* MCU count */ |
OUT_BCS_BATCH(batch, |
(slice_param->restart_interval << 0)); /* RestartInterval */ |
ADVANCE_BCS_BATCH(batch); |
} |
/* Workaround for JPEG decoding on Ivybridge */ |
VAStatus |
i965_DestroySurfaces(VADriverContextP ctx, |
VASurfaceID *surface_list, |
int num_surfaces); |
VAStatus |
i965_CreateSurfaces(VADriverContextP ctx, |
int width, |
int height, |
int format, |
int num_surfaces, |
VASurfaceID *surfaces); |
static struct { |
int width; |
int height; |
unsigned char data[32]; |
int data_size; |
int data_bit_offset; |
int qp; |
} gen7_jpeg_wa_clip = { |
16, |
16, |
{ |
0x65, 0xb8, 0x40, 0x32, 0x13, 0xfd, 0x06, 0x6c, |
0xfc, 0x0a, 0x50, 0x71, 0x5c, 0x00 |
}, |
14, |
40, |
28, |
}; |
static void |
gen75_jpeg_wa_init(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
VAStatus status; |
struct object_surface *obj_surface; |
if (gen7_mfd_context->jpeg_wa_surface_id != VA_INVALID_SURFACE) |
i965_DestroySurfaces(ctx, |
&gen7_mfd_context->jpeg_wa_surface_id, |
1); |
status = i965_CreateSurfaces(ctx, |
gen7_jpeg_wa_clip.width, |
gen7_jpeg_wa_clip.height, |
VA_RT_FORMAT_YUV420, |
1, |
&gen7_mfd_context->jpeg_wa_surface_id); |
assert(status == VA_STATUS_SUCCESS); |
obj_surface = SURFACE(gen7_mfd_context->jpeg_wa_surface_id); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N', 'V', '1', '2'), SUBSAMPLE_YUV420); |
if (!gen7_mfd_context->jpeg_wa_slice_data_bo) { |
gen7_mfd_context->jpeg_wa_slice_data_bo = dri_bo_alloc(i965->intel.bufmgr, |
"JPEG WA data", |
0x1000, |
0x1000); |
dri_bo_subdata(gen7_mfd_context->jpeg_wa_slice_data_bo, |
0, |
gen7_jpeg_wa_clip.data_size, |
gen7_jpeg_wa_clip.data); |
} |
} |
static void |
gen75_jpeg_wa_pipe_mode_select(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFX_PIPE_MODE_SELECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
(MFX_LONG_MODE << 17) | /* Currently only support long format */ |
(MFD_MODE_VLD << 15) | /* VLD mode */ |
(0 << 10) | /* disable Stream-Out */ |
(0 << 9) | /* Post Deblocking Output */ |
(1 << 8) | /* Pre Deblocking Output */ |
(0 << 5) | /* not in stitch mode */ |
(MFX_CODEC_DECODE << 4) | /* decoding mode */ |
(MFX_FORMAT_AVC << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 4) | /* terminate if AVC motion and POC table error occurs */ |
(0 << 3) | /* terminate if AVC mbdata error occurs */ |
(0 << 2) | /* terminate if AVC CABAC/CAVLC decode error occurs */ |
(0 << 1) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, 0); /* pic status/error report id */ |
OUT_BCS_BATCH(batch, 0); /* reserved */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_jpeg_wa_surface_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(gen7_mfd_context->jpeg_wa_surface_id); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_SURFACE_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
((obj_surface->orig_width - 1) << 18) | |
((obj_surface->orig_height - 1) << 4)); |
OUT_BCS_BATCH(batch, |
(MFX_SURFACE_PLANAR_420_8 << 28) | /* 420 planar YUV surface */ |
(1 << 27) | /* interleave chroma, set to 0 for JPEG */ |
(0 << 22) | /* surface object control state, ignored */ |
((obj_surface->width - 1) << 3) | /* pitch */ |
(0 << 2) | /* must be 0 */ |
(1 << 1) | /* must be tiled */ |
(I965_TILEWALK_YMAJOR << 0)); /* tile walk, must be 1 */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* X offset for U(Cb), must be 0 */ |
(obj_surface->y_cb_offset << 0)); /* Y offset for U(Cb) */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* X offset for V(Cr), must be 0 */ |
(0 << 0)); /* Y offset for V(Cr), must be 0 for video codec, non-zoro for JPEG */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_jpeg_wa_pipe_buf_addr_state_bplus(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(gen7_mfd_context->jpeg_wa_surface_id); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
dri_bo *intra_bo; |
int i; |
intra_bo = dri_bo_alloc(i965->intel.bufmgr, |
"intra row store", |
128 * 64, |
0x1000); |
BEGIN_BCS_BATCH(batch, 61); |
OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (61 - 2)); |
OUT_BCS_RELOC(batch, |
obj_surface->bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* post deblocking */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* uncompressed-video & stream out 7-12 */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW 13-15 is for intra row store scratch */ |
OUT_BCS_RELOC(batch, |
intra_bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW 16-18 is for deblocking filter */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* DW 19..50 */ |
for (i = 0; i < MAX_GEN_REFERENCE_FRAMES; i++) { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
OUT_BCS_BATCH(batch, 0); |
/* the DW52-54 is for mb status address */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* the DW56-60 is for ILDB & second ILDB address */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
dri_bo_unreference(intra_bo); |
} |
static void |
gen75_jpeg_wa_pipe_buf_addr_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(gen7_mfd_context->jpeg_wa_surface_id); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
dri_bo *intra_bo; |
int i; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_jpeg_wa_pipe_buf_addr_state_bplus(ctx, gen7_mfd_context); |
return; |
} |
intra_bo = dri_bo_alloc(i965->intel.bufmgr, |
"intra row store", |
128 * 64, |
0x1000); |
BEGIN_BCS_BATCH(batch, 25); |
OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (25 - 2)); |
OUT_BCS_RELOC(batch, |
obj_surface->bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); /* post deblocking */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_RELOC(batch, |
intra_bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
/* DW 7..22 */ |
for (i = 0; i < MAX_GEN_REFERENCE_FRAMES; i++) { |
OUT_BCS_BATCH(batch, 0); |
} |
OUT_BCS_BATCH(batch, 0); /* ignore DW23 for decoding */ |
OUT_BCS_BATCH(batch, 0); /* ignore DW24 for decoding */ |
ADVANCE_BCS_BATCH(batch); |
dri_bo_unreference(intra_bo); |
} |
static void |
gen75_jpeg_wa_bsp_buf_base_addr_state_bplus(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
dri_bo *bsd_mpc_bo, *mpr_bo; |
bsd_mpc_bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
11520, /* 1.5 * 120 * 64 */ |
0x1000); |
mpr_bo = dri_bo_alloc(i965->intel.bufmgr, |
"mpr row store", |
7680, /* 1. 0 * 120 * 64 */ |
0x1000); |
BEGIN_BCS_BATCH(batch, 10); |
OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (10 - 2)); |
OUT_BCS_RELOC(batch, |
bsd_mpc_bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_RELOC(batch, |
mpr_bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
dri_bo_unreference(bsd_mpc_bo); |
dri_bo_unreference(mpr_bo); |
} |
static void |
gen75_jpeg_wa_bsp_buf_base_addr_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
dri_bo *bsd_mpc_bo, *mpr_bo; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_jpeg_wa_bsp_buf_base_addr_state_bplus(ctx, gen7_mfd_context); |
return; |
} |
bsd_mpc_bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
11520, /* 1.5 * 120 * 64 */ |
0x1000); |
mpr_bo = dri_bo_alloc(i965->intel.bufmgr, |
"mpr row store", |
7680, /* 1. 0 * 120 * 64 */ |
0x1000); |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (4 - 2)); |
OUT_BCS_RELOC(batch, |
bsd_mpc_bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_RELOC(batch, |
mpr_bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
dri_bo_unreference(bsd_mpc_bo); |
dri_bo_unreference(mpr_bo); |
} |
static void |
gen75_jpeg_wa_avc_qm_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
} |
static void |
gen75_jpeg_wa_avc_img_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int img_struct = 0; |
int mbaff_frame_flag = 0; |
unsigned int width_in_mbs = 1, height_in_mbs = 1; |
BEGIN_BCS_BATCH(batch, 16); |
OUT_BCS_BATCH(batch, MFX_AVC_IMG_STATE | (16 - 2)); |
OUT_BCS_BATCH(batch, |
width_in_mbs * height_in_mbs); |
OUT_BCS_BATCH(batch, |
((height_in_mbs - 1) << 16) | |
((width_in_mbs - 1) << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 24) | |
(0 << 16) | |
(0 << 14) | |
(0 << 13) | |
(0 << 12) | /* differ from GEN6 */ |
(0 << 10) | |
(img_struct << 8)); |
OUT_BCS_BATCH(batch, |
(1 << 10) | /* 4:2:0 */ |
(1 << 7) | /* CABAC */ |
(0 << 6) | |
(0 << 5) | |
(0 << 4) | |
(0 << 3) | |
(1 << 2) | |
(mbaff_frame_flag << 1) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_jpeg_wa_avc_directmode_state_bplus(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int i; |
BEGIN_BCS_BATCH(batch, 71); |
OUT_BCS_BATCH(batch, MFX_AVC_DIRECTMODE_STATE | (71 - 2)); |
/* reference surfaces 0..15 */ |
for (i = 0; i < MAX_GEN_REFERENCE_FRAMES; i++) { |
OUT_BCS_BATCH(batch, 0); /* top */ |
OUT_BCS_BATCH(batch, 0); /* bottom */ |
} |
OUT_BCS_BATCH(batch, 0); |
/* the current decoding frame/field */ |
OUT_BCS_BATCH(batch, 0); /* top */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* POC List */ |
for (i = 0; i < MAX_GEN_REFERENCE_FRAMES; i++) { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_jpeg_wa_avc_directmode_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int i; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_jpeg_wa_avc_directmode_state_bplus(ctx, gen7_mfd_context); |
return; |
} |
BEGIN_BCS_BATCH(batch, 69); |
OUT_BCS_BATCH(batch, MFX_AVC_DIRECTMODE_STATE | (69 - 2)); |
/* reference surfaces 0..15 */ |
for (i = 0; i < MAX_GEN_REFERENCE_FRAMES; i++) { |
OUT_BCS_BATCH(batch, 0); /* top */ |
OUT_BCS_BATCH(batch, 0); /* bottom */ |
} |
/* the current decoding frame/field */ |
OUT_BCS_BATCH(batch, 0); /* top */ |
OUT_BCS_BATCH(batch, 0); /* bottom */ |
/* POC List */ |
for (i = 0; i < MAX_GEN_REFERENCE_FRAMES; i++) { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_jpeg_wa_ind_obj_base_addr_state_bplus(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 26); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (26 - 2)); |
OUT_BCS_RELOC(batch, |
gen7_mfd_context->jpeg_wa_slice_data_bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0x80000000); /* must set, up to 2G */ |
OUT_BCS_BATCH(batch, 0); |
/* MFX indirect MV 6-10 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* MFX IT_COFF 11-15 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* MFX IT_DBLK 16-20 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
/* MFX PAK_BSE object for encoder 21-25 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_jpeg_wa_ind_obj_base_addr_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
if (IS_STEPPING_BPLUS(i965)) { |
gen75_jpeg_wa_ind_obj_base_addr_state_bplus(ctx, gen7_mfd_context); |
return; |
} |
BEGIN_BCS_BATCH(batch, 11); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (11 - 2)); |
OUT_BCS_RELOC(batch, |
gen7_mfd_context->jpeg_wa_slice_data_bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BCS_BATCH(batch, 0x80000000); /* must set, up to 2G */ |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_jpeg_wa_avc_bsd_object(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
/* the input bitsteam format on GEN7 differs from GEN6 */ |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFD_AVC_BSD_OBJECT | (6 - 2)); |
OUT_BCS_BATCH(batch, gen7_jpeg_wa_clip.data_size); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
(0 << 31) | |
(0 << 14) | |
(0 << 12) | |
(0 << 10) | |
(0 << 8)); |
OUT_BCS_BATCH(batch, |
((gen7_jpeg_wa_clip.data_bit_offset >> 3) << 16) | |
(0 << 5) | |
(0 << 4) | |
(1 << 3) | /* LastSlice Flag */ |
(gen7_jpeg_wa_clip.data_bit_offset & 0x7)); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_jpeg_wa_avc_slice_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int slice_hor_pos = 0, slice_ver_pos = 0, next_slice_hor_pos = 0, next_slice_ver_pos = 1; |
int num_ref_idx_l0 = 0, num_ref_idx_l1 = 0; |
int first_mb_in_slice = 0; |
int slice_type = SLICE_TYPE_I; |
BEGIN_BCS_BATCH(batch, 11); |
OUT_BCS_BATCH(batch, MFX_AVC_SLICE_STATE | (11 - 2)); |
OUT_BCS_BATCH(batch, slice_type); |
OUT_BCS_BATCH(batch, |
(num_ref_idx_l1 << 24) | |
(num_ref_idx_l0 << 16) | |
(0 << 8) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 29) | |
(1 << 27) | /* disable Deblocking */ |
(0 << 24) | |
(gen7_jpeg_wa_clip.qp << 16) | |
(0 << 8) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, |
(slice_ver_pos << 24) | |
(slice_hor_pos << 16) | |
(first_mb_in_slice << 0)); |
OUT_BCS_BATCH(batch, |
(next_slice_ver_pos << 16) | |
(next_slice_hor_pos << 0)); |
OUT_BCS_BATCH(batch, (1 << 19)); /* last slice flag */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen75_mfd_jpeg_wa(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
gen75_jpeg_wa_init(ctx, gen7_mfd_context); |
intel_batchbuffer_emit_mi_flush(batch); |
gen75_jpeg_wa_pipe_mode_select(ctx, gen7_mfd_context); |
gen75_jpeg_wa_surface_state(ctx, gen7_mfd_context); |
gen75_jpeg_wa_pipe_buf_addr_state(ctx, gen7_mfd_context); |
gen75_jpeg_wa_bsp_buf_base_addr_state(ctx, gen7_mfd_context); |
gen75_jpeg_wa_avc_qm_state(ctx, gen7_mfd_context); |
gen75_jpeg_wa_avc_img_state(ctx, gen7_mfd_context); |
gen75_jpeg_wa_ind_obj_base_addr_state(ctx, gen7_mfd_context); |
gen75_jpeg_wa_avc_directmode_state(ctx, gen7_mfd_context); |
gen75_jpeg_wa_avc_slice_state(ctx, gen7_mfd_context); |
gen75_jpeg_wa_avc_bsd_object(ctx, gen7_mfd_context); |
} |
void |
gen75_mfd_jpeg_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferJPEGBaseline *pic_param; |
VASliceParameterBufferJPEGBaseline *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j, max_selector = 0; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferJPEGBaseline *)decode_state->pic_param->buffer; |
/* Currently only support Baseline DCT */ |
gen75_mfd_jpeg_decode_init(ctx, decode_state, gen7_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
gen75_mfd_jpeg_wa(ctx, gen7_mfd_context); |
intel_batchbuffer_emit_mi_flush(batch); |
gen75_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_JPEG, gen7_mfd_context); |
gen75_mfd_surface_state(ctx, decode_state, MFX_FORMAT_JPEG, gen7_mfd_context); |
gen75_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_JPEG, gen7_mfd_context); |
gen75_mfd_jpeg_pic_state(ctx, decode_state, gen7_mfd_context); |
gen75_mfd_jpeg_qm_state(ctx, decode_state, gen7_mfd_context); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferJPEGBaseline *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen75_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_JPEG, gen7_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferJPEGBaseline *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
int component; |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
for (component = 0; component < slice_param->num_components; component++) { |
if (max_selector < slice_param->components[component].dc_table_selector) |
max_selector = slice_param->components[component].dc_table_selector; |
if (max_selector < slice_param->components[component].ac_table_selector) |
max_selector = slice_param->components[component].ac_table_selector; |
} |
slice_param++; |
} |
} |
assert(max_selector < 2); |
gen75_mfd_jpeg_huff_table_state(ctx, decode_state, gen7_mfd_context, max_selector + 1); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferJPEGBaseline *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen75_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_JPEG, gen7_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferJPEGBaseline *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen75_mfd_jpeg_bsd_object(ctx, pic_param, slice_param, next_slice_param, slice_data_bo, gen7_mfd_context); |
slice_param++; |
} |
} |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
static void |
gen75_mfd_decode_picture(VADriverContextP ctx, |
VAProfile profile, |
union codec_state *codec_state, |
struct hw_context *hw_context) |
{ |
struct gen7_mfd_context *gen7_mfd_context = (struct gen7_mfd_context *)hw_context; |
struct decode_state *decode_state = &codec_state->decode; |
assert(gen7_mfd_context); |
gen7_mfd_context->wa_mpeg2_slice_vertical_position = -1; |
switch (profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
gen75_mfd_mpeg2_decode_picture(ctx, decode_state, gen7_mfd_context); |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
gen75_mfd_avc_decode_picture(ctx, decode_state, gen7_mfd_context); |
break; |
case VAProfileVC1Simple: |
case VAProfileVC1Main: |
case VAProfileVC1Advanced: |
gen75_mfd_vc1_decode_picture(ctx, decode_state, gen7_mfd_context); |
break; |
case VAProfileJPEGBaseline: |
gen75_mfd_jpeg_decode_picture(ctx, decode_state, gen7_mfd_context); |
break; |
default: |
assert(0); |
break; |
} |
} |
static void |
gen75_mfd_context_destroy(void *hw_context) |
{ |
struct gen7_mfd_context *gen7_mfd_context = (struct gen7_mfd_context *)hw_context; |
dri_bo_unreference(gen7_mfd_context->post_deblocking_output.bo); |
gen7_mfd_context->post_deblocking_output.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->intra_row_store_scratch_buffer.bo); |
gen7_mfd_context->intra_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->mpr_row_store_scratch_buffer.bo); |
gen7_mfd_context->mpr_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->bitplane_read_buffer.bo); |
gen7_mfd_context->bitplane_read_buffer.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->jpeg_wa_slice_data_bo); |
intel_batchbuffer_free(gen7_mfd_context->base.batch); |
free(gen7_mfd_context); |
} |
static void gen75_mfd_mpeg2_context_init(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
gen7_mfd_context->iq_matrix.mpeg2.load_intra_quantiser_matrix = -1; |
gen7_mfd_context->iq_matrix.mpeg2.load_non_intra_quantiser_matrix = -1; |
gen7_mfd_context->iq_matrix.mpeg2.load_chroma_intra_quantiser_matrix = -1; |
gen7_mfd_context->iq_matrix.mpeg2.load_chroma_non_intra_quantiser_matrix = -1; |
} |
struct hw_context * |
gen75_dec_hw_context_init(VADriverContextP ctx, VAProfile profile) |
{ |
struct intel_driver_data *intel = intel_driver_data(ctx); |
struct gen7_mfd_context *gen7_mfd_context = calloc(1, sizeof(struct gen7_mfd_context)); |
int i; |
gen7_mfd_context->base.destroy = gen75_mfd_context_destroy; |
gen7_mfd_context->base.run = gen75_mfd_decode_picture; |
gen7_mfd_context->base.batch = intel_batchbuffer_new(intel, I915_EXEC_RENDER, 0); |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
gen7_mfd_context->reference_surface[i].surface_id = VA_INVALID_ID; |
gen7_mfd_context->reference_surface[i].frame_store_id = -1; |
} |
gen7_mfd_context->jpeg_wa_surface_id = VA_INVALID_SURFACE; |
switch (profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
gen75_mfd_mpeg2_context_init(ctx, gen7_mfd_context); |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
gen75_mfd_avc_context_init(ctx, gen7_mfd_context); |
break; |
default: |
break; |
} |
return (struct hw_context *)gen7_mfd_context; |
} |
/drivers/video/i965/gen75_vme.c |
---|
0,0 → 1,811 |
/* |
* Copyright © 2010-2011 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Zhao Yakui <yakui.zhao@intel.com> |
* Xiang HaiHao <haihao.xiang@intel.com> |
* |
*/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "gen6_vme.h" |
#include "i965_encoder.h" |
#define SURFACE_STATE_PADDED_SIZE_0_GEN7 ALIGN(sizeof(struct gen7_surface_state), 32) |
#define SURFACE_STATE_PADDED_SIZE_1_GEN7 ALIGN(sizeof(struct gen7_surface_state2), 32) |
#define SURFACE_STATE_PADDED_SIZE_GEN7 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN7, SURFACE_STATE_PADDED_SIZE_1_GEN7) |
#define SURFACE_STATE_PADDED_SIZE_0_GEN6 ALIGN(sizeof(struct i965_surface_state), 32) |
#define SURFACE_STATE_PADDED_SIZE_1_GEN6 ALIGN(sizeof(struct i965_surface_state2), 32) |
#define SURFACE_STATE_PADDED_SIZE_GEN6 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN6, SURFACE_STATE_PADDED_SIZE_1_GEN7) |
#define SURFACE_STATE_PADDED_SIZE MAX(SURFACE_STATE_PADDED_SIZE_GEN6, SURFACE_STATE_PADDED_SIZE_GEN7) |
#define SURFACE_STATE_OFFSET(index) (SURFACE_STATE_PADDED_SIZE * index) |
#define BINDING_TABLE_OFFSET SURFACE_STATE_OFFSET(MAX_MEDIA_SURFACES_GEN6) |
#define VME_INTRA_SHADER 0 |
#define VME_INTER_SHADER 1 |
#define CURBE_ALLOCATION_SIZE 37 /* in 256-bit */ |
#define CURBE_TOTAL_DATA_LENGTH (4 * 32) /* in byte, it should be less than or equal to CURBE_ALLOCATION_SIZE * 32 */ |
#define CURBE_URB_ENTRY_LENGTH 4 /* in 256-bit, it should be less than or equal to CURBE_TOTAL_DATA_LENGTH / 32 */ |
#define VME_MSG_LENGTH 32 |
static const uint32_t gen75_vme_intra_frame[][4] = { |
#include "shaders/vme/intra_frame_haswell.g75b" |
}; |
static const uint32_t gen75_vme_inter_frame[][4] = { |
#include "shaders/vme/inter_frame_haswell.g75b" |
}; |
static struct i965_kernel gen75_vme_kernels[] = { |
{ |
"VME Intra Frame", |
VME_INTRA_SHADER, /*index*/ |
gen75_vme_intra_frame, |
sizeof(gen75_vme_intra_frame), |
NULL |
}, |
{ |
"VME inter Frame", |
VME_INTER_SHADER, |
gen75_vme_inter_frame, |
sizeof(gen75_vme_inter_frame), |
NULL |
} |
}; |
/* |
* Surface state for IvyBridge |
*/ |
static |
void gen75_vme_set_common_surface_tiling(struct gen7_surface_state *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss0.tiled_surface = 0; |
ss->ss0.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss0.tiled_surface = 1; |
ss->ss0.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss0.tiled_surface = 1; |
ss->ss0.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
static void |
gen75_vme_set_source_surface_tiling(struct gen7_surface_state2 *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss2.tiled_surface = 0; |
ss->ss2.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss2.tiled_surface = 1; |
ss->ss2.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss2.tiled_surface = 1; |
ss->ss2.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
/* only used for VME source surface state */ |
static void gen75_vme_source_surface_state(VADriverContextP ctx, |
int index, |
struct object_surface *obj_surface, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct gen7_surface_state2 *ss; |
dri_bo *bo; |
int w, h, w_pitch, h_pitch; |
unsigned int tiling, swizzle; |
assert(obj_surface->bo); |
w = obj_surface->orig_width; |
h = obj_surface->orig_height; |
w_pitch = obj_surface->width; |
h_pitch = obj_surface->height; |
bo = vme_context->surface_state_binding_table.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
ss = (struct gen7_surface_state2 *)((char *)bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_base_address = obj_surface->bo->offset; |
ss->ss1.cbcr_pixel_offset_v_direction = 2; |
ss->ss1.width = w - 1; |
ss->ss1.height = h - 1; |
ss->ss2.surface_format = MFX_SURFACE_PLANAR_420_8; |
ss->ss2.interleave_chroma = 1; |
ss->ss2.pitch = w_pitch - 1; |
ss->ss2.half_pitch_for_chroma = 0; |
dri_bo_get_tiling(obj_surface->bo, &tiling, &swizzle); |
gen75_vme_set_source_surface_tiling(ss, tiling); |
/* UV offset for interleave mode */ |
ss->ss3.x_offset_for_cb = 0; |
ss->ss3.y_offset_for_cb = h_pitch; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, 0, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct gen7_surface_state2, ss0), |
obj_surface->bo); |
((unsigned int *)((char *)bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(bo); |
} |
static void |
gen75_vme_media_source_surface_state(VADriverContextP ctx, |
int index, |
struct object_surface *obj_surface, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct gen7_surface_state *ss; |
dri_bo *bo; |
int w, h, w_pitch; |
unsigned int tiling, swizzle; |
/* Y plane */ |
w = obj_surface->orig_width; |
h = obj_surface->orig_height; |
w_pitch = obj_surface->width; |
bo = vme_context->surface_state_binding_table.bo; |
dri_bo_map(bo, True); |
assert(bo->virtual); |
ss = (struct gen7_surface_state *)((char *)bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_type = I965_SURFACE_2D; |
ss->ss0.surface_format = I965_SURFACEFORMAT_R8_UNORM; |
ss->ss1.base_addr = obj_surface->bo->offset; |
ss->ss2.width = w / 4 - 1; |
ss->ss2.height = h - 1; |
ss->ss3.pitch = w_pitch - 1; |
dri_bo_get_tiling(obj_surface->bo, &tiling, &swizzle); |
gen75_vme_set_common_surface_tiling(ss, tiling); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, 0, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct gen7_surface_state, ss1), |
obj_surface->bo); |
((unsigned int *)((char *)bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(bo); |
} |
static VAStatus |
gen75_vme_output_buffer_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
int index, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct gen7_surface_state *ss; |
dri_bo *bo; |
VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param->buffer; |
VAEncSliceParameterBuffer *pSliceParameter = (VAEncSliceParameterBuffer *)encode_state->slice_params[0]->buffer; |
int is_intra = pSliceParameter->slice_flags.bits.is_intra; |
int width_in_mbs = pSequenceParameter->picture_width_in_mbs; |
int height_in_mbs = pSequenceParameter->picture_height_in_mbs; |
int num_entries; |
if ( is_intra ) { |
vme_context->vme_output.size_block = INTRA_VME_OUTPUT_IN_BYTES * 2; |
} else { |
vme_context->vme_output.size_block = INTRA_VME_OUTPUT_IN_BYTES * 24; |
/* |
* Inter MV . 32-byte Intra search + 16 IME info + 128 IME MV + 32 IME Ref |
* + 16 FBR Info + 128 FBR MV + 32 FBR Ref. |
* 16 * (2 + 2 * (1 + 8 + 2))= 16 * 24. |
*/ |
} |
vme_context->vme_output.num_blocks = width_in_mbs * height_in_mbs; |
vme_context->vme_output.pitch = 16; |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"VME output buffer", |
vme_context->vme_output.num_blocks * vme_context->vme_output.size_block, |
0x1000); |
assert(bo); |
vme_context->vme_output.bo = bo; |
bo = vme_context->surface_state_binding_table.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
ss = (struct gen7_surface_state *)((char *)bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss, 0, sizeof(*ss)); |
/* always use 16 bytes as pitch on Sandy Bridge */ |
num_entries = vme_context->vme_output.num_blocks * vme_context->vme_output.size_block / 16; |
ss->ss0.surface_type = I965_SURFACE_BUFFER; |
ss->ss1.base_addr = vme_context->vme_output.bo->offset; |
ss->ss2.width = ((num_entries - 1) & 0x7f); |
ss->ss2.height = (((num_entries - 1) >> 7) & 0x3fff); |
ss->ss3.depth = (((num_entries - 1) >> 21) & 0x3f); |
ss->ss3.pitch = vme_context->vme_output.pitch - 1; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct gen7_surface_state, ss1), |
vme_context->vme_output.bo); |
((unsigned int *)((char *)bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(bo); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen75_vme_surface_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
int is_intra, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
VAEncPictureParameterBufferH264 *pPicParameter = (VAEncPictureParameterBufferH264 *)encode_state->pic_param->buffer; |
/*Setup surfaces state*/ |
/* current picture for encoding */ |
obj_surface = SURFACE(encode_state->current_render_target); |
assert(obj_surface); |
gen75_vme_source_surface_state(ctx, 0, obj_surface, gen6_encoder_context); |
gen75_vme_media_source_surface_state(ctx, 4, obj_surface, gen6_encoder_context); |
if ( ! is_intra ) { |
/* reference 0 */ |
obj_surface = SURFACE(pPicParameter->reference_picture); |
assert(obj_surface); |
gen75_vme_source_surface_state(ctx, 1, obj_surface, gen6_encoder_context); |
/* reference 1, FIXME: */ |
// obj_surface = SURFACE(pPicParameter->reference_picture); |
// assert(obj_surface); |
//gen7_vme_source_surface_state(ctx, 2, obj_surface); |
} |
/* VME output */ |
gen75_vme_output_buffer_setup(ctx, encode_state, 3, gen6_encoder_context); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen75_vme_interface_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
struct gen6_interface_descriptor_data *desc; |
int i; |
dri_bo *bo; |
bo = vme_context->idrt.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
desc = bo->virtual; |
for (i = 0; i < GEN6_VME_KERNEL_NUMBER; i++) { |
struct i965_kernel *kernel; |
kernel = &vme_context->vme_kernels[i]; |
assert(sizeof(*desc) == 32); |
/*Setup the descritor table*/ |
memset(desc, 0, sizeof(*desc)); |
desc->desc0.kernel_start_pointer = (kernel->bo->offset >> 6); |
desc->desc2.sampler_count = 0; /* FIXME: */ |
desc->desc2.sampler_state_pointer = 0; |
desc->desc3.binding_table_entry_count = 1; /* FIXME: */ |
desc->desc3.binding_table_pointer = (BINDING_TABLE_OFFSET >> 5); |
desc->desc4.constant_urb_entry_read_offset = 0; |
desc->desc4.constant_urb_entry_read_length = CURBE_URB_ENTRY_LENGTH; |
/*kernel start*/ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
i * sizeof(*desc) + offsetof(struct gen6_interface_descriptor_data, desc0), |
kernel->bo); |
desc++; |
} |
dri_bo_unmap(bo); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen75_vme_constant_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
unsigned char *constant_buffer; |
dri_bo_map(vme_context->curbe.bo, 1); |
assert(vme_context->curbe.bo->virtual); |
constant_buffer = vme_context->curbe.bo->virtual; |
/* VME MV/Mb cost table is passed by using const buffer */ |
/* Now it uses the fixed search path. So it is constructed directly |
* in the GPU shader. |
*/ |
memcpy(constant_buffer, (char *)vme_context->vme_state_message, 32); |
dri_bo_unmap( vme_context->curbe.bo); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen75_vme_vme_state_setup(VADriverContextP ctx, |
struct encode_state *encode_state, |
int is_intra, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
unsigned int *vme_state_message; |
int i; |
//building VME state message |
//pass the MV/Mb cost into VME message on HASWell |
assert(vme_context->vme_state_message); |
vme_state_message = (unsigned int *)vme_context->vme_state_message; |
vme_state_message[0] = 0x4a4a4a4a; |
vme_state_message[1] = 0x4a4a4a4a; |
vme_state_message[2] = 0x4a4a4a4a; |
vme_state_message[3] = 0x22120200; |
vme_state_message[4] = 0x62524232; |
for (i=5; i < 8; i++) { |
vme_state_message[i] = 0; |
} |
return VA_STATUS_SUCCESS; |
} |
static void gen75_vme_pipeline_select(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, 1); |
OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA); |
ADVANCE_BATCH(batch); |
} |
static void gen75_vme_state_base_address(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, 10); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | 8); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); //General State Base Address |
OUT_RELOC(batch, vme_context->surface_state_binding_table.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */ |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); //Dynamic State Base Address |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); //Indirect Object Base Address |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); //Instruction Base Address |
OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY); //General State Access Upper Bound |
OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY); //Dynamic State Access Upper Bound |
OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY); //Indirect Object Access Upper Bound |
OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY); //Instruction Access Upper Bound |
/* |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); //LLC Coherent Base Address |
OUT_BATCH(batch, 0xFFFFF000 | BASE_ADDRESS_MODIFY ); //LLC Coherent Upper Bound |
*/ |
ADVANCE_BATCH(batch); |
} |
static void gen75_vme_vfe_state(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, 8); |
OUT_BATCH(batch, CMD_MEDIA_VFE_STATE | 6); /*Gen6 CMD_MEDIA_STATE_POINTERS = CMD_MEDIA_STATE */ |
OUT_BATCH(batch, 0); /*Scratch Space Base Pointer and Space*/ |
OUT_BATCH(batch, (vme_context->vfe_state.max_num_threads << 16) |
| (vme_context->vfe_state.num_urb_entries << 8) |
| (vme_context->vfe_state.gpgpu_mode << 2) ); /*Maximum Number of Threads , Number of URB Entries, MEDIA Mode*/ |
OUT_BATCH(batch, 0); /*Debug: Object ID*/ |
OUT_BATCH(batch, (vme_context->vfe_state.urb_entry_size << 16) |
| vme_context->vfe_state.curbe_allocation_size); /*URB Entry Allocation Size , CURBE Allocation Size*/ |
OUT_BATCH(batch, 0); /*Disable Scoreboard*/ |
OUT_BATCH(batch, 0); /*Disable Scoreboard*/ |
OUT_BATCH(batch, 0); /*Disable Scoreboard*/ |
ADVANCE_BATCH(batch); |
} |
static void gen75_vme_curbe_load(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, 4); |
OUT_BATCH(batch, CMD_MEDIA_CURBE_LOAD | 2); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, CURBE_TOTAL_DATA_LENGTH); |
OUT_RELOC(batch, vme_context->curbe.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
ADVANCE_BATCH(batch); |
} |
static void gen75_vme_idrt(VADriverContextP ctx, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, 4); |
OUT_BATCH(batch, CMD_MEDIA_INTERFACE_LOAD | 2); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, GEN6_VME_KERNEL_NUMBER * sizeof(struct gen6_interface_descriptor_data)); |
OUT_RELOC(batch, vme_context->idrt.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
ADVANCE_BATCH(batch); |
} |
static int gen75_vme_media_object(VADriverContextP ctx, |
struct encode_state *encode_state, |
int mb_x, int mb_y, |
int kernel, unsigned int mb_intra_ub, |
struct gen6_encoder_context *gen6_encoder_context, |
struct intel_batchbuffer *batch) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(encode_state->current_render_target); |
int mb_width = ALIGN(obj_surface->orig_width, 16) / 16; |
int len_in_dowrds = 8; |
if (batch == NULL) |
batch = gen6_encoder_context->base.batch; |
BEGIN_BATCH(batch, len_in_dowrds); |
OUT_BATCH(batch, CMD_MEDIA_OBJECT | (len_in_dowrds - 2)); |
OUT_BATCH(batch, kernel); /*Interface Descriptor Offset*/ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
/*inline data */ |
OUT_BATCH(batch, mb_width << 16 | mb_y << 8 | mb_x); /*M0.0 Refrence0 X,Y, not used in Intra*/ |
OUT_BATCH(batch, ((mb_intra_ub << 8) | 0)); |
ADVANCE_BATCH(batch); |
return len_in_dowrds * 4; |
} |
static void gen75_vme_media_init(VADriverContextP ctx, struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_vme_context *vme_context = &gen6_encoder_context->vme_context; |
dri_bo *bo; |
/* constant buffer */ |
dri_bo_unreference(vme_context->curbe.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
CURBE_TOTAL_DATA_LENGTH, 64); |
assert(bo); |
vme_context->curbe.bo = bo; |
dri_bo_unreference(vme_context->surface_state_binding_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state & binding table", |
(SURFACE_STATE_PADDED_SIZE + sizeof(unsigned int)) * MAX_MEDIA_SURFACES_GEN6, |
4096); |
assert(bo); |
vme_context->surface_state_binding_table.bo = bo; |
/* interface descriptor remapping table */ |
dri_bo_unreference(vme_context->idrt.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
MAX_INTERFACE_DESC_GEN6 * sizeof(struct gen6_interface_descriptor_data), 16); |
assert(bo); |
vme_context->idrt.bo = bo; |
/* VME output buffer */ |
dri_bo_unreference(vme_context->vme_output.bo); |
vme_context->vme_output.bo = NULL; |
/* VME state */ |
dri_bo_unreference(vme_context->vme_state.bo); |
vme_context->vme_state.bo = NULL; |
vme_context->vfe_state.max_num_threads = 60 - 1; |
vme_context->vfe_state.num_urb_entries = 16; |
vme_context->vfe_state.gpgpu_mode = 0; |
vme_context->vfe_state.urb_entry_size = 59 - 1; |
vme_context->vfe_state.curbe_allocation_size = CURBE_ALLOCATION_SIZE - 1; |
} |
#define INTRA_PRED_AVAIL_FLAG_AE 0x60 |
#define INTRA_PRED_AVAIL_FLAG_B 0x10 |
#define INTRA_PRED_AVAIL_FLAG_C 0x8 |
#define INTRA_PRED_AVAIL_FLAG_D 0x4 |
#define INTRA_PRED_AVAIL_FLAG_BCD_MASK 0x1C |
static void gen75_vme_pipeline_programing(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *main_batch = gen6_encoder_context->base.batch; |
VAEncSliceParameterBuffer *pSliceParameter = (VAEncSliceParameterBuffer *)encode_state->slice_params[0]->buffer; |
VAEncSequenceParameterBufferH264 *pSequenceParameter = (VAEncSequenceParameterBufferH264 *)encode_state->seq_param->buffer; |
int is_intra = pSliceParameter->slice_flags.bits.is_intra; |
int width_in_mbs = pSequenceParameter->picture_width_in_mbs; |
int height_in_mbs = pSequenceParameter->picture_height_in_mbs; |
int emit_new_state = 1, object_len_in_bytes; |
int x, y; |
unsigned int mb_intra_ub; |
struct intel_batchbuffer *batch = intel_batchbuffer_new(&i965->intel, I915_EXEC_RENDER, width_in_mbs * height_in_mbs * 8 * 4 + 0x200); |
intel_batchbuffer_start_atomic(batch, width_in_mbs * height_in_mbs * 8 * 4 + 0x100); |
for(y = 0; y < height_in_mbs; y++){ |
for(x = 0; x < width_in_mbs; x++){ |
mb_intra_ub = 0; |
if (x != 0) { |
mb_intra_ub |= INTRA_PRED_AVAIL_FLAG_AE; |
} |
if (y != 0) { |
mb_intra_ub |= INTRA_PRED_AVAIL_FLAG_B; |
if (x != 0) |
mb_intra_ub |= INTRA_PRED_AVAIL_FLAG_D; |
if (x != (width_in_mbs -1)) |
mb_intra_ub |= INTRA_PRED_AVAIL_FLAG_C; |
} |
if (emit_new_state) { |
/*Step1: MI_FLUSH/PIPE_CONTROL*/ |
intel_batchbuffer_emit_mi_flush(batch); |
/*Step2: State command PIPELINE_SELECT*/ |
gen75_vme_pipeline_select(ctx, gen6_encoder_context, batch); |
/*Step3: State commands configuring pipeline states*/ |
gen75_vme_state_base_address(ctx, gen6_encoder_context, batch); |
gen75_vme_vfe_state(ctx, gen6_encoder_context, batch); |
gen75_vme_curbe_load(ctx, gen6_encoder_context, batch); |
gen75_vme_idrt(ctx, gen6_encoder_context, batch); |
emit_new_state = 0; |
} |
/*Step4: Primitive commands*/ |
object_len_in_bytes = gen75_vme_media_object(ctx, encode_state, x, y, is_intra ? VME_INTRA_SHADER : VME_INTER_SHADER, mb_intra_ub, gen6_encoder_context, batch); |
if (intel_batchbuffer_check_free_space(batch, object_len_in_bytes) == 0) { |
assert(0); |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
emit_new_state = 1; |
intel_batchbuffer_start_atomic(batch, 0x1000); |
} |
} |
} |
intel_batchbuffer_align(batch, 8); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, MI_BATCH_BUFFER_END); |
ADVANCE_BATCH(batch); |
intel_batchbuffer_end_atomic(batch); |
/* chain to the main batch buffer */ |
intel_batchbuffer_start_atomic(main_batch, 0x100); |
intel_batchbuffer_emit_mi_flush(main_batch); |
BEGIN_BATCH(main_batch, 2); |
OUT_BATCH(main_batch, MI_BATCH_BUFFER_START | (2 << 6)); |
OUT_RELOC(main_batch, |
batch->buffer, |
I915_GEM_DOMAIN_COMMAND, 0, |
0); |
ADVANCE_BATCH(main_batch); |
intel_batchbuffer_end_atomic(main_batch); |
// end programing |
intel_batchbuffer_free(batch); |
} |
static VAStatus gen75_vme_prepare(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
VAEncSliceParameterBuffer *pSliceParameter = (VAEncSliceParameterBuffer *)encode_state->slice_params[0]->buffer; |
int is_intra = pSliceParameter->slice_flags.bits.is_intra; |
gen75_vme_surface_setup(ctx, encode_state, is_intra, gen6_encoder_context); |
gen75_vme_interface_setup(ctx, encode_state, gen6_encoder_context); |
gen75_vme_vme_state_setup(ctx, encode_state, is_intra, gen6_encoder_context); |
gen75_vme_constant_setup(ctx, encode_state, gen6_encoder_context); |
/*Programing media pipeline*/ |
gen75_vme_pipeline_programing(ctx, encode_state, gen6_encoder_context); |
return vaStatus; |
} |
static VAStatus gen75_vme_run(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
struct intel_batchbuffer *batch = gen6_encoder_context->base.batch; |
intel_batchbuffer_flush(batch); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus gen75_vme_stop(VADriverContextP ctx, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
return VA_STATUS_SUCCESS; |
} |
VAStatus gen75_vme_pipeline(VADriverContextP ctx, |
VAProfile profile, |
struct encode_state *encode_state, |
struct gen6_encoder_context *gen6_encoder_context) |
{ |
gen75_vme_media_init(ctx, gen6_encoder_context); |
gen75_vme_prepare(ctx, encode_state, gen6_encoder_context); |
gen75_vme_run(ctx, encode_state, gen6_encoder_context); |
gen75_vme_stop(ctx, encode_state, gen6_encoder_context); |
return VA_STATUS_SUCCESS; |
} |
Bool gen75_vme_context_init(VADriverContextP ctx, struct gen6_vme_context *vme_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i; |
memcpy(vme_context->vme_kernels, gen75_vme_kernels, sizeof(vme_context->vme_kernels)); |
for (i = 0; i < GEN6_VME_KERNEL_NUMBER; i++) { |
/*Load kernel into GPU memory*/ |
struct i965_kernel *kernel = &vme_context->vme_kernels[i]; |
kernel->bo = dri_bo_alloc(i965->intel.bufmgr, |
kernel->name, |
kernel->size, |
0x1000); |
assert(kernel->bo); |
dri_bo_subdata(kernel->bo, 0, kernel->size, kernel->bin); |
} |
vme_context->vme_state_message = malloc(VME_MSG_LENGTH * sizeof(int)); |
return True; |
} |
Bool gen75_vme_context_destroy(struct gen6_vme_context *vme_context) |
{ |
int i; |
dri_bo_unreference(vme_context->idrt.bo); |
vme_context->idrt.bo = NULL; |
dri_bo_unreference(vme_context->surface_state_binding_table.bo); |
vme_context->surface_state_binding_table.bo = NULL; |
dri_bo_unreference(vme_context->curbe.bo); |
vme_context->curbe.bo = NULL; |
dri_bo_unreference(vme_context->vme_output.bo); |
vme_context->vme_output.bo = NULL; |
dri_bo_unreference(vme_context->vme_state.bo); |
vme_context->vme_state.bo = NULL; |
for (i = 0; i < GEN6_VME_KERNEL_NUMBER; i++) { |
/*Load kernel into GPU memory*/ |
struct i965_kernel *kernel = &vme_context->vme_kernels[i]; |
dri_bo_unreference(kernel->bo); |
kernel->bo = NULL; |
} |
if (vme_context->vme_state_message) { |
free(vme_context->vme_state_message); |
vme_context->vme_state_message = NULL; |
} |
return True; |
} |
/drivers/video/i965/gen75_vpp_vebox.c |
---|
0,0 → 1,861 |
/* |
* Copyright © 2011 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Li Xiaowei <xiaowei.a.li@intel.com> |
*/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
#include <math.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_structs.h" |
#include "gen75_vpp_vebox.h" |
#define PI 3.1415926 |
extern VAStatus |
i965_CreateSurfaces(VADriverContextP ctx, |
int width, |
int height, |
int format, |
int num_surfaces, |
VASurfaceID *surfaces); |
int format_convert(float src, int out_int_bits, int out_frac_bits,int out_sign_flag) |
{ |
unsigned char negative_flag = (src < 0.0) ? 1 : 0; |
float src_1 = (!negative_flag)? src: -src ; |
unsigned int factor = 1 << out_frac_bits; |
int output_value = 0; |
unsigned int integer_part = 0;//floor(src_1); |
unsigned int fraction_part = ((int)((src_1 - integer_part) * factor)) & (factor - 1) ; |
output_value = (integer_part << out_frac_bits) | fraction_part; |
if(negative_flag) |
output_value = (~output_value + 1) & ((1 <<(out_int_bits + out_frac_bits)) -1); |
if(out_sign_flag == 1 && negative_flag) |
{ |
output_value |= negative_flag <<(out_int_bits + out_frac_bits); |
} |
return output_value; |
} |
void hsw_veb_dndi_table(VADriverContextP ctx, struct intel_vebox_context *proc_ctx) |
{ |
unsigned int* p_table ; |
/* |
VAProcFilterParameterBufferDeinterlacing *di_param = |
(VAProcFilterParameterBufferDeinterlacing *) proc_ctx->filter_di; |
VAProcFilterParameterBuffer * dn_param = |
(VAProcFilterParameterBuffer *) proc_ctx->filter_dn; |
*/ |
p_table = (unsigned int *)proc_ctx->dndi_state_table.ptr; |
*p_table ++ = 0; // reserved . w0 |
*p_table ++ = ( 0 << 24 | // denoise STAD threshold . w1 |
128 << 16 | // dnmh_history_max |
0 << 12 | // reserved |
8 << 8 | // dnmh_delta[3:0] |
0 ); // denoise ASD threshold |
*p_table ++ = ( 0 << 30 | // reserved . w2 |
16 << 24 | // temporal diff th |
0 << 22 | // reserved. |
8 << 16 | // low temporal diff th |
0 << 13 | // STMM C2 |
0 << 8 | // denoise moving pixel th |
64 ); // denoise th for sum of complexity measure |
*p_table ++ = ( 0 << 30 | // reserved . w3 |
4 << 24 | // good neighbor th[5:0] |
9 << 20 | // CAT slope minus 1 |
5 << 16 | // SAD Tight in |
0 << 14 | // smooth mv th |
0 << 12 | // reserved |
1 << 8 | // bne_edge_th[3:0] |
15 ); // block noise estimate noise th |
*p_table ++ = ( 0 << 31 | // STMM blending constant select. w4 |
64 << 24 | // STMM trc1 |
0 << 16 | // STMM trc2 |
0 << 14 | // reserved |
2 << 8 | // VECM_mul |
128 ); // maximum STMM |
*p_table ++ = ( 0 << 24 | // minumum STMM . W5 |
0 << 22 | // STMM shift down |
0 << 20 | // STMM shift up |
7 << 16 | // STMM output shift |
128 << 8 | // SDI threshold |
8 ); // SDI delta |
*p_table ++ = ( 0 << 24 | // SDI fallback mode 1 T1 constant . W6 |
0 << 16 | // SDI fallback mode 1 T2 constant |
0 << 8 | // SDI fallback mode 2 constant(angle2x1) |
0 ); // FMD temporal difference threshold |
*p_table ++ = ( 32 << 24 | // FMD #1 vertical difference th . w7 |
32 << 16 | // FMD #2 vertical difference th |
1 << 14 | // CAT th1 |
32 << 8 | // FMD tear threshold |
0 << 7 | // MCDI Enable, use motion compensated deinterlace algorithm |
0 << 6 | // progressive DN |
0 << 4 | // reserved |
0 << 3 | // DN/DI Top First |
0 ); // reserved |
*p_table ++ = ( 0 << 29 | // reserved . W8 |
0 << 23 | // dnmh_history_init[5:0] |
10 << 19 | // neighborPixel th |
0 << 18 | // reserved |
0 << 16 | // FMD for 2nd field of previous frame |
25 << 10 | // MC pixel consistency th |
0 << 8 | // FMD for 1st field for current frame |
10 << 4 | // SAD THB |
5 ); // SAD THA |
*p_table ++ = ( 0 << 24 | // reserved |
0 << 16 | // chr_dnmh_stad_th |
0 << 13 | // reserved |
0 << 12 | // chrome denoise enable |
0 << 6 | // chr temp diff th |
0 ); // chr temp diff low |
} |
void hsw_veb_iecp_std_table(VADriverContextP ctx, struct intel_vebox_context *proc_ctx) |
{ |
unsigned int *p_table = proc_ctx->iecp_state_table.ptr + 0 ; |
/* |
VAProcFilterParameterBuffer * std_param = |
(VAProcFilterParameterBuffer *) proc_ctx->filter_std; |
*/ |
if(!(proc_ctx->filters_mask & VPP_IECP_STD_STE)){ |
memset(p_table, 0, 29 * 4); |
}else{ |
*p_table ++ = 0x9a6e39f0; |
*p_table ++ = 0x400c0000; |
*p_table ++ = 0x00001180; |
*p_table ++ = 0xfe2f2e00; |
*p_table ++ = 0x000000ff; |
*p_table ++ = 0x00140000; |
*p_table ++ = 0xd82e0000; |
*p_table ++ = 0x8285ecec; |
*p_table ++ = 0x00008282; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x02117000; |
*p_table ++ = 0xa38fec96; |
*p_table ++ = 0x0000c8c8; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x01478000; |
*p_table ++ = 0x0007c306; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x1c1bd000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x0007cf80; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x1c080000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
} |
} |
void hsw_veb_iecp_ace_table(VADriverContextP ctx, struct intel_vebox_context *proc_ctx) |
{ |
unsigned int *p_table = (unsigned int*)(proc_ctx->iecp_state_table.ptr + 116); |
if(!(proc_ctx->filters_mask & VPP_IECP_ACE)){ |
memset(p_table, 0, 13 * 4); |
}else{ |
*p_table ++ = 0x00000068; |
*p_table ++ = 0x4c382410; |
*p_table ++ = 0x9c887460; |
*p_table ++ = 0xebd8c4b0; |
*p_table ++ = 0x604c3824; |
*p_table ++ = 0xb09c8874; |
*p_table ++ = 0x0000d8c4; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
} |
} |
void hsw_veb_iecp_tcc_table(VADriverContextP ctx, struct intel_vebox_context *proc_ctx) |
{ |
unsigned int *p_table = (unsigned int*)(proc_ctx->iecp_state_table.ptr + 168); |
/* |
VAProcFilterParameterBuffer * tcc_param = |
(VAProcFilterParameterBuffer *) proc_ctx->filter_iecp_tcc; |
*/ |
if(!(proc_ctx->filters_mask & VPP_IECP_TCC)){ |
memset(p_table, 0, 11 * 4); |
}else{ |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x1e34cc91; |
*p_table ++ = 0x3e3cce91; |
*p_table ++ = 0x02e80195; |
*p_table ++ = 0x0197046b; |
*p_table ++ = 0x01790174; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x03030000; |
*p_table ++ = 0x009201c0; |
} |
} |
void hsw_veb_iecp_pro_amp_table(VADriverContextP ctx, struct intel_vebox_context *proc_ctx) |
{ |
unsigned int contrast = 0x80; //default |
int brightness = 0x00; //default |
int cos_c_s = 256 ; //default |
int sin_c_s = 0; //default |
unsigned int *p_table = (unsigned int*)(proc_ctx->iecp_state_table.ptr + 212); |
if(!(proc_ctx->filters_mask & VPP_IECP_PRO_AMP)){ |
memset(p_table, 0, 2 * 4); |
}else { |
float tmp_value = 0.0; |
float src_saturation = 1.0; |
float src_hue = 0.0; |
float src_contrast = 1.0; |
/* |
float src_brightness = 0.0; |
VAProcFilterParameterBufferColorBalance * amp_param = |
(VAProcFilterParameterBufferColorBalance *) proc_ctx->filter_iecp_amp; |
VAProcColorBalanceType attrib = amp_param->attrib; |
if(attrib == VAProcColorBalanceHue) { |
src_hue = amp_param->value; //(-180.0, 180.0) |
}else if(attrib == VAProcColorBalanceSaturation) { |
src_saturation = amp_param->value; //(0.0, 10.0) |
}else if(attrib == VAProcColorBalanceBrightness) { |
src_brightness = amp_param->value; // (-100.0, 100.0) |
brightness = format_convert(src_brightness, 7, 4, 1); |
}else if(attrib == VAProcColorBalanceContrast) { |
src_contrast = amp_param->value; // (0.0, 10.0) |
contrast = format_convert(src_contrast, 4, 7, 0); |
} |
*/ |
tmp_value = cos(src_hue/180*PI) * src_contrast * src_saturation; |
cos_c_s = format_convert(tmp_value, 7, 8, 1); |
tmp_value = sin(src_hue/180*PI) * src_contrast * src_saturation; |
sin_c_s = format_convert(tmp_value, 7, 8, 1); |
*p_table ++ = ( 0 << 28 | //reserved |
contrast << 17 | //contrast value (U4.7 format) |
0 << 13 | //reserved |
brightness << 1| // S7.4 format |
1); |
*p_table ++ = ( cos_c_s << 16 | // cos(h) * contrast * saturation |
sin_c_s); // sin(h) * contrast * saturation |
} |
} |
void hsw_veb_iecp_csc_table(VADriverContextP ctx, struct intel_vebox_context *proc_ctx) |
{ |
unsigned int *p_table = (unsigned int*)(proc_ctx->iecp_state_table.ptr + 220); |
float tran_coef[9] = {1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0}; |
float v_coef[3] = {0.0, 0.0, 0.0}; |
float u_coef[3] = {0.0, 0.0, 0.0}; |
int is_transform_enabled = 0; |
if(!(proc_ctx->filters_mask & VPP_IECP_CSC)){ |
memset(p_table, 0, 8 * 4); |
return; |
} |
/* |
VAProcColorStandardType in_color_std = proc_ctx->pipeline_param->surface_color_standard; |
VAProcColorStandardType out_color_std = proc_ctx->pipeline_param->output_color_standard; |
assert(in_color_std == out_color_std); |
*/ |
if(proc_ctx->fourcc_input == VA_FOURCC('R','G','B','A') && |
(proc_ctx->fourcc_output == VA_FOURCC('N','V','1','2') || |
proc_ctx->fourcc_output == VA_FOURCC('Y','V','1','2') || |
proc_ctx->fourcc_output == VA_FOURCC('Y','V','Y','2') || |
proc_ctx->fourcc_output == VA_FOURCC('A','Y','U','V'))) { |
tran_coef[0] = 0.257; |
tran_coef[1] = 0.504; |
tran_coef[2] = 0.098; |
tran_coef[3] = -0.148; |
tran_coef[4] = -0.291; |
tran_coef[5] = 0.439; |
tran_coef[6] = 0.439; |
tran_coef[7] = -0.368; |
tran_coef[8] = -0.071; |
u_coef[0] = 16 * 4; |
u_coef[1] = 128 * 4; |
u_coef[2] = 128 * 4; |
is_transform_enabled = 1; |
}else if((proc_ctx->fourcc_input == VA_FOURCC('N','V','1','2') || |
proc_ctx->fourcc_input == VA_FOURCC('Y','V','1','2') || |
proc_ctx->fourcc_input == VA_FOURCC('Y','U','Y','2') || |
proc_ctx->fourcc_input == VA_FOURCC('A','Y','U','V'))&& |
proc_ctx->fourcc_output == VA_FOURCC('R','G','B','A')) { |
tran_coef[0] = 1.164; |
tran_coef[1] = 0.000; |
tran_coef[2] = 1.569; |
tran_coef[3] = 1.164; |
tran_coef[4] = -0.813; |
tran_coef[5] = -0.392; |
tran_coef[6] = 1.164; |
tran_coef[7] = 2.017; |
tran_coef[8] = 0.000; |
v_coef[0] = -16 * 4; |
v_coef[1] = -128 * 4; |
v_coef[2] = -128 * 4; |
is_transform_enabled = 1; |
}else if(proc_ctx->fourcc_input != proc_ctx->fourcc_output){ |
//enable when input and output format are different. |
is_transform_enabled = 1; |
} |
if(is_transform_enabled == 0){ |
memset(p_table, 0, 8 * 4); |
}else{ |
*p_table ++ = ( 0 << 29 | //reserved |
format_convert(tran_coef[1], 2, 10, 1) << 16 | //c1, s2.10 format |
format_convert(tran_coef[0], 2, 10, 1) << 3 | //c0, s2.10 format |
0 << 2 | //reserved |
0 << 1 | // yuv_channel swap |
is_transform_enabled); |
*p_table ++ = ( 0 << 26 | //reserved |
format_convert(tran_coef[3], 2, 10, 1) << 13 | |
format_convert(tran_coef[2], 2, 10, 1)); |
*p_table ++ = ( 0 << 26 | //reserved |
format_convert(tran_coef[5], 2, 10, 1) << 13 | |
format_convert(tran_coef[4], 2, 10, 1)); |
*p_table ++ = ( 0 << 26 | //reserved |
format_convert(tran_coef[7], 2, 10, 1) << 13 | |
format_convert(tran_coef[6], 2, 10, 1)); |
*p_table ++ = ( 0 << 13 | //reserved |
format_convert(tran_coef[8], 2, 10, 1)); |
*p_table ++ = ( 0 << 22 | //reserved |
format_convert(u_coef[0], 10, 0, 1) << 11 | |
format_convert(v_coef[0], 10, 0, 1)); |
*p_table ++ = ( 0 << 22 | //reserved |
format_convert(u_coef[1], 10, 0, 1) << 11 | |
format_convert(v_coef[1], 10, 0, 1)); |
*p_table ++ = ( 0 << 22 | //reserved |
format_convert(u_coef[2], 10, 0, 1) << 11 | |
format_convert(v_coef[2], 10, 0, 1)); |
} |
} |
void hsw_veb_iecp_aoi_table(VADriverContextP ctx, struct intel_vebox_context *proc_ctx) |
{ |
unsigned int *p_table = (unsigned int*)(proc_ctx->iecp_state_table.ptr + 252); |
/* |
VAProcFilterParameterBuffer * tcc_param = |
(VAProcFilterParameterBuffer *) proc_ctx->filter_iecp_tcc; |
*/ |
if(!(proc_ctx->filters_mask & VPP_IECP_AOI)){ |
memset(p_table, 0, 3 * 4); |
}else{ |
*p_table ++ = 0x00000000; |
*p_table ++ = 0x00030000; |
*p_table ++ = 0x00030000; |
} |
} |
void hsw_veb_state_table_setup(VADriverContextP ctx, struct intel_vebox_context *proc_ctx) |
{ |
if(proc_ctx->filters_mask & 0x000000ff) { |
dri_bo *dndi_bo = proc_ctx->dndi_state_table.bo; |
dri_bo_map(dndi_bo, 1); |
proc_ctx->dndi_state_table.ptr = dndi_bo->virtual; |
hsw_veb_dndi_table(ctx, proc_ctx); |
dri_bo_unmap(dndi_bo); |
} |
if(proc_ctx->filters_mask & 0x0000ff00 || |
proc_ctx->fourcc_input != proc_ctx->fourcc_output) { |
dri_bo *iecp_bo = proc_ctx->iecp_state_table.bo; |
dri_bo_map(iecp_bo, 1); |
proc_ctx->iecp_state_table.ptr = iecp_bo->virtual; |
hsw_veb_iecp_std_table(ctx, proc_ctx); |
hsw_veb_iecp_ace_table(ctx, proc_ctx); |
hsw_veb_iecp_tcc_table(ctx, proc_ctx); |
hsw_veb_iecp_pro_amp_table(ctx, proc_ctx); |
hsw_veb_iecp_csc_table(ctx, proc_ctx); |
hsw_veb_iecp_aoi_table(ctx, proc_ctx); |
dri_bo_unmap(iecp_bo); |
} |
} |
void hsw_veb_state_command(VADriverContextP ctx, struct intel_vebox_context *proc_ctx) |
{ |
struct intel_batchbuffer *batch = proc_ctx->batch; |
unsigned int is_dn_enabled = (proc_ctx->filters_mask & 0x01)? 1: 0; |
unsigned int is_di_enabled = (proc_ctx->filters_mask & 0x02)? 1: 0; |
unsigned int is_iecp_enabled = (proc_ctx->filters_mask & 0xff00)?1:0; |
BEGIN_VEB_BATCH(batch, 6); |
OUT_VEB_BATCH(batch, VEB_STATE | (6 - 2)); |
OUT_VEB_BATCH(batch, |
0 << 26 | // state surface control bits |
0 << 11 | // reserved. |
0 << 10 | // pipe sync disable |
2 << 8 | // DI output frame |
0 << 7 | // 444->422 downsample method |
0 << 6 | // 422->420 downsample method |
!!(proc_ctx->is_first_frame && (is_di_enabled || is_dn_enabled)) << 5 | // DN/DI first frame |
is_di_enabled << 4 | // DI enable |
is_dn_enabled << 3 | // DN enable |
is_iecp_enabled << 2 | // global IECP enabled |
0 << 1 | // ColorGamutCompressionEnable |
0 ) ; // ColorGamutExpansionEnable. |
OUT_RELOC(batch, |
proc_ctx->dndi_state_table.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
OUT_RELOC(batch, |
proc_ctx->iecp_state_table.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
OUT_RELOC(batch, |
proc_ctx->gamut_state_table.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
OUT_RELOC(batch, |
proc_ctx->vertex_state_table.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
ADVANCE_VEB_BATCH(batch); |
} |
void hsw_veb_surface_state(VADriverContextP ctx, struct intel_vebox_context *proc_ctx, unsigned int is_output) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = proc_ctx->batch; |
unsigned int u_offset_y = 0, v_offset_y = 0; |
unsigned int is_uv_interleaved = 0, tiling = 0, swizzle = 0; |
unsigned int surface_format = PLANAR_420_8; |
struct object_surface* obj_surf = NULL; |
unsigned int surface_pitch = 0; |
unsigned int half_pitch_chroma = 0; |
if(is_output){ |
obj_surf = SURFACE(proc_ctx->frame_store[FRAME_OUT_CURRENT].surface_id); |
}else { |
obj_surf = SURFACE(proc_ctx->frame_store[FRAME_IN_CURRENT].surface_id); |
} |
if (obj_surf->fourcc == VA_FOURCC_NV12) { |
surface_format = PLANAR_420_8; |
surface_pitch = obj_surf->width; |
printf("NV12, is_output=%d, width = %d, pitch is = %d\n",is_output, obj_surf->orig_width, obj_surf->width); |
is_uv_interleaved = 1; |
half_pitch_chroma = 0; |
} else if (obj_surf->fourcc == VA_FOURCC_YUY2) { |
surface_format = YCRCB_NORMAL; |
surface_pitch = obj_surf->width * 2; |
is_uv_interleaved = 0; |
half_pitch_chroma = 0; |
} else if (obj_surf->fourcc == VA_FOURCC_AYUV) { |
surface_format = PACKED_444A_8; |
surface_pitch = obj_surf->width * 4; |
is_uv_interleaved = 0; |
half_pitch_chroma = 0; |
} else if (obj_surf->fourcc == VA_FOURCC_RGBA) { |
surface_format = R8G8B8A8_UNORM_SRGB; |
surface_pitch = obj_surf->width * 4; |
is_uv_interleaved = 0; |
half_pitch_chroma = 0; |
} |
u_offset_y = obj_surf->y_cb_offset; |
v_offset_y = obj_surf->y_cr_offset; |
dri_bo_get_tiling(obj_surf->bo, &tiling, &swizzle); |
BEGIN_VEB_BATCH(batch, 6); |
OUT_VEB_BATCH(batch, VEB_SURFACE_STATE | (6 - 2)); |
OUT_VEB_BATCH(batch, |
0 << 1 | // reserved |
is_output); // surface indentification. |
OUT_VEB_BATCH(batch, |
(proc_ctx->pic_height - 1) << 18 | // height . w3 |
(proc_ctx->pic_width ) << 4 | // width |
0); // reserve |
OUT_VEB_BATCH(batch, |
surface_format << 28 | // surface format, YCbCr420. w4 |
is_uv_interleaved << 27 | // interleave chrome , two seperate palar |
0 << 20 | // reserved |
(surface_pitch - 1) << 3 | // surface pitch, 64 align |
half_pitch_chroma << 2 | // half pitch for chrome |
!!tiling << 1 | // tiled surface, linear surface used |
(tiling == I915_TILING_Y)); // tiled walk, ignored when liner surface |
OUT_VEB_BATCH(batch, |
0 << 29 | // reserved . w5 |
0 << 16 | // X offset for V(Cb) |
0 << 15 | // reserved |
u_offset_y); // Y offset for V(Cb) |
OUT_VEB_BATCH(batch, |
0 << 29 | // reserved . w6 |
0 << 16 | // X offset for V(Cr) |
0 << 15 | // reserved |
v_offset_y ); // Y offset for V(Cr) |
ADVANCE_VEB_BATCH(batch); |
} |
void hsw_veb_dndi_iecp_command(VADriverContextP ctx, struct intel_vebox_context *proc_ctx) |
{ |
struct intel_batchbuffer *batch = proc_ctx->batch; |
unsigned char frame_ctrl_bits = 0; |
unsigned int startingX = 0; |
unsigned int endingX = proc_ctx->pic_width; |
BEGIN_VEB_BATCH(batch, 10); |
OUT_VEB_BATCH(batch, VEB_DNDI_IECP_STATE | (10 - 2)); |
OUT_VEB_BATCH(batch, |
startingX << 16 | |
endingX); |
OUT_RELOC(batch, |
proc_ctx->frame_store[FRAME_IN_CURRENT].bo, |
I915_GEM_DOMAIN_RENDER, 0, frame_ctrl_bits); |
OUT_RELOC(batch, |
proc_ctx->frame_store[FRAME_IN_PREVIOUS].bo, |
I915_GEM_DOMAIN_RENDER, 0, frame_ctrl_bits); |
OUT_RELOC(batch, |
proc_ctx->frame_store[FRAME_IN_STMM].bo, |
I915_GEM_DOMAIN_RENDER, 0, frame_ctrl_bits); |
OUT_RELOC(batch, |
proc_ctx->frame_store[FRAME_OUT_STMM].bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, frame_ctrl_bits); |
OUT_RELOC(batch, |
proc_ctx->frame_store[FRAME_OUT_CURRENT_DN].bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, frame_ctrl_bits); |
OUT_RELOC(batch, |
proc_ctx->frame_store[FRAME_OUT_CURRENT].bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, frame_ctrl_bits); |
OUT_RELOC(batch, |
proc_ctx->frame_store[FRAME_OUT_PREVIOUS].bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, frame_ctrl_bits); |
OUT_RELOC(batch, |
proc_ctx->frame_store[FRAME_OUT_STATISTIC].bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, frame_ctrl_bits); |
ADVANCE_VEB_BATCH(batch); |
} |
void hsw_veb_surface_reference(VADriverContextP ctx, |
struct intel_vebox_context *proc_ctx) |
{ |
struct object_surface * obj_surf; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
/* update the input surface */ |
obj_surf = SURFACE(proc_ctx->surface_input); |
proc_ctx->frame_store[FRAME_IN_CURRENT].surface_id = proc_ctx->surface_input; |
proc_ctx->frame_store[FRAME_IN_CURRENT].bo = obj_surf->bo; |
proc_ctx->frame_store[FRAME_IN_CURRENT].is_internal_surface = 0; |
dri_bo_reference(proc_ctx->frame_store[FRAME_IN_CURRENT].bo); |
/* update the output surface */ |
if(proc_ctx->filters_mask == VPP_DNDI_DN){ |
obj_surf = SURFACE(proc_ctx->surface_output); |
proc_ctx->frame_store[FRAME_OUT_CURRENT_DN].surface_id = proc_ctx->surface_output; |
proc_ctx->frame_store[FRAME_OUT_CURRENT_DN].bo = obj_surf->bo; |
proc_ctx->frame_store[FRAME_OUT_CURRENT_DN].is_internal_surface = 0; |
dri_bo_reference(proc_ctx->frame_store[FRAME_OUT_CURRENT_DN].bo); |
}else { |
obj_surf = SURFACE(proc_ctx->surface_output); |
proc_ctx->frame_store[FRAME_OUT_CURRENT].surface_id = proc_ctx->surface_output; |
proc_ctx->frame_store[FRAME_OUT_CURRENT].bo = obj_surf->bo; |
proc_ctx->frame_store[FRAME_OUT_CURRENT].is_internal_surface = 0; |
dri_bo_reference(proc_ctx->frame_store[FRAME_OUT_CURRENT].bo); |
} |
} |
void hsw_veb_surface_unreference(VADriverContextP ctx, |
struct intel_vebox_context *proc_ctx) |
{ |
/* unreference the input surface */ |
dri_bo_unreference(proc_ctx->frame_store[FRAME_IN_CURRENT].bo); |
proc_ctx->frame_store[FRAME_IN_CURRENT].surface_id = -1; |
proc_ctx->frame_store[FRAME_IN_CURRENT].bo = NULL; |
proc_ctx->frame_store[FRAME_IN_CURRENT].is_internal_surface = 0; |
dri_bo_unreference(proc_ctx->frame_store[FRAME_IN_CURRENT].bo); |
/* unreference the shared output surface */ |
if(proc_ctx->filters_mask == VPP_DNDI_DN){ |
proc_ctx->frame_store[FRAME_OUT_CURRENT_DN].surface_id = -1; |
proc_ctx->frame_store[FRAME_OUT_CURRENT_DN].bo = NULL; |
proc_ctx->frame_store[FRAME_OUT_CURRENT_DN].is_internal_surface = 0; |
dri_bo_unreference(proc_ctx->frame_store[FRAME_OUT_CURRENT_DN].bo); |
}else{ |
proc_ctx->frame_store[FRAME_OUT_CURRENT].surface_id = -1; |
proc_ctx->frame_store[FRAME_OUT_CURRENT].bo = NULL; |
proc_ctx->frame_store[FRAME_OUT_CURRENT].is_internal_surface = 0; |
dri_bo_unreference(proc_ctx->frame_store[FRAME_OUT_CURRENT].bo); |
} |
} |
void hsw_veb_resource_prepare(VADriverContextP ctx, |
struct intel_vebox_context *proc_ctx) |
{ |
VAStatus va_status; |
dri_bo *bo; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
unsigned int input_fourcc, output_fourcc; |
unsigned int input_sampling, output_sampling; |
unsigned int input_tiling, output_tiling; |
unsigned int i, swizzle; |
struct object_surface* obj_surf_in = SURFACE(proc_ctx->surface_input); |
struct object_surface* obj_surf_out = SURFACE(proc_ctx->surface_output); |
assert(obj_surf_in->orig_width == obj_surf_out->orig_width && |
obj_surf_in->orig_height == obj_surf_out->orig_height); |
proc_ctx->pic_width = obj_surf_in->orig_width; |
proc_ctx->pic_height = obj_surf_in->orig_height; |
/* record vebox pipeline input surface format information*/ |
if(obj_surf_in->bo == NULL){ |
input_fourcc = VA_FOURCC('N','V','1','2'); |
input_sampling = SUBSAMPLE_YUV420; |
input_tiling = 1; |
i965_check_alloc_surface_bo(ctx, obj_surf_in, input_tiling, input_fourcc, input_sampling); |
} else { |
input_fourcc = obj_surf_in->fourcc; |
input_sampling = obj_surf_in->subsampling; |
dri_bo_get_tiling(obj_surf_in->bo, &input_tiling, &swizzle); |
input_tiling = !!input_tiling; |
} |
/* record vebox pipeline output surface format information */ |
if(obj_surf_out->bo == NULL){ |
output_fourcc = VA_FOURCC('N','V','1','2'); |
output_sampling = SUBSAMPLE_YUV420; |
output_tiling = 1; |
i965_check_alloc_surface_bo(ctx, obj_surf_out, output_tiling, output_fourcc, output_sampling); |
}else { |
output_fourcc = obj_surf_out->fourcc; |
output_sampling = obj_surf_out->subsampling; |
dri_bo_get_tiling(obj_surf_out->bo, &output_tiling, &swizzle); |
output_tiling = !!output_tiling; |
} |
assert(input_fourcc == VA_FOURCC_NV12 || |
input_fourcc == VA_FOURCC_YUY2 || |
input_fourcc == VA_FOURCC_AYUV || |
input_fourcc == VA_FOURCC_RGBA); |
assert(output_fourcc == VA_FOURCC_NV12 || |
output_fourcc == VA_FOURCC_YUY2 || |
output_fourcc == VA_FOURCC_AYUV || |
output_fourcc == VA_FOURCC_RGBA); |
proc_ctx->fourcc_input = input_fourcc; |
proc_ctx->fourcc_output = output_fourcc; |
/* allocate vebox pipeline surfaces */ |
VASurfaceID surfaces[FRAME_STORE_SUM]; |
va_status = i965_CreateSurfaces(ctx, |
proc_ctx ->pic_width, |
proc_ctx ->pic_height, |
VA_RT_FORMAT_YUV420, |
FRAME_STORE_SUM, |
surfaces); |
assert(va_status == VA_STATUS_SUCCESS); |
for(i = FRAME_IN_CURRENT; i < FRAME_STORE_SUM; i ++) { |
proc_ctx->frame_store[i].surface_id = surfaces[i]; |
struct object_surface* obj_surf = SURFACE(surfaces[i]); |
if( i == FRAME_IN_CURRENT) { |
proc_ctx->frame_store[i].surface_id = proc_ctx->surface_input; |
proc_ctx->frame_store[i].bo = (SURFACE(proc_ctx->surface_input))->bo; |
proc_ctx->frame_store[i].is_internal_surface = 0; |
continue; |
}else if( i == FRAME_IN_PREVIOUS || i == FRAME_OUT_CURRENT_DN) { |
i965_check_alloc_surface_bo(ctx, obj_surf, input_tiling, input_fourcc, input_sampling); |
} else if( i == FRAME_IN_STMM || i == FRAME_OUT_STMM){ |
i965_check_alloc_surface_bo(ctx, obj_surf, 1, input_fourcc, input_sampling); |
} else if( i >= FRAME_OUT_CURRENT){ |
i965_check_alloc_surface_bo(ctx, obj_surf, output_tiling, output_fourcc, output_sampling); |
} |
proc_ctx->frame_store[i].bo = obj_surf->bo; |
dri_bo_reference(proc_ctx->frame_store[i].bo); |
proc_ctx->frame_store[i].is_internal_surface = 1; |
} |
/* alloc dndi state table */ |
dri_bo_unreference(proc_ctx->dndi_state_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vebox: dndi state Buffer", |
0x1000, 0x1000); |
proc_ctx->dndi_state_table.bo = bo; |
dri_bo_reference(proc_ctx->dndi_state_table.bo); |
/* alloc iecp state table */ |
dri_bo_unreference(proc_ctx->iecp_state_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vebox: iecp state Buffer", |
0x1000, 0x1000); |
proc_ctx->iecp_state_table.bo = bo; |
dri_bo_reference(proc_ctx->iecp_state_table.bo); |
/* alloc gamut state table */ |
dri_bo_unreference(proc_ctx->gamut_state_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vebox: gamut state Buffer", |
0x1000, 0x1000); |
proc_ctx->gamut_state_table.bo = bo; |
dri_bo_reference(proc_ctx->gamut_state_table.bo); |
/* alloc vertex state table */ |
dri_bo_unreference(proc_ctx->vertex_state_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vertex: iecp state Buffer", |
0x1000, 0x1000); |
proc_ctx->vertex_state_table.bo = bo; |
dri_bo_reference(proc_ctx->vertex_state_table.bo); |
} |
VAStatus gen75_vebox_process_picture(VADriverContextP ctx, |
struct intel_vebox_context *proc_ctx) |
{ |
VAStatus va_status = VA_STATUS_SUCCESS; |
if(proc_ctx->is_first_frame) |
hsw_veb_resource_prepare(ctx, proc_ctx); |
hsw_veb_surface_reference(ctx, proc_ctx); |
intel_batchbuffer_start_atomic_veb(proc_ctx->batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(proc_ctx->batch); |
hsw_veb_surface_state(ctx, proc_ctx, INPUT_SURFACE); |
hsw_veb_surface_state(ctx, proc_ctx, OUTPUT_SURFACE); |
hsw_veb_state_table_setup(ctx, proc_ctx); |
hsw_veb_state_command(ctx, proc_ctx); |
hsw_veb_dndi_iecp_command(ctx, proc_ctx); |
intel_batchbuffer_end_atomic(proc_ctx->batch); |
intel_batchbuffer_flush(proc_ctx->batch); |
hsw_veb_surface_unreference(ctx, proc_ctx); |
if(proc_ctx->is_first_frame) |
proc_ctx->is_first_frame = 0; |
return va_status; |
} |
void gen75_vebox_context_destroy(VADriverContextP ctx, |
struct intel_vebox_context *proc_ctx) |
{ |
int i; |
/* release vebox pipeline surface */ |
for(i = 0; i < FRAME_STORE_SUM; i ++) { |
if(proc_ctx->frame_store[i].is_internal_surface){ |
dri_bo_unreference(proc_ctx->frame_store[i].bo); |
} |
proc_ctx->frame_store[i].surface_id = -1; |
proc_ctx->frame_store[i].bo = NULL; |
} |
/* release dndi state table */ |
dri_bo_unreference(proc_ctx->dndi_state_table.bo); |
proc_ctx->dndi_state_table.bo = NULL; |
/* release iecp state table */ |
dri_bo_unreference(proc_ctx->iecp_state_table.bo); |
proc_ctx->dndi_state_table.bo = NULL; |
intel_batchbuffer_free(proc_ctx->batch); |
free(proc_ctx); |
} |
struct intel_vebox_context * gen75_vebox_context_init(VADriverContextP ctx) |
{ |
struct intel_driver_data *intel = intel_driver_data(ctx); |
struct intel_vebox_context *proc_context = calloc(1, sizeof(struct intel_vebox_context)); |
proc_context->batch = intel_batchbuffer_new(intel, I915_EXEC_VEBOX, 0); |
memset(proc_context->frame_store, 0, sizeof(VEBFrameStore)*FRAME_STORE_SUM); |
proc_context->filters_mask = 0; |
proc_context->is_first_frame = 1; |
proc_context->filters_mask = 0; |
return proc_context; |
} |
/drivers/video/i965/gen75_vpp_vebox.h |
---|
0,0 → 1,134 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Li Xiaowei <xiaowei.a.li@intel.com> |
* |
*/ |
#ifndef _GEN75_VPP_VEBOX_H |
#define _GEN75_VPP_VEBOX_H |
#include <xf86drm.h> |
#include <drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
#include "i965_drv_video.h" |
#define INPUT_SURFACE 0 |
#define OUTPUT_SURFACE 1 |
#define VPP_DNDI_DN 0x00000001 |
#define VPP_DNDI_DI 0x00000002 |
#define VPP_IECP_STD_STE 0x00000100 |
#define VPP_IECP_ACE 0x00000200 |
#define VPP_IECP_TCC 0x00000400 |
#define VPP_IECP_PRO_AMP 0x00000800 |
#define VPP_IECP_CSC 0x00001000 |
#define VPP_IECP_AOI 0x00002000 |
#define MAX_FILTER_SUM 8 |
enum { |
FRAME_IN_CURRENT = 0, |
FRAME_IN_PREVIOUS, |
FRAME_IN_STMM, |
FRAME_OUT_STMM, |
FRAME_OUT_CURRENT_DN, |
FRAME_OUT_CURRENT, |
FRAME_OUT_PREVIOUS, |
FRAME_OUT_STATISTIC, |
FRAME_STORE_SUM, |
}; |
enum SURFACE_FORMAT{ |
YCRCB_NORMAL = 0, |
YCRCB_SWAPUVY, |
YCRCB_SWAPUV, |
YCRCB_SWAPY, |
PLANAR_420_8, //NV12 |
PACKED_444A_8, |
PACKED_422_16, |
R10G10B10A2_UNORM_SRGB, |
R8G8B8A8_UNORM_SRGB, |
PACKED_444_16, |
PLANAR_422_16, |
Y8_UNORM, |
PLANAR_420_16, |
R16G16B16A16, |
SURFACE_FORMAT_SUM |
}; |
typedef struct veb_frame_store { |
VASurfaceID surface_id; |
dri_bo *bo; |
unsigned char is_internal_surface; |
} VEBFrameStore; |
typedef struct veb_buffer { |
dri_bo *bo; |
void * ptr; |
unsigned char valid; |
} VEBBuffer; |
struct intel_vebox_context |
{ |
struct intel_batchbuffer *batch; |
VASurfaceID surface_input; |
VASurfaceID surface_output; |
unsigned int fourcc_input; |
unsigned int fourcc_output; |
unsigned int pic_width; |
unsigned int pic_height; |
VEBFrameStore frame_store[FRAME_STORE_SUM]; |
VEBBuffer dndi_state_table; |
VEBBuffer iecp_state_table; |
VEBBuffer gamut_state_table; |
VEBBuffer vertex_state_table; |
unsigned int filters_mask; |
unsigned char is_first_frame; |
/* |
VAProcPipelineParameterBuffer * pipeline_param; |
void * filter_dn; |
void * filter_di; |
void * filter_iecp_std; |
void * filter_iecp_ace; |
void * filter_iecp_tcc; |
void * filter_iecp_amp; |
void * filter_iecp_csc; |
*/ |
}; |
VAStatus gen75_vebox_process_picture(VADriverContextP ctx, |
struct intel_vebox_context *proc_ctx); |
void gen75_vebox_context_destroy(VADriverContextP ctx, |
struct intel_vebox_context *proc_ctx); |
struct intel_vebox_context * gen75_vebox_context_init(VADriverContextP ctx); |
#endif |
/drivers/video/i965/gen7_mfd.c |
---|
0,0 → 1,2821 |
/* |
* Copyright © 2011 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#ifndef HAVE_GEN_AVC_SURFACE |
#define HAVE_GEN_AVC_SURFACE 1 |
#endif |
#include "sysdeps.h" |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_decoder_utils.h" |
#include "gen7_mfd.h" |
static const uint32_t zigzag_direct[64] = { |
0, 1, 8, 16, 9, 2, 3, 10, |
17, 24, 32, 25, 18, 11, 4, 5, |
12, 19, 26, 33, 40, 48, 41, 34, |
27, 20, 13, 6, 7, 14, 21, 28, |
35, 42, 49, 56, 57, 50, 43, 36, |
29, 22, 15, 23, 30, 37, 44, 51, |
58, 59, 52, 45, 38, 31, 39, 46, |
53, 60, 61, 54, 47, 55, 62, 63 |
}; |
static void |
gen7_mfd_avc_frame_store_index(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i, j; |
assert(ARRAY_ELEMS(gen7_mfd_context->reference_surface) == ARRAY_ELEMS(pic_param->ReferenceFrames)); |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
int found = 0; |
if (gen7_mfd_context->reference_surface[i].surface_id == VA_INVALID_ID) |
continue; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
VAPictureH264 *ref_pic = &pic_param->ReferenceFrames[j]; |
if (ref_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (gen7_mfd_context->reference_surface[i].surface_id == ref_pic->picture_id) { |
found = 1; |
break; |
} |
} |
if (!found) { |
struct object_surface *obj_surface = SURFACE(gen7_mfd_context->reference_surface[i].surface_id); |
obj_surface->flags &= ~SURFACE_REFERENCED; |
if ((obj_surface->flags & SURFACE_ALL_MASK) == SURFACE_DISPLAYED) { |
dri_bo_unreference(obj_surface->bo); |
obj_surface->bo = NULL; |
obj_surface->flags &= ~SURFACE_REF_DIS_MASK; |
} |
if (obj_surface->free_private_data) |
obj_surface->free_private_data(&obj_surface->private_data); |
gen7_mfd_context->reference_surface[i].surface_id = VA_INVALID_ID; |
gen7_mfd_context->reference_surface[i].frame_store_id = -1; |
} |
} |
for (i = 0; i < ARRAY_ELEMS(pic_param->ReferenceFrames); i++) { |
VAPictureH264 *ref_pic = &pic_param->ReferenceFrames[i]; |
int found = 0; |
if (ref_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
for (j = 0; j < ARRAY_ELEMS(gen7_mfd_context->reference_surface); j++) { |
if (gen7_mfd_context->reference_surface[j].surface_id == VA_INVALID_ID) |
continue; |
if (gen7_mfd_context->reference_surface[j].surface_id == ref_pic->picture_id) { |
found = 1; |
break; |
} |
} |
if (!found) { |
int frame_idx; |
struct object_surface *obj_surface = SURFACE(ref_pic->picture_id); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
for (frame_idx = 0; frame_idx < ARRAY_ELEMS(gen7_mfd_context->reference_surface); frame_idx++) { |
for (j = 0; j < ARRAY_ELEMS(gen7_mfd_context->reference_surface); j++) { |
if (gen7_mfd_context->reference_surface[j].surface_id == VA_INVALID_ID) |
continue; |
if (gen7_mfd_context->reference_surface[j].frame_store_id == frame_idx) |
break; |
} |
if (j == ARRAY_ELEMS(gen7_mfd_context->reference_surface)) |
break; |
} |
assert(frame_idx < ARRAY_ELEMS(gen7_mfd_context->reference_surface)); |
for (j = 0; j < ARRAY_ELEMS(gen7_mfd_context->reference_surface); j++) { |
if (gen7_mfd_context->reference_surface[j].surface_id == VA_INVALID_ID) { |
gen7_mfd_context->reference_surface[j].surface_id = ref_pic->picture_id; |
gen7_mfd_context->reference_surface[j].frame_store_id = frame_idx; |
break; |
} |
} |
} |
} |
/* sort */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface) - 1; i++) { |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID && |
gen7_mfd_context->reference_surface[i].frame_store_id == i) |
continue; |
for (j = i + 1; j < ARRAY_ELEMS(gen7_mfd_context->reference_surface); j++) { |
if (gen7_mfd_context->reference_surface[j].surface_id != VA_INVALID_ID && |
gen7_mfd_context->reference_surface[j].frame_store_id == i) { |
VASurfaceID id = gen7_mfd_context->reference_surface[i].surface_id; |
int frame_idx = gen7_mfd_context->reference_surface[i].frame_store_id; |
gen7_mfd_context->reference_surface[i].surface_id = gen7_mfd_context->reference_surface[j].surface_id; |
gen7_mfd_context->reference_surface[i].frame_store_id = gen7_mfd_context->reference_surface[j].frame_store_id; |
gen7_mfd_context->reference_surface[j].surface_id = id; |
gen7_mfd_context->reference_surface[j].frame_store_id = frame_idx; |
break; |
} |
} |
} |
} |
static void |
gen7_mfd_init_avc_surface(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
struct object_surface *obj_surface) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
GenAvcSurface *gen7_avc_surface = obj_surface->private_data; |
int width_in_mbs, height_in_mbs; |
obj_surface->free_private_data = gen_free_avc_surface; |
width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; /* frame height */ |
if (!gen7_avc_surface) { |
gen7_avc_surface = calloc(sizeof(GenAvcSurface), 1); |
assert((obj_surface->size & 0x3f) == 0); |
obj_surface->private_data = gen7_avc_surface; |
} |
gen7_avc_surface->dmv_bottom_flag = (pic_param->pic_fields.bits.field_pic_flag && |
!pic_param->seq_fields.bits.direct_8x8_inference_flag); |
if (gen7_avc_surface->dmv_top == NULL) { |
gen7_avc_surface->dmv_top = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
width_in_mbs * (height_in_mbs + 1) * 64, |
0x1000); |
assert(gen7_avc_surface->dmv_top); |
} |
if (gen7_avc_surface->dmv_bottom_flag && |
gen7_avc_surface->dmv_bottom == NULL) { |
gen7_avc_surface->dmv_bottom = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
width_in_mbs * (height_in_mbs + 1) * 64, |
0x1000); |
assert(gen7_avc_surface->dmv_bottom); |
} |
} |
static void |
gen7_mfd_pipe_mode_select(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
assert(standard_select == MFX_FORMAT_MPEG2 || |
standard_select == MFX_FORMAT_AVC || |
standard_select == MFX_FORMAT_VC1 || |
standard_select == MFX_FORMAT_JPEG); |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFX_PIPE_MODE_SELECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
(MFX_LONG_MODE << 17) | /* Currently only support long format */ |
(MFD_MODE_VLD << 15) | /* VLD mode */ |
(0 << 10) | /* disable Stream-Out */ |
(gen7_mfd_context->post_deblocking_output.valid << 9) | /* Post Deblocking Output */ |
(gen7_mfd_context->pre_deblocking_output.valid << 8) | /* Pre Deblocking Output */ |
(0 << 5) | /* not in stitch mode */ |
(MFX_CODEC_DECODE << 4) | /* decoding mode */ |
(standard_select << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 4) | /* terminate if AVC motion and POC table error occurs */ |
(0 << 3) | /* terminate if AVC mbdata error occurs */ |
(0 << 2) | /* terminate if AVC CABAC/CAVLC decode error occurs */ |
(0 << 1) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, 0); /* pic status/error report id */ |
OUT_BCS_BATCH(batch, 0); /* reserved */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_surface_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(decode_state->current_render_target); |
unsigned int y_cb_offset; |
unsigned int y_cr_offset; |
assert(obj_surface); |
y_cb_offset = obj_surface->y_cb_offset; |
y_cr_offset = obj_surface->y_cr_offset; |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_SURFACE_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
((obj_surface->orig_height - 1) << 18) | |
((obj_surface->orig_width - 1) << 4)); |
OUT_BCS_BATCH(batch, |
(MFX_SURFACE_PLANAR_420_8 << 28) | /* 420 planar YUV surface */ |
((standard_select != MFX_FORMAT_JPEG) << 27) | /* interleave chroma, set to 0 for JPEG */ |
(0 << 22) | /* surface object control state, ignored */ |
((obj_surface->width - 1) << 3) | /* pitch */ |
(0 << 2) | /* must be 0 */ |
(1 << 1) | /* must be tiled */ |
(I965_TILEWALK_YMAJOR << 0)); /* tile walk, must be 1 */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* X offset for U(Cb), must be 0 */ |
(y_cb_offset << 0)); /* Y offset for U(Cb) */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* X offset for V(Cr), must be 0 */ |
(y_cr_offset << 0)); /* Y offset for V(Cr), must be 0 for video codec, non-zoro for JPEG */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_pipe_buf_addr_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i; |
BEGIN_BCS_BATCH(batch, 24); |
OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (24 - 2)); |
if (gen7_mfd_context->pre_deblocking_output.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->pre_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen7_mfd_context->post_deblocking_output.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->post_deblocking_output.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
if (gen7_mfd_context->intra_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->intra_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
/* DW 7..22 */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
struct object_surface *obj_surface; |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
obj_surface = SURFACE(gen7_mfd_context->reference_surface[i].surface_id); |
assert(obj_surface && obj_surface->bo); |
OUT_BCS_RELOC(batch, obj_surface->bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
} else { |
OUT_BCS_BATCH(batch, 0); |
} |
} |
OUT_BCS_BATCH(batch, 0); /* ignore DW23 for decoding */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_ind_obj_base_addr_state(VADriverContextP ctx, |
dri_bo *slice_data_bo, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 11); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (11 - 2)); |
OUT_BCS_RELOC(batch, slice_data_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); /* MFX Indirect Bitstream Object Base Address */ |
OUT_BCS_BATCH(batch, 0x80000000); /* must set, up to 2G */ |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_bsp_buf_base_addr_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
int standard_select, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (4 - 2)); |
if (gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen7_mfd_context->mpr_row_store_scratch_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->mpr_row_store_scratch_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (gen7_mfd_context->bitplane_read_buffer.valid) |
OUT_BCS_RELOC(batch, gen7_mfd_context->bitplane_read_buffer.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_qm_state(VADriverContextP ctx, |
int qm_type, |
unsigned char *qm, |
int qm_length, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
unsigned int qm_buffer[16]; |
assert(qm_length <= 16 * 4); |
memcpy(qm_buffer, qm, qm_length); |
BEGIN_BCS_BATCH(batch, 18); |
OUT_BCS_BATCH(batch, MFX_QM_STATE | (18 - 2)); |
OUT_BCS_BATCH(batch, qm_type << 0); |
intel_batchbuffer_data(batch, qm_buffer, 16 * 4); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_avc_img_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int img_struct; |
int mbaff_frame_flag; |
unsigned int width_in_mbs, height_in_mbs; |
VAPictureParameterBufferH264 *pic_param; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
assert(!(pic_param->CurrPic.flags & VA_PICTURE_H264_INVALID)); |
if (pic_param->CurrPic.flags & VA_PICTURE_H264_TOP_FIELD) |
img_struct = 1; |
else if (pic_param->CurrPic.flags & VA_PICTURE_H264_BOTTOM_FIELD) |
img_struct = 3; |
else |
img_struct = 0; |
if ((img_struct & 0x1) == 0x1) { |
assert(pic_param->pic_fields.bits.field_pic_flag == 0x1); |
} else { |
assert(pic_param->pic_fields.bits.field_pic_flag == 0x0); |
} |
if (pic_param->seq_fields.bits.frame_mbs_only_flag) { /* a frame containing only frame macroblocks */ |
assert(pic_param->seq_fields.bits.mb_adaptive_frame_field_flag == 0); |
assert(pic_param->pic_fields.bits.field_pic_flag == 0); |
} else { |
assert(pic_param->seq_fields.bits.direct_8x8_inference_flag == 1); /* see H.264 spec */ |
} |
mbaff_frame_flag = (pic_param->seq_fields.bits.mb_adaptive_frame_field_flag && |
!pic_param->pic_fields.bits.field_pic_flag); |
width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; /* frame height */ |
/* MFX unit doesn't support 4:2:2 and 4:4:4 picture */ |
assert(pic_param->seq_fields.bits.chroma_format_idc == 0 || /* monochrome picture */ |
pic_param->seq_fields.bits.chroma_format_idc == 1); /* 4:2:0 */ |
assert(pic_param->seq_fields.bits.residual_colour_transform_flag == 0); /* only available for 4:4:4 */ |
BEGIN_BCS_BATCH(batch, 16); |
OUT_BCS_BATCH(batch, MFX_AVC_IMG_STATE | (16 - 2)); |
OUT_BCS_BATCH(batch, |
width_in_mbs * height_in_mbs); |
OUT_BCS_BATCH(batch, |
((height_in_mbs - 1) << 16) | |
((width_in_mbs - 1) << 0)); |
OUT_BCS_BATCH(batch, |
((pic_param->second_chroma_qp_index_offset & 0x1f) << 24) | |
((pic_param->chroma_qp_index_offset & 0x1f) << 16) | |
(0 << 14) | /* Max-bit conformance Intra flag ??? FIXME */ |
(0 << 13) | /* Max Macroblock size conformance Inter flag ??? FIXME */ |
(pic_param->pic_fields.bits.weighted_pred_flag << 12) | /* differ from GEN6 */ |
(pic_param->pic_fields.bits.weighted_bipred_idc << 10) | |
(img_struct << 8)); |
OUT_BCS_BATCH(batch, |
(pic_param->seq_fields.bits.chroma_format_idc << 10) | |
(pic_param->pic_fields.bits.entropy_coding_mode_flag << 7) | |
((!pic_param->pic_fields.bits.reference_pic_flag) << 6) | |
(pic_param->pic_fields.bits.constrained_intra_pred_flag << 5) | |
(pic_param->seq_fields.bits.direct_8x8_inference_flag << 4) | |
(pic_param->pic_fields.bits.transform_8x8_mode_flag << 3) | |
(pic_param->seq_fields.bits.frame_mbs_only_flag << 2) | |
(mbaff_frame_flag << 1) | |
(pic_param->pic_fields.bits.field_pic_flag << 0)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_avc_qm_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAIQMatrixBufferH264 *iq_matrix; |
VAPictureParameterBufferH264 *pic_param; |
if (decode_state->iq_matrix && decode_state->iq_matrix->buffer) |
iq_matrix = (VAIQMatrixBufferH264 *)decode_state->iq_matrix->buffer; |
else |
iq_matrix = &gen7_mfd_context->iq_matrix.h264; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
gen7_mfd_qm_state(ctx, MFX_QM_AVC_4X4_INTRA_MATRIX, &iq_matrix->ScalingList4x4[0][0], 3 * 16, gen7_mfd_context); |
gen7_mfd_qm_state(ctx, MFX_QM_AVC_4X4_INTER_MATRIX, &iq_matrix->ScalingList4x4[3][0], 3 * 16, gen7_mfd_context); |
if (pic_param->pic_fields.bits.transform_8x8_mode_flag) { |
gen7_mfd_qm_state(ctx, MFX_QM_AVC_8x8_INTRA_MATRIX, &iq_matrix->ScalingList8x8[0][0], 64, gen7_mfd_context); |
gen7_mfd_qm_state(ctx, MFX_QM_AVC_8x8_INTER_MATRIX, &iq_matrix->ScalingList8x8[1][0], 64, gen7_mfd_context); |
} |
} |
static void |
gen7_mfd_avc_directmode_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
struct object_surface *obj_surface; |
GenAvcSurface *gen7_avc_surface; |
VAPictureH264 *va_pic; |
int i, j; |
BEGIN_BCS_BATCH(batch, 69); |
OUT_BCS_BATCH(batch, MFX_AVC_DIRECTMODE_STATE | (69 - 2)); |
/* reference surfaces 0..15 */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
obj_surface = SURFACE(gen7_mfd_context->reference_surface[i].surface_id); |
assert(obj_surface); |
gen7_avc_surface = obj_surface->private_data; |
if (gen7_avc_surface == NULL) { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} else { |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
if (gen7_avc_surface->dmv_bottom_flag == 1) |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_bottom, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
} |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
/* the current decoding frame/field */ |
va_pic = &pic_param->CurrPic; |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface && obj_surface->bo && obj_surface->private_data); |
gen7_avc_surface = obj_surface->private_data; |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
if (gen7_avc_surface->dmv_bottom_flag == 1) |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_bottom, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_RELOC(batch, gen7_avc_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
/* POC List */ |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
if (gen7_mfd_context->reference_surface[i].surface_id != VA_INVALID_ID) { |
int found = 0; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
va_pic = &pic_param->ReferenceFrames[j]; |
if (va_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (va_pic->picture_id == gen7_mfd_context->reference_surface[i].surface_id) { |
found = 1; |
break; |
} |
} |
assert(found == 1); |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
OUT_BCS_BATCH(batch, va_pic->TopFieldOrderCnt); |
OUT_BCS_BATCH(batch, va_pic->BottomFieldOrderCnt); |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
va_pic = &pic_param->CurrPic; |
OUT_BCS_BATCH(batch, va_pic->TopFieldOrderCnt); |
OUT_BCS_BATCH(batch, va_pic->BottomFieldOrderCnt); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_avc_slice_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
VASliceParameterBufferH264 *next_slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
int height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; |
int slice_hor_pos, slice_ver_pos, next_slice_hor_pos, next_slice_ver_pos; |
int num_ref_idx_l0, num_ref_idx_l1; |
int mbaff_picture = (!pic_param->pic_fields.bits.field_pic_flag && |
pic_param->seq_fields.bits.mb_adaptive_frame_field_flag); |
int first_mb_in_slice = 0, first_mb_in_next_slice = 0; |
int slice_type; |
if (slice_param->slice_type == SLICE_TYPE_I || |
slice_param->slice_type == SLICE_TYPE_SI) { |
slice_type = SLICE_TYPE_I; |
} else if (slice_param->slice_type == SLICE_TYPE_P || |
slice_param->slice_type == SLICE_TYPE_SP) { |
slice_type = SLICE_TYPE_P; |
} else { |
assert(slice_param->slice_type == SLICE_TYPE_B); |
slice_type = SLICE_TYPE_B; |
} |
if (slice_type == SLICE_TYPE_I) { |
assert(slice_param->num_ref_idx_l0_active_minus1 == 0); |
assert(slice_param->num_ref_idx_l1_active_minus1 == 0); |
num_ref_idx_l0 = 0; |
num_ref_idx_l1 = 0; |
} else if (slice_type == SLICE_TYPE_P) { |
assert(slice_param->num_ref_idx_l1_active_minus1 == 0); |
num_ref_idx_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; |
num_ref_idx_l1 = 0; |
} else { |
num_ref_idx_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; |
num_ref_idx_l1 = slice_param->num_ref_idx_l1_active_minus1 + 1; |
} |
first_mb_in_slice = slice_param->first_mb_in_slice << mbaff_picture; |
slice_hor_pos = first_mb_in_slice % width_in_mbs; |
slice_ver_pos = first_mb_in_slice / width_in_mbs; |
if (next_slice_param) { |
first_mb_in_next_slice = next_slice_param->first_mb_in_slice << mbaff_picture; |
next_slice_hor_pos = first_mb_in_next_slice % width_in_mbs; |
next_slice_ver_pos = first_mb_in_next_slice / width_in_mbs; |
} else { |
next_slice_hor_pos = 0; |
next_slice_ver_pos = height_in_mbs / (1 + !!pic_param->pic_fields.bits.field_pic_flag); |
} |
BEGIN_BCS_BATCH(batch, 11); /* FIXME: is it 10??? */ |
OUT_BCS_BATCH(batch, MFX_AVC_SLICE_STATE | (11 - 2)); |
OUT_BCS_BATCH(batch, slice_type); |
OUT_BCS_BATCH(batch, |
(num_ref_idx_l1 << 24) | |
(num_ref_idx_l0 << 16) | |
(slice_param->chroma_log2_weight_denom << 8) | |
(slice_param->luma_log2_weight_denom << 0)); |
OUT_BCS_BATCH(batch, |
(slice_param->direct_spatial_mv_pred_flag << 29) | |
(slice_param->disable_deblocking_filter_idc << 27) | |
(slice_param->cabac_init_idc << 24) | |
((pic_param->pic_init_qp_minus26 + 26 + slice_param->slice_qp_delta) << 16) | |
((slice_param->slice_beta_offset_div2 & 0xf) << 8) | |
((slice_param->slice_alpha_c0_offset_div2 & 0xf) << 0)); |
OUT_BCS_BATCH(batch, |
(slice_ver_pos << 24) | |
(slice_hor_pos << 16) | |
(first_mb_in_slice << 0)); |
OUT_BCS_BATCH(batch, |
(next_slice_ver_pos << 16) | |
(next_slice_hor_pos << 0)); |
OUT_BCS_BATCH(batch, |
(next_slice_param == NULL) << 19); /* last slice flag */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static inline void |
gen7_mfd_avc_ref_idx_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
gen6_send_avc_ref_idx_state( |
gen7_mfd_context->base.batch, |
slice_param, |
gen7_mfd_context->reference_surface |
); |
} |
static void |
gen7_mfd_avc_weightoffset_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int i, j, num_weight_offset_table = 0; |
short weightoffsets[32 * 6]; |
if ((slice_param->slice_type == SLICE_TYPE_P || |
slice_param->slice_type == SLICE_TYPE_SP) && |
(pic_param->pic_fields.bits.weighted_pred_flag == 1)) { |
num_weight_offset_table = 1; |
} |
if ((slice_param->slice_type == SLICE_TYPE_B) && |
(pic_param->pic_fields.bits.weighted_bipred_idc == 1)) { |
num_weight_offset_table = 2; |
} |
for (i = 0; i < num_weight_offset_table; i++) { |
BEGIN_BCS_BATCH(batch, 98); |
OUT_BCS_BATCH(batch, MFX_AVC_WEIGHTOFFSET_STATE | (98 - 2)); |
OUT_BCS_BATCH(batch, i); |
if (i == 0) { |
for (j = 0; j < 32; j++) { |
weightoffsets[j * 6 + 0] = slice_param->luma_weight_l0[j]; |
weightoffsets[j * 6 + 1] = slice_param->luma_offset_l0[j]; |
weightoffsets[j * 6 + 2] = slice_param->chroma_weight_l0[j][0]; |
weightoffsets[j * 6 + 3] = slice_param->chroma_offset_l0[j][0]; |
weightoffsets[j * 6 + 4] = slice_param->chroma_weight_l0[j][1]; |
weightoffsets[j * 6 + 5] = slice_param->chroma_offset_l0[j][1]; |
} |
} else { |
for (j = 0; j < 32; j++) { |
weightoffsets[j * 6 + 0] = slice_param->luma_weight_l1[j]; |
weightoffsets[j * 6 + 1] = slice_param->luma_offset_l1[j]; |
weightoffsets[j * 6 + 2] = slice_param->chroma_weight_l1[j][0]; |
weightoffsets[j * 6 + 3] = slice_param->chroma_offset_l1[j][0]; |
weightoffsets[j * 6 + 4] = slice_param->chroma_weight_l1[j][1]; |
weightoffsets[j * 6 + 5] = slice_param->chroma_offset_l1[j][1]; |
} |
} |
intel_batchbuffer_data(batch, weightoffsets, sizeof(weightoffsets)); |
ADVANCE_BCS_BATCH(batch); |
} |
} |
static void |
gen7_mfd_avc_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
dri_bo *slice_data_bo, |
VASliceParameterBufferH264 *next_slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
unsigned int slice_data_bit_offset; |
slice_data_bit_offset = avc_get_first_mb_bit_offset( |
slice_data_bo, |
slice_param, |
pic_param->pic_fields.bits.entropy_coding_mode_flag |
); |
/* the input bitsteam format on GEN7 differs from GEN6 */ |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFD_AVC_BSD_OBJECT | (6 - 2)); |
OUT_BCS_BATCH(batch, |
(slice_param->slice_data_size - slice_param->slice_data_offset)); |
OUT_BCS_BATCH(batch, slice_param->slice_data_offset); |
OUT_BCS_BATCH(batch, |
(0 << 31) | |
(0 << 14) | |
(0 << 12) | |
(0 << 10) | |
(0 << 8)); |
OUT_BCS_BATCH(batch, |
((slice_data_bit_offset >> 3) << 16) | |
(1 << 7) | |
(0 << 5) | |
(0 << 4) | |
((next_slice_param == NULL) << 3) | /* LastSlice Flag */ |
(slice_data_bit_offset & 0x7)); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static inline void |
gen7_mfd_avc_context_init( |
VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context |
) |
{ |
/* Initialize flat scaling lists */ |
avc_gen_default_iq_matrix(&gen7_mfd_context->iq_matrix.h264); |
} |
static void |
gen7_mfd_avc_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAPictureParameterBufferH264 *pic_param; |
VASliceParameterBufferH264 *slice_param; |
VAPictureH264 *va_pic; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
dri_bo *bo; |
int i, j, enable_avc_ildb = 0; |
unsigned int width_in_mbs, height_in_mbs; |
for (j = 0; j < decode_state->num_slice_params && enable_avc_ildb == 0; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
assert((slice_param->slice_type == SLICE_TYPE_I) || |
(slice_param->slice_type == SLICE_TYPE_SI) || |
(slice_param->slice_type == SLICE_TYPE_P) || |
(slice_param->slice_type == SLICE_TYPE_SP) || |
(slice_param->slice_type == SLICE_TYPE_B)); |
if (slice_param->disable_deblocking_filter_idc != 1) { |
enable_avc_ildb = 1; |
break; |
} |
slice_param++; |
} |
} |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
gen7_mfd_avc_frame_store_index(ctx, pic_param, gen7_mfd_context); |
width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; |
assert(width_in_mbs > 0 && width_in_mbs <= 256); /* 4K */ |
assert(height_in_mbs > 0 && height_in_mbs <= 256); |
/* Current decoded picture */ |
va_pic = &pic_param->CurrPic; |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface); |
obj_surface->flags &= ~SURFACE_REF_DIS_MASK; |
obj_surface->flags |= (pic_param->pic_fields.bits.reference_pic_flag ? SURFACE_REFERENCED : 0); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
gen7_mfd_init_avc_surface(ctx, pic_param, obj_surface); |
dri_bo_unreference(gen7_mfd_context->post_deblocking_output.bo); |
gen7_mfd_context->post_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->post_deblocking_output.bo); |
gen7_mfd_context->post_deblocking_output.valid = enable_avc_ildb; |
dri_bo_unreference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.valid = !enable_avc_ildb; |
dri_bo_unreference(gen7_mfd_context->intra_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"intra row store", |
width_in_mbs * 64, |
0x1000); |
assert(bo); |
gen7_mfd_context->intra_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->intra_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"deblocking filter row store", |
width_in_mbs * 64 * 4, |
0x1000); |
assert(bo); |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
width_in_mbs * 64 * 2, |
0x1000); |
assert(bo); |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen7_mfd_context->mpr_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"mpr row store", |
width_in_mbs * 64 * 2, |
0x1000); |
assert(bo); |
gen7_mfd_context->mpr_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->mpr_row_store_scratch_buffer.valid = 1; |
gen7_mfd_context->bitplane_read_buffer.valid = 0; |
} |
static void |
gen7_mfd_avc_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferH264 *pic_param; |
VASliceParameterBufferH264 *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
gen7_mfd_avc_decode_init(ctx, decode_state, gen7_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen7_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_AVC, gen7_mfd_context); |
gen7_mfd_surface_state(ctx, decode_state, MFX_FORMAT_AVC, gen7_mfd_context); |
gen7_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_AVC, gen7_mfd_context); |
gen7_mfd_bsp_buf_base_addr_state(ctx, decode_state, MFX_FORMAT_AVC, gen7_mfd_context); |
gen7_mfd_avc_qm_state(ctx, decode_state, gen7_mfd_context); |
gen7_mfd_avc_img_state(ctx, decode_state, gen7_mfd_context); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen7_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_AVC, gen7_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
assert((slice_param->slice_type == SLICE_TYPE_I) || |
(slice_param->slice_type == SLICE_TYPE_SI) || |
(slice_param->slice_type == SLICE_TYPE_P) || |
(slice_param->slice_type == SLICE_TYPE_SP) || |
(slice_param->slice_type == SLICE_TYPE_B)); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen7_mfd_avc_directmode_state(ctx, pic_param, slice_param, gen7_mfd_context); |
gen7_mfd_avc_ref_idx_state(ctx, pic_param, slice_param, gen7_mfd_context); |
gen7_mfd_avc_weightoffset_state(ctx, pic_param, slice_param, gen7_mfd_context); |
gen7_mfd_avc_slice_state(ctx, pic_param, slice_param, next_slice_param, gen7_mfd_context); |
gen7_mfd_avc_bsd_object(ctx, pic_param, slice_param, slice_data_bo, next_slice_param, gen7_mfd_context); |
slice_param++; |
} |
} |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
static void |
gen7_mfd_mpeg2_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAPictureParameterBufferMPEG2 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
dri_bo *bo; |
unsigned int width_in_mbs; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
width_in_mbs = ALIGN(pic_param->horizontal_size, 16) / 16; |
mpeg2_set_reference_surfaces( |
ctx, |
gen7_mfd_context->reference_surface, |
decode_state, |
pic_param |
); |
/* Current decoded picture */ |
obj_surface = SURFACE(decode_state->current_render_target); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
dri_bo_unreference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.valid = 1; |
dri_bo_unreference(gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
width_in_mbs * 96, |
0x1000); |
assert(bo); |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 1; |
gen7_mfd_context->post_deblocking_output.valid = 0; |
gen7_mfd_context->intra_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->mpr_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->bitplane_read_buffer.valid = 0; |
} |
static void |
gen7_mfd_mpeg2_pic_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferMPEG2 *pic_param; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
BEGIN_BCS_BATCH(batch, 13); |
OUT_BCS_BATCH(batch, MFX_MPEG2_PIC_STATE | (13 - 2)); |
OUT_BCS_BATCH(batch, |
(pic_param->f_code & 0xf) << 28 | /* f_code[1][1] */ |
((pic_param->f_code >> 4) & 0xf) << 24 | /* f_code[1][0] */ |
((pic_param->f_code >> 8) & 0xf) << 20 | /* f_code[0][1] */ |
((pic_param->f_code >> 12) & 0xf) << 16 | /* f_code[0][0] */ |
pic_param->picture_coding_extension.bits.intra_dc_precision << 14 | |
pic_param->picture_coding_extension.bits.picture_structure << 12 | |
pic_param->picture_coding_extension.bits.top_field_first << 11 | |
pic_param->picture_coding_extension.bits.frame_pred_frame_dct << 10 | |
pic_param->picture_coding_extension.bits.concealment_motion_vectors << 9 | |
pic_param->picture_coding_extension.bits.q_scale_type << 8 | |
pic_param->picture_coding_extension.bits.intra_vlc_format << 7 | |
pic_param->picture_coding_extension.bits.alternate_scan << 6); |
OUT_BCS_BATCH(batch, |
pic_param->picture_coding_type << 9); |
OUT_BCS_BATCH(batch, |
((ALIGN(pic_param->vertical_size, 16) / 16) - 1) << 16 | |
((ALIGN(pic_param->horizontal_size, 16) / 16) - 1)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_mpeg2_qm_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAIQMatrixBufferMPEG2 * const gen_iq_matrix = &gen7_mfd_context->iq_matrix.mpeg2; |
int i, j; |
/* Update internal QM state */ |
if (decode_state->iq_matrix && decode_state->iq_matrix->buffer) { |
VAIQMatrixBufferMPEG2 * const iq_matrix = |
(VAIQMatrixBufferMPEG2 *)decode_state->iq_matrix->buffer; |
if (gen_iq_matrix->load_intra_quantiser_matrix == -1 || |
iq_matrix->load_intra_quantiser_matrix) { |
gen_iq_matrix->load_intra_quantiser_matrix = |
iq_matrix->load_intra_quantiser_matrix; |
if (iq_matrix->load_intra_quantiser_matrix) { |
for (j = 0; j < 64; j++) |
gen_iq_matrix->intra_quantiser_matrix[zigzag_direct[j]] = |
iq_matrix->intra_quantiser_matrix[j]; |
} |
} |
if (gen_iq_matrix->load_non_intra_quantiser_matrix == -1 || |
iq_matrix->load_non_intra_quantiser_matrix) { |
gen_iq_matrix->load_non_intra_quantiser_matrix = |
iq_matrix->load_non_intra_quantiser_matrix; |
if (iq_matrix->load_non_intra_quantiser_matrix) { |
for (j = 0; j < 64; j++) |
gen_iq_matrix->non_intra_quantiser_matrix[zigzag_direct[j]] = |
iq_matrix->non_intra_quantiser_matrix[j]; |
} |
} |
} |
/* Commit QM state to HW */ |
for (i = 0; i < 2; i++) { |
unsigned char *qm = NULL; |
int qm_type; |
if (i == 0) { |
if (gen_iq_matrix->load_intra_quantiser_matrix) { |
qm = gen_iq_matrix->intra_quantiser_matrix; |
qm_type = MFX_QM_MPEG_INTRA_QUANTIZER_MATRIX; |
} |
} else { |
if (gen_iq_matrix->load_non_intra_quantiser_matrix) { |
qm = gen_iq_matrix->non_intra_quantiser_matrix; |
qm_type = MFX_QM_MPEG_NON_INTRA_QUANTIZER_MATRIX; |
} |
} |
if (!qm) |
continue; |
gen7_mfd_qm_state(ctx, qm_type, qm, 64, gen7_mfd_context); |
} |
} |
static void |
gen7_mfd_mpeg2_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferMPEG2 *pic_param, |
VASliceParameterBufferMPEG2 *slice_param, |
VASliceParameterBufferMPEG2 *next_slice_param, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
unsigned int width_in_mbs = ALIGN(pic_param->horizontal_size, 16) / 16; |
int mb_count, vpos0, hpos0, vpos1, hpos1, is_field_pic_wa, is_field_pic = 0; |
if (pic_param->picture_coding_extension.bits.picture_structure == MPEG_TOP_FIELD || |
pic_param->picture_coding_extension.bits.picture_structure == MPEG_BOTTOM_FIELD) |
is_field_pic = 1; |
is_field_pic_wa = is_field_pic && |
gen7_mfd_context->wa_mpeg2_slice_vertical_position > 0; |
vpos0 = slice_param->slice_vertical_position / (1 + is_field_pic_wa); |
hpos0 = slice_param->slice_horizontal_position; |
if (next_slice_param == NULL) { |
vpos1 = ALIGN(pic_param->vertical_size, 16) / 16 / (1 + is_field_pic); |
hpos1 = 0; |
} else { |
vpos1 = next_slice_param->slice_vertical_position / (1 + is_field_pic_wa); |
hpos1 = next_slice_param->slice_horizontal_position; |
} |
mb_count = (vpos1 * width_in_mbs + hpos1) - (vpos0 * width_in_mbs + hpos0); |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFD_MPEG2_BSD_OBJECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_size - (slice_param->macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_offset + (slice_param->macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
hpos0 << 24 | |
vpos0 << 16 | |
mb_count << 8 | |
(next_slice_param == NULL) << 5 | |
(next_slice_param == NULL) << 3 | |
(slice_param->macroblock_offset & 0x7)); |
OUT_BCS_BATCH(batch, |
slice_param->quantiser_scale_code << 24); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_mpeg2_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferMPEG2 *pic_param; |
VASliceParameterBufferMPEG2 *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
gen7_mfd_mpeg2_decode_init(ctx, decode_state, gen7_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen7_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_MPEG2, gen7_mfd_context); |
gen7_mfd_surface_state(ctx, decode_state, MFX_FORMAT_MPEG2, gen7_mfd_context); |
gen7_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_MPEG2, gen7_mfd_context); |
gen7_mfd_bsp_buf_base_addr_state(ctx, decode_state, MFX_FORMAT_MPEG2, gen7_mfd_context); |
gen7_mfd_mpeg2_pic_state(ctx, decode_state, gen7_mfd_context); |
gen7_mfd_mpeg2_qm_state(ctx, decode_state, gen7_mfd_context); |
if (gen7_mfd_context->wa_mpeg2_slice_vertical_position < 0) |
gen7_mfd_context->wa_mpeg2_slice_vertical_position = |
mpeg2_wa_slice_vertical_position(decode_state, pic_param); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferMPEG2 *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen7_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_MPEG2, gen7_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferMPEG2 *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen7_mfd_mpeg2_bsd_object(ctx, pic_param, slice_param, next_slice_param, gen7_mfd_context); |
slice_param++; |
} |
} |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
static const int va_to_gen7_vc1_pic_type[5] = { |
GEN7_VC1_I_PICTURE, |
GEN7_VC1_P_PICTURE, |
GEN7_VC1_B_PICTURE, |
GEN7_VC1_BI_PICTURE, |
GEN7_VC1_P_PICTURE, |
}; |
static const int va_to_gen7_vc1_mv[4] = { |
1, /* 1-MV */ |
2, /* 1-MV half-pel */ |
3, /* 1-MV half-pef bilinear */ |
0, /* Mixed MV */ |
}; |
static const int b_picture_scale_factor[21] = { |
128, 85, 170, 64, 192, |
51, 102, 153, 204, 43, |
215, 37, 74, 111, 148, |
185, 222, 32, 96, 160, |
224, |
}; |
static const int va_to_gen7_vc1_condover[3] = { |
0, |
2, |
3 |
}; |
static const int va_to_gen7_vc1_profile[4] = { |
GEN7_VC1_SIMPLE_PROFILE, |
GEN7_VC1_MAIN_PROFILE, |
GEN7_VC1_RESERVED_PROFILE, |
GEN7_VC1_ADVANCED_PROFILE |
}; |
static void |
gen7_mfd_free_vc1_surface(void **data) |
{ |
struct gen7_vc1_surface *gen7_vc1_surface = *data; |
if (!gen7_vc1_surface) |
return; |
dri_bo_unreference(gen7_vc1_surface->dmv); |
free(gen7_vc1_surface); |
*data = NULL; |
} |
static void |
gen7_mfd_init_vc1_surface(VADriverContextP ctx, |
VAPictureParameterBufferVC1 *pic_param, |
struct object_surface *obj_surface) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen7_vc1_surface *gen7_vc1_surface = obj_surface->private_data; |
int width_in_mbs = ALIGN(pic_param->coded_width, 16) / 16; |
int height_in_mbs = ALIGN(pic_param->coded_height, 16) / 16; |
obj_surface->free_private_data = gen7_mfd_free_vc1_surface; |
if (!gen7_vc1_surface) { |
gen7_vc1_surface = calloc(sizeof(struct gen7_vc1_surface), 1); |
assert((obj_surface->size & 0x3f) == 0); |
obj_surface->private_data = gen7_vc1_surface; |
} |
gen7_vc1_surface->picture_type = pic_param->picture_fields.bits.picture_type; |
if (gen7_vc1_surface->dmv == NULL) { |
gen7_vc1_surface->dmv = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
width_in_mbs * height_in_mbs * 64, |
0x1000); |
} |
} |
static void |
gen7_mfd_vc1_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAPictureParameterBufferVC1 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
int i; |
dri_bo *bo; |
int width_in_mbs; |
int picture_type; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
width_in_mbs = ALIGN(pic_param->coded_width, 16) / 16; |
picture_type = pic_param->picture_fields.bits.picture_type; |
/* reference picture */ |
obj_surface = SURFACE(pic_param->forward_reference_picture); |
if (obj_surface && obj_surface->bo) |
gen7_mfd_context->reference_surface[0].surface_id = pic_param->forward_reference_picture; |
else |
gen7_mfd_context->reference_surface[0].surface_id = VA_INVALID_ID; |
obj_surface = SURFACE(pic_param->backward_reference_picture); |
if (obj_surface && obj_surface->bo) |
gen7_mfd_context->reference_surface[1].surface_id = pic_param->backward_reference_picture; |
else |
gen7_mfd_context->reference_surface[1].surface_id = pic_param->forward_reference_picture; |
/* must do so !!! */ |
for (i = 2; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) |
gen7_mfd_context->reference_surface[i].surface_id = gen7_mfd_context->reference_surface[i % 2].surface_id; |
/* Current decoded picture */ |
obj_surface = SURFACE(decode_state->current_render_target); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
gen7_mfd_init_vc1_surface(ctx, pic_param, obj_surface); |
dri_bo_unreference(gen7_mfd_context->post_deblocking_output.bo); |
gen7_mfd_context->post_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->post_deblocking_output.bo); |
gen7_mfd_context->post_deblocking_output.valid = pic_param->entrypoint_fields.bits.loopfilter; |
dri_bo_unreference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.valid = !pic_param->entrypoint_fields.bits.loopfilter; |
dri_bo_unreference(gen7_mfd_context->intra_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"intra row store", |
width_in_mbs * 64, |
0x1000); |
assert(bo); |
gen7_mfd_context->intra_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->intra_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"deblocking filter row store", |
width_in_mbs * 7 * 64, |
0x1000); |
assert(bo); |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 1; |
dri_bo_unreference(gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
width_in_mbs * 96, |
0x1000); |
assert(bo); |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = bo; |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 1; |
gen7_mfd_context->mpr_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->bitplane_read_buffer.valid = !!pic_param->bitplane_present.value; |
dri_bo_unreference(gen7_mfd_context->bitplane_read_buffer.bo); |
if (gen7_mfd_context->bitplane_read_buffer.valid) { |
int width_in_mbs = ALIGN(pic_param->coded_width, 16) / 16; |
int height_in_mbs = ALIGN(pic_param->coded_height, 16) / 16; |
int bitplane_width = ALIGN(width_in_mbs, 2) / 2; |
int src_w, src_h; |
uint8_t *src = NULL, *dst = NULL; |
assert(decode_state->bit_plane->buffer); |
src = decode_state->bit_plane->buffer; |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"VC-1 Bitplane", |
bitplane_width * height_in_mbs, |
0x1000); |
assert(bo); |
gen7_mfd_context->bitplane_read_buffer.bo = bo; |
dri_bo_map(bo, True); |
assert(bo->virtual); |
dst = bo->virtual; |
for (src_h = 0; src_h < height_in_mbs; src_h++) { |
for(src_w = 0; src_w < width_in_mbs; src_w++) { |
int src_index, dst_index; |
int src_shift; |
uint8_t src_value; |
src_index = (src_h * width_in_mbs + src_w) / 2; |
src_shift = !((src_h * width_in_mbs + src_w) & 1) * 4; |
src_value = ((src[src_index] >> src_shift) & 0xf); |
if (picture_type == GEN7_VC1_SKIPPED_PICTURE){ |
src_value |= 0x2; |
} |
dst_index = src_w / 2; |
dst[dst_index] = ((dst[dst_index] >> 4) | (src_value << 4)); |
} |
if (src_w & 1) |
dst[src_w / 2] >>= 4; |
dst += bitplane_width; |
} |
dri_bo_unmap(bo); |
} else |
gen7_mfd_context->bitplane_read_buffer.bo = NULL; |
} |
static void |
gen7_mfd_vc1_pic_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
int alt_pquant_config = 0, alt_pquant_edge_mask = 0, alt_pq; |
int dquant, dquantfrm, dqprofile, dqdbedge, dqsbedge, dqbilevel; |
int unified_mv_mode; |
int ref_field_pic_polarity = 0; |
int scale_factor = 0; |
int trans_ac_y = 0; |
int dmv_surface_valid = 0; |
int brfd = 0; |
int fcm = 0; |
int picture_type; |
int profile; |
int overlap; |
int interpolation_mode = 0; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
profile = va_to_gen7_vc1_profile[pic_param->sequence_fields.bits.profile]; |
dquant = pic_param->pic_quantizer_fields.bits.dquant; |
dquantfrm = pic_param->pic_quantizer_fields.bits.dq_frame; |
dqprofile = pic_param->pic_quantizer_fields.bits.dq_profile; |
dqdbedge = pic_param->pic_quantizer_fields.bits.dq_db_edge; |
dqsbedge = pic_param->pic_quantizer_fields.bits.dq_sb_edge; |
dqbilevel = pic_param->pic_quantizer_fields.bits.dq_binary_level; |
alt_pq = pic_param->pic_quantizer_fields.bits.alt_pic_quantizer; |
if (dquant == 0) { |
alt_pquant_config = 0; |
alt_pquant_edge_mask = 0; |
} else if (dquant == 2) { |
alt_pquant_config = 1; |
alt_pquant_edge_mask = 0xf; |
} else { |
assert(dquant == 1); |
if (dquantfrm == 0) { |
alt_pquant_config = 0; |
alt_pquant_edge_mask = 0; |
alt_pq = 0; |
} else { |
assert(dquantfrm == 1); |
alt_pquant_config = 1; |
switch (dqprofile) { |
case 3: |
if (dqbilevel == 0) { |
alt_pquant_config = 2; |
alt_pquant_edge_mask = 0; |
} else { |
assert(dqbilevel == 1); |
alt_pquant_config = 3; |
alt_pquant_edge_mask = 0; |
} |
break; |
case 0: |
alt_pquant_edge_mask = 0xf; |
break; |
case 1: |
if (dqdbedge == 3) |
alt_pquant_edge_mask = 0x9; |
else |
alt_pquant_edge_mask = (0x3 << dqdbedge); |
break; |
case 2: |
alt_pquant_edge_mask = (0x1 << dqsbedge); |
break; |
default: |
assert(0); |
} |
} |
} |
if (pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation) { |
assert(pic_param->mv_fields.bits.mv_mode2 < 4); |
unified_mv_mode = va_to_gen7_vc1_mv[pic_param->mv_fields.bits.mv_mode2]; |
} else { |
assert(pic_param->mv_fields.bits.mv_mode < 4); |
unified_mv_mode = va_to_gen7_vc1_mv[pic_param->mv_fields.bits.mv_mode]; |
} |
if (pic_param->sequence_fields.bits.interlace == 1 && |
pic_param->picture_fields.bits.frame_coding_mode != 0) { /* frame-interlace or field-interlace */ |
/* FIXME: calculate reference field picture polarity */ |
assert(0); |
ref_field_pic_polarity = 0; |
} |
if (pic_param->b_picture_fraction < 21) |
scale_factor = b_picture_scale_factor[pic_param->b_picture_fraction]; |
picture_type = va_to_gen7_vc1_pic_type[pic_param->picture_fields.bits.picture_type]; |
if (profile == GEN7_VC1_ADVANCED_PROFILE && |
picture_type == GEN7_VC1_I_PICTURE) |
picture_type = GEN7_VC1_BI_PICTURE; |
if (picture_type == GEN7_VC1_I_PICTURE || picture_type == GEN7_VC1_BI_PICTURE) /* I picture */ |
trans_ac_y = pic_param->transform_fields.bits.transform_ac_codingset_idx2; |
else { |
trans_ac_y = pic_param->transform_fields.bits.transform_ac_codingset_idx1; |
/* |
* 8.3.6.2.1 Transform Type Selection |
* If variable-sized transform coding is not enabled, |
* then the 8x8 transform shall be used for all blocks. |
* it is also MFX_VC1_PIC_STATE requirement. |
*/ |
if (pic_param->transform_fields.bits.variable_sized_transform_flag == 0) { |
pic_param->transform_fields.bits.mb_level_transform_type_flag = 1; |
pic_param->transform_fields.bits.frame_level_transform_type = 0; |
} |
} |
if (picture_type == GEN7_VC1_B_PICTURE) { |
struct gen7_vc1_surface *gen7_vc1_surface = NULL; |
obj_surface = SURFACE(pic_param->backward_reference_picture); |
assert(obj_surface); |
gen7_vc1_surface = obj_surface->private_data; |
if (!gen7_vc1_surface || |
(va_to_gen7_vc1_pic_type[gen7_vc1_surface->picture_type] == GEN7_VC1_I_PICTURE || |
va_to_gen7_vc1_pic_type[gen7_vc1_surface->picture_type] == GEN7_VC1_BI_PICTURE)) |
dmv_surface_valid = 0; |
else |
dmv_surface_valid = 1; |
} |
assert(pic_param->picture_fields.bits.frame_coding_mode < 3); |
if (pic_param->picture_fields.bits.frame_coding_mode < 2) |
fcm = pic_param->picture_fields.bits.frame_coding_mode; |
else { |
if (pic_param->picture_fields.bits.top_field_first) |
fcm = 2; |
else |
fcm = 3; |
} |
if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_B_PICTURE) { /* B picture */ |
brfd = pic_param->reference_fields.bits.reference_distance; |
brfd = (scale_factor * brfd) >> 8; |
brfd = pic_param->reference_fields.bits.reference_distance - brfd - 1; |
if (brfd < 0) |
brfd = 0; |
} |
overlap = 0; |
if (profile != GEN7_VC1_ADVANCED_PROFILE){ |
if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9 && |
pic_param->picture_fields.bits.picture_type != GEN7_VC1_B_PICTURE) { |
overlap = 1; |
} |
}else { |
if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_P_PICTURE && |
pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){ |
overlap = 1; |
} |
if (pic_param->picture_fields.bits.picture_type == GEN7_VC1_I_PICTURE || |
pic_param->picture_fields.bits.picture_type == GEN7_VC1_BI_PICTURE){ |
if (pic_param->pic_quantizer_fields.bits.pic_quantizer_scale >= 9){ |
overlap = 1; |
} else if (va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 2 || |
va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] == 3) { |
overlap = 1; |
} |
} |
} |
assert(pic_param->conditional_overlap_flag < 3); |
assert(pic_param->mv_fields.bits.mv_table < 4); /* FIXME: interlace mode */ |
if (pic_param->mv_fields.bits.mv_mode == VAMvMode1MvHalfPelBilinear || |
(pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation && |
pic_param->mv_fields.bits.mv_mode2 == VAMvMode1MvHalfPelBilinear)) |
interpolation_mode = 9; /* Half-pel bilinear */ |
else if (pic_param->mv_fields.bits.mv_mode == VAMvMode1MvHalfPel || |
(pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation && |
pic_param->mv_fields.bits.mv_mode2 == VAMvMode1MvHalfPel)) |
interpolation_mode = 1; /* Half-pel bicubic */ |
else |
interpolation_mode = 0; /* Quarter-pel bicubic */ |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFD_VC1_LONG_PIC_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, |
(((ALIGN(pic_param->coded_height, 16) / 16) - 1) << 16) | |
((ALIGN(pic_param->coded_width, 16) / 16) - 1)); |
OUT_BCS_BATCH(batch, |
((ALIGN(pic_param->coded_width, 16) / 16 + 1) / 2 - 1) << 24 | |
dmv_surface_valid << 15 | |
(pic_param->pic_quantizer_fields.bits.quantizer == 0) << 14 | /* implicit quantizer */ |
pic_param->rounding_control << 13 | |
pic_param->sequence_fields.bits.syncmarker << 12 | |
interpolation_mode << 8 | |
0 << 7 | /* FIXME: scale up or down ??? */ |
pic_param->range_reduction_frame << 6 | |
pic_param->entrypoint_fields.bits.loopfilter << 5 | |
overlap << 4 | |
!pic_param->picture_fields.bits.is_first_field << 3 | |
(pic_param->sequence_fields.bits.profile == 3) << 0); |
OUT_BCS_BATCH(batch, |
va_to_gen7_vc1_condover[pic_param->conditional_overlap_flag] << 29 | |
picture_type << 26 | |
fcm << 24 | |
alt_pq << 16 | |
pic_param->pic_quantizer_fields.bits.pic_quantizer_scale << 8 | |
scale_factor << 0); |
OUT_BCS_BATCH(batch, |
unified_mv_mode << 28 | |
pic_param->mv_fields.bits.four_mv_switch << 27 | |
pic_param->fast_uvmc_flag << 26 | |
ref_field_pic_polarity << 25 | |
pic_param->reference_fields.bits.num_reference_pictures << 24 | |
pic_param->reference_fields.bits.reference_distance << 20 | |
pic_param->reference_fields.bits.reference_distance << 16 | /* FIXME: ??? */ |
pic_param->mv_fields.bits.extended_dmv_range << 10 | |
pic_param->mv_fields.bits.extended_mv_range << 8 | |
alt_pquant_edge_mask << 4 | |
alt_pquant_config << 2 | |
pic_param->pic_quantizer_fields.bits.half_qp << 1 | |
pic_param->pic_quantizer_fields.bits.pic_quantizer_type << 0); |
OUT_BCS_BATCH(batch, |
!!pic_param->bitplane_present.value << 31 | |
!pic_param->bitplane_present.flags.bp_forward_mb << 30 | |
!pic_param->bitplane_present.flags.bp_mv_type_mb << 29 | |
!pic_param->bitplane_present.flags.bp_skip_mb << 28 | |
!pic_param->bitplane_present.flags.bp_direct_mb << 27 | |
!pic_param->bitplane_present.flags.bp_overflags << 26 | |
!pic_param->bitplane_present.flags.bp_ac_pred << 25 | |
!pic_param->bitplane_present.flags.bp_field_tx << 24 | |
pic_param->mv_fields.bits.mv_table << 20 | |
pic_param->mv_fields.bits.four_mv_block_pattern_table << 18 | |
pic_param->mv_fields.bits.two_mv_block_pattern_table << 16 | |
pic_param->transform_fields.bits.frame_level_transform_type << 12 | |
pic_param->transform_fields.bits.mb_level_transform_type_flag << 11 | |
pic_param->mb_mode_table << 8 | |
trans_ac_y << 6 | |
pic_param->transform_fields.bits.transform_ac_codingset_idx1 << 4 | |
pic_param->transform_fields.bits.intra_transform_dc_table << 3 | |
pic_param->cbp_table << 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_vc1_pred_pipe_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
int intensitycomp_single; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
intensitycomp_single = (pic_param->mv_fields.bits.mv_mode == VAMvModeIntensityCompensation); |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_VC1_PRED_PIPE_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, |
0 << 14 | /* FIXME: double ??? */ |
0 << 12 | |
intensitycomp_single << 10 | |
intensitycomp_single << 8 | |
0 << 4 | /* FIXME: interlace mode */ |
0); |
OUT_BCS_BATCH(batch, |
pic_param->luma_shift << 16 | |
pic_param->luma_scale << 0); /* FIXME: Luma Scaling */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_vc1_directmode_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
dri_bo *dmv_read_buffer = NULL, *dmv_write_buffer = NULL; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
obj_surface = SURFACE(decode_state->current_render_target); |
if (obj_surface && obj_surface->private_data) { |
dmv_write_buffer = ((struct gen7_vc1_surface *)(obj_surface->private_data))->dmv; |
} |
obj_surface = SURFACE(pic_param->backward_reference_picture); |
if (obj_surface && obj_surface->private_data) { |
dmv_read_buffer = ((struct gen7_vc1_surface *)(obj_surface->private_data))->dmv; |
} |
BEGIN_BCS_BATCH(batch, 3); |
OUT_BCS_BATCH(batch, MFX_VC1_DIRECTMODE_STATE | (3 - 2)); |
if (dmv_write_buffer) |
OUT_BCS_RELOC(batch, dmv_write_buffer, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
if (dmv_read_buffer) |
OUT_BCS_RELOC(batch, dmv_read_buffer, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static int |
gen7_mfd_vc1_get_macroblock_bit_offset(uint8_t *buf, int in_slice_data_bit_offset, int profile) |
{ |
int out_slice_data_bit_offset; |
int slice_header_size = in_slice_data_bit_offset / 8; |
int i, j; |
if (profile != 3) |
out_slice_data_bit_offset = in_slice_data_bit_offset; |
else { |
for (i = 0, j = 0; i < slice_header_size; i++, j++) { |
if (!buf[j] && !buf[j + 1] && buf[j + 2] == 3 && buf[j + 3] < 4) { |
i++, j += 2; |
} |
} |
out_slice_data_bit_offset = 8 * j + in_slice_data_bit_offset % 8; |
} |
return out_slice_data_bit_offset; |
} |
static void |
gen7_mfd_vc1_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferVC1 *pic_param, |
VASliceParameterBufferVC1 *slice_param, |
VASliceParameterBufferVC1 *next_slice_param, |
dri_bo *slice_data_bo, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int next_slice_start_vert_pos; |
int macroblock_offset; |
uint8_t *slice_data = NULL; |
dri_bo_map(slice_data_bo, 0); |
slice_data = (uint8_t *)(slice_data_bo->virtual + slice_param->slice_data_offset); |
macroblock_offset = gen7_mfd_vc1_get_macroblock_bit_offset(slice_data, |
slice_param->macroblock_offset, |
pic_param->sequence_fields.bits.profile); |
dri_bo_unmap(slice_data_bo); |
if (next_slice_param) |
next_slice_start_vert_pos = next_slice_param->slice_vertical_position; |
else |
next_slice_start_vert_pos = ALIGN(pic_param->coded_height, 16) / 16; |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFD_VC1_BSD_OBJECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_size - (macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_offset + (macroblock_offset >> 3)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_vertical_position << 16 | |
next_slice_start_vert_pos << 0); |
OUT_BCS_BATCH(batch, |
(macroblock_offset & 0x7)); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_vc1_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferVC1 *pic_param; |
VASliceParameterBufferVC1 *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferVC1 *)decode_state->pic_param->buffer; |
gen7_mfd_vc1_decode_init(ctx, decode_state, gen7_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen7_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_VC1, gen7_mfd_context); |
gen7_mfd_surface_state(ctx, decode_state, MFX_FORMAT_VC1, gen7_mfd_context); |
gen7_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_VC1, gen7_mfd_context); |
gen7_mfd_bsp_buf_base_addr_state(ctx, decode_state, MFX_FORMAT_VC1, gen7_mfd_context); |
gen7_mfd_vc1_pic_state(ctx, decode_state, gen7_mfd_context); |
gen7_mfd_vc1_pred_pipe_state(ctx, decode_state, gen7_mfd_context); |
gen7_mfd_vc1_directmode_state(ctx, decode_state, gen7_mfd_context); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferVC1 *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen7_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_VC1, gen7_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferVC1 *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen7_mfd_vc1_bsd_object(ctx, pic_param, slice_param, next_slice_param, slice_data_bo, gen7_mfd_context); |
slice_param++; |
} |
} |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
#ifdef HAVE_VA_JPEG_DECODE |
static void |
gen7_mfd_jpeg_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
VAPictureParameterBufferJPEGBaseline *pic_param; |
int subsampling = SUBSAMPLE_YUV420; |
pic_param = (VAPictureParameterBufferJPEGBaseline *)decode_state->pic_param->buffer; |
if (pic_param->num_components == 1) |
subsampling = SUBSAMPLE_YUV400; |
else if (pic_param->num_components == 3) { |
int h1 = pic_param->components[0].h_sampling_factor; |
int h2 = pic_param->components[1].h_sampling_factor; |
int h3 = pic_param->components[2].h_sampling_factor; |
int v1 = pic_param->components[0].v_sampling_factor; |
int v2 = pic_param->components[1].v_sampling_factor; |
int v3 = pic_param->components[2].v_sampling_factor; |
if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV420; |
else if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV422H; |
else if (h1 == 1 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV444; |
else if (h1 == 4 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV411; |
else if (h1 == 1 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV422V; |
else if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 2 && v3 == 2) |
subsampling = SUBSAMPLE_YUV422H; |
else if (h2 == 2 && h2 == 2 && h3 == 2 && |
v1 == 2 && v2 == 1 && v3 == 1) |
subsampling = SUBSAMPLE_YUV422V; |
else |
assert(0); |
} else { |
assert(0); |
} |
/* Current decoded picture */ |
obj_surface = SURFACE(decode_state->current_render_target); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('I','M','C','1'), subsampling); |
dri_bo_unreference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.bo = obj_surface->bo; |
dri_bo_reference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.valid = 1; |
gen7_mfd_context->post_deblocking_output.bo = NULL; |
gen7_mfd_context->post_deblocking_output.valid = 0; |
gen7_mfd_context->intra_row_store_scratch_buffer.bo = NULL; |
gen7_mfd_context->intra_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = NULL; |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = NULL; |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->mpr_row_store_scratch_buffer.bo = NULL; |
gen7_mfd_context->mpr_row_store_scratch_buffer.valid = 0; |
gen7_mfd_context->bitplane_read_buffer.bo = NULL; |
gen7_mfd_context->bitplane_read_buffer.valid = 0; |
} |
static const int va_to_gen7_jpeg_rotation[4] = { |
GEN7_JPEG_ROTATION_0, |
GEN7_JPEG_ROTATION_90, |
GEN7_JPEG_ROTATION_180, |
GEN7_JPEG_ROTATION_270 |
}; |
static void |
gen7_mfd_jpeg_pic_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferJPEGBaseline *pic_param; |
int chroma_type = GEN7_YUV420; |
int frame_width_in_blks; |
int frame_height_in_blks; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferJPEGBaseline *)decode_state->pic_param->buffer; |
if (pic_param->num_components == 1) |
chroma_type = GEN7_YUV400; |
else if (pic_param->num_components == 3) { |
int h1 = pic_param->components[0].h_sampling_factor; |
int h2 = pic_param->components[1].h_sampling_factor; |
int h3 = pic_param->components[2].h_sampling_factor; |
int v1 = pic_param->components[0].v_sampling_factor; |
int v2 = pic_param->components[1].v_sampling_factor; |
int v3 = pic_param->components[2].v_sampling_factor; |
if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV420; |
else if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV422H_2Y; |
else if (h1 == 1 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV444; |
else if (h1 == 4 && h2 == 1 && h3 == 1 && |
v1 == 1 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV411; |
else if (h1 == 1 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV422V_2Y; |
else if (h1 == 2 && h2 == 1 && h3 == 1 && |
v1 == 2 && v2 == 2 && v3 == 2) |
chroma_type = GEN7_YUV422H_4Y; |
else if (h2 == 2 && h2 == 2 && h3 == 2 && |
v1 == 2 && v2 == 1 && v3 == 1) |
chroma_type = GEN7_YUV422V_4Y; |
else |
assert(0); |
} |
if (chroma_type == GEN7_YUV400 || |
chroma_type == GEN7_YUV444 || |
chroma_type == GEN7_YUV422V_2Y) { |
frame_width_in_blks = ((pic_param->picture_width + 7) / 8); |
frame_height_in_blks = ((pic_param->picture_height + 7) / 8); |
} else if (chroma_type == GEN7_YUV411) { |
frame_width_in_blks = ((pic_param->picture_width + 31) / 32) * 4; |
frame_height_in_blks = ((pic_param->picture_height + 31) / 32) * 4; |
} else { |
frame_width_in_blks = ((pic_param->picture_width + 15) / 16) * 2; |
frame_height_in_blks = ((pic_param->picture_height + 15) / 16) * 2; |
} |
BEGIN_BCS_BATCH(batch, 3); |
OUT_BCS_BATCH(batch, MFX_JPEG_PIC_STATE | (3 - 2)); |
OUT_BCS_BATCH(batch, |
(va_to_gen7_jpeg_rotation[0] << 4) | /* without rotation */ |
(chroma_type << 0)); |
OUT_BCS_BATCH(batch, |
((frame_height_in_blks - 1) << 16) | /* FrameHeightInBlks */ |
((frame_width_in_blks - 1) << 0)); /* FrameWidthInBlks */ |
ADVANCE_BCS_BATCH(batch); |
} |
static const int va_to_gen7_jpeg_hufftable[2] = { |
MFX_HUFFTABLE_ID_Y, |
MFX_HUFFTABLE_ID_UV |
}; |
static void |
gen7_mfd_jpeg_huff_table_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context, |
int num_tables) |
{ |
VAHuffmanTableBufferJPEGBaseline *huffman_table; |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int index; |
if (!decode_state->huffman_table || !decode_state->huffman_table->buffer) |
return; |
huffman_table = (VAHuffmanTableBufferJPEGBaseline *)decode_state->huffman_table->buffer; |
for (index = 0; index < num_tables; index++) { |
int id = va_to_gen7_jpeg_hufftable[index]; |
BEGIN_BCS_BATCH(batch, 53); |
OUT_BCS_BATCH(batch, MFX_JPEG_HUFF_TABLE_STATE | (53 - 2)); |
OUT_BCS_BATCH(batch, id); |
intel_batchbuffer_data(batch, huffman_table->huffman_table[index].num_dc_codes, 12); |
intel_batchbuffer_data(batch, huffman_table->huffman_table[index].dc_values, 12); |
intel_batchbuffer_data(batch, huffman_table->huffman_table[index].num_ac_codes, 16); |
intel_batchbuffer_data(batch, huffman_table->huffman_table[index].ac_values, 164); |
ADVANCE_BCS_BATCH(batch); |
} |
} |
static const int va_to_gen7_jpeg_qm[5] = { |
-1, |
MFX_QM_JPEG_LUMA_Y_QUANTIZER_MATRIX, |
MFX_QM_JPEG_CHROMA_CB_QUANTIZER_MATRIX, |
MFX_QM_JPEG_CHROMA_CR_QUANTIZER_MATRIX, |
MFX_QM_JPEG_ALPHA_QUANTIZER_MATRIX |
}; |
static void |
gen7_mfd_jpeg_qm_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
VAPictureParameterBufferJPEGBaseline *pic_param; |
VAIQMatrixBufferJPEGBaseline *iq_matrix; |
int index; |
if (!decode_state->iq_matrix || !decode_state->iq_matrix->buffer) |
return; |
iq_matrix = (VAIQMatrixBufferJPEGBaseline *)decode_state->iq_matrix->buffer; |
pic_param = (VAPictureParameterBufferJPEGBaseline *)decode_state->pic_param->buffer; |
assert(pic_param->num_components <= 3); |
for (index = 0; index < pic_param->num_components; index++) { |
int qm_type = va_to_gen7_jpeg_qm[pic_param->components[index].component_id - pic_param->components[0].component_id + 1]; |
unsigned char *qm = iq_matrix->quantiser_table[pic_param->components[index].quantiser_table_selector]; |
unsigned char raster_qm[64]; |
int j; |
if (!iq_matrix->load_quantiser_table[pic_param->components[index].quantiser_table_selector]) |
continue; |
for (j = 0; j < 64; j++) |
raster_qm[zigzag_direct[j]] = qm[j]; |
gen7_mfd_qm_state(ctx, qm_type, raster_qm, 64, gen7_mfd_context); |
} |
} |
static void |
gen7_mfd_jpeg_bsd_object(VADriverContextP ctx, |
VAPictureParameterBufferJPEGBaseline *pic_param, |
VASliceParameterBufferJPEGBaseline *slice_param, |
VASliceParameterBufferJPEGBaseline *next_slice_param, |
dri_bo *slice_data_bo, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int scan_component_mask = 0; |
int i; |
assert(slice_param->num_components > 0); |
assert(slice_param->num_components < 4); |
assert(slice_param->num_components <= pic_param->num_components); |
for (i = 0; i < slice_param->num_components; i++) { |
switch (slice_param->components[i].component_selector - pic_param->components[0].component_id + 1) { |
case 1: |
scan_component_mask |= (1 << 0); |
break; |
case 2: |
scan_component_mask |= (1 << 1); |
break; |
case 3: |
scan_component_mask |= (1 << 2); |
break; |
default: |
assert(0); |
break; |
} |
} |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFD_JPEG_BSD_OBJECT | (6 - 2)); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_size); |
OUT_BCS_BATCH(batch, |
slice_param->slice_data_offset); |
OUT_BCS_BATCH(batch, |
slice_param->slice_horizontal_position << 16 | |
slice_param->slice_vertical_position << 0); |
OUT_BCS_BATCH(batch, |
((slice_param->num_components != 1) << 30) | /* interleaved */ |
(scan_component_mask << 27) | /* scan components */ |
(0 << 26) | /* disable interrupt allowed */ |
(slice_param->num_mcus << 0)); /* MCU count */ |
OUT_BCS_BATCH(batch, |
(slice_param->restart_interval << 0)); /* RestartInterval */ |
ADVANCE_BCS_BATCH(batch); |
} |
/* Workaround for JPEG decoding on Ivybridge */ |
VAStatus |
i965_DestroySurfaces(VADriverContextP ctx, |
VASurfaceID *surface_list, |
int num_surfaces); |
VAStatus |
i965_CreateSurfaces(VADriverContextP ctx, |
int width, |
int height, |
int format, |
int num_surfaces, |
VASurfaceID *surfaces); |
static struct { |
int width; |
int height; |
unsigned char data[32]; |
int data_size; |
int data_bit_offset; |
int qp; |
} gen7_jpeg_wa_clip = { |
16, |
16, |
{ |
0x65, 0xb8, 0x40, 0x32, 0x13, 0xfd, 0x06, 0x6c, |
0xfc, 0x0a, 0x50, 0x71, 0x5c, 0x00 |
}, |
14, |
40, |
28, |
}; |
static void |
gen7_jpeg_wa_init(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
VAStatus status; |
struct object_surface *obj_surface; |
if (gen7_mfd_context->jpeg_wa_surface_id != VA_INVALID_SURFACE) |
i965_DestroySurfaces(ctx, |
&gen7_mfd_context->jpeg_wa_surface_id, |
1); |
status = i965_CreateSurfaces(ctx, |
gen7_jpeg_wa_clip.width, |
gen7_jpeg_wa_clip.height, |
VA_RT_FORMAT_YUV420, |
1, |
&gen7_mfd_context->jpeg_wa_surface_id); |
assert(status == VA_STATUS_SUCCESS); |
obj_surface = SURFACE(gen7_mfd_context->jpeg_wa_surface_id); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N', 'V', '1', '2'), SUBSAMPLE_YUV420); |
if (!gen7_mfd_context->jpeg_wa_slice_data_bo) { |
gen7_mfd_context->jpeg_wa_slice_data_bo = dri_bo_alloc(i965->intel.bufmgr, |
"JPEG WA data", |
0x1000, |
0x1000); |
dri_bo_subdata(gen7_mfd_context->jpeg_wa_slice_data_bo, |
0, |
gen7_jpeg_wa_clip.data_size, |
gen7_jpeg_wa_clip.data); |
} |
} |
static void |
gen7_jpeg_wa_pipe_mode_select(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 5); |
OUT_BCS_BATCH(batch, MFX_PIPE_MODE_SELECT | (5 - 2)); |
OUT_BCS_BATCH(batch, |
(MFX_LONG_MODE << 17) | /* Currently only support long format */ |
(MFD_MODE_VLD << 15) | /* VLD mode */ |
(0 << 10) | /* disable Stream-Out */ |
(0 << 9) | /* Post Deblocking Output */ |
(1 << 8) | /* Pre Deblocking Output */ |
(0 << 5) | /* not in stitch mode */ |
(MFX_CODEC_DECODE << 4) | /* decoding mode */ |
(MFX_FORMAT_AVC << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 4) | /* terminate if AVC motion and POC table error occurs */ |
(0 << 3) | /* terminate if AVC mbdata error occurs */ |
(0 << 2) | /* terminate if AVC CABAC/CAVLC decode error occurs */ |
(0 << 1) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, 0); /* pic status/error report id */ |
OUT_BCS_BATCH(batch, 0); /* reserved */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_jpeg_wa_surface_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(gen7_mfd_context->jpeg_wa_surface_id); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFX_SURFACE_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
((obj_surface->orig_width - 1) << 18) | |
((obj_surface->orig_height - 1) << 4)); |
OUT_BCS_BATCH(batch, |
(MFX_SURFACE_PLANAR_420_8 << 28) | /* 420 planar YUV surface */ |
(1 << 27) | /* interleave chroma, set to 0 for JPEG */ |
(0 << 22) | /* surface object control state, ignored */ |
((obj_surface->width - 1) << 3) | /* pitch */ |
(0 << 2) | /* must be 0 */ |
(1 << 1) | /* must be tiled */ |
(I965_TILEWALK_YMAJOR << 0)); /* tile walk, must be 1 */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* X offset for U(Cb), must be 0 */ |
(obj_surface->y_cb_offset << 0)); /* Y offset for U(Cb) */ |
OUT_BCS_BATCH(batch, |
(0 << 16) | /* X offset for V(Cr), must be 0 */ |
(0 << 0)); /* Y offset for V(Cr), must be 0 for video codec, non-zoro for JPEG */ |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_jpeg_wa_pipe_buf_addr_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(gen7_mfd_context->jpeg_wa_surface_id); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
dri_bo *intra_bo; |
int i; |
intra_bo = dri_bo_alloc(i965->intel.bufmgr, |
"intra row store", |
128 * 64, |
0x1000); |
BEGIN_BCS_BATCH(batch, 24); |
OUT_BCS_BATCH(batch, MFX_PIPE_BUF_ADDR_STATE | (24 - 2)); |
OUT_BCS_RELOC(batch, |
obj_surface->bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); /* post deblocking */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_BATCH(batch, 0); /* ignore for decoding */ |
OUT_BCS_RELOC(batch, |
intra_bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
/* DW 7..22 */ |
for (i = 0; i < MAX_GEN_REFERENCE_FRAMES; i++) { |
OUT_BCS_BATCH(batch, 0); |
} |
OUT_BCS_BATCH(batch, 0); /* ignore DW23 for decoding */ |
ADVANCE_BCS_BATCH(batch); |
dri_bo_unreference(intra_bo); |
} |
static void |
gen7_jpeg_wa_bsp_buf_base_addr_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
dri_bo *bsd_mpc_bo, *mpr_bo; |
bsd_mpc_bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd mpc row store", |
11520, /* 1.5 * 120 * 64 */ |
0x1000); |
mpr_bo = dri_bo_alloc(i965->intel.bufmgr, |
"mpr row store", |
7680, /* 1. 0 * 120 * 64 */ |
0x1000); |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MFX_BSP_BUF_BASE_ADDR_STATE | (4 - 2)); |
OUT_BCS_RELOC(batch, |
bsd_mpc_bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_RELOC(batch, |
mpr_bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
dri_bo_unreference(bsd_mpc_bo); |
dri_bo_unreference(mpr_bo); |
} |
static void |
gen7_jpeg_wa_avc_qm_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
} |
static void |
gen7_jpeg_wa_avc_img_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int img_struct = 0; |
int mbaff_frame_flag = 0; |
unsigned int width_in_mbs = 1, height_in_mbs = 1; |
BEGIN_BCS_BATCH(batch, 16); |
OUT_BCS_BATCH(batch, MFX_AVC_IMG_STATE | (16 - 2)); |
OUT_BCS_BATCH(batch, |
width_in_mbs * height_in_mbs); |
OUT_BCS_BATCH(batch, |
((height_in_mbs - 1) << 16) | |
((width_in_mbs - 1) << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 24) | |
(0 << 16) | |
(0 << 14) | |
(0 << 13) | |
(0 << 12) | /* differ from GEN6 */ |
(0 << 10) | |
(img_struct << 8)); |
OUT_BCS_BATCH(batch, |
(1 << 10) | /* 4:2:0 */ |
(1 << 7) | /* CABAC */ |
(0 << 6) | |
(0 << 5) | |
(0 << 4) | |
(0 << 3) | |
(1 << 2) | |
(mbaff_frame_flag << 1) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_jpeg_wa_avc_directmode_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int i; |
BEGIN_BCS_BATCH(batch, 69); |
OUT_BCS_BATCH(batch, MFX_AVC_DIRECTMODE_STATE | (69 - 2)); |
/* reference surfaces 0..15 */ |
for (i = 0; i < MAX_GEN_REFERENCE_FRAMES; i++) { |
OUT_BCS_BATCH(batch, 0); /* top */ |
OUT_BCS_BATCH(batch, 0); /* bottom */ |
} |
/* the current decoding frame/field */ |
OUT_BCS_BATCH(batch, 0); /* top */ |
OUT_BCS_BATCH(batch, 0); /* bottom */ |
/* POC List */ |
for (i = 0; i < MAX_GEN_REFERENCE_FRAMES; i++) { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_jpeg_wa_ind_obj_base_addr_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
BEGIN_BCS_BATCH(batch, 11); |
OUT_BCS_BATCH(batch, MFX_IND_OBJ_BASE_ADDR_STATE | (11 - 2)); |
OUT_BCS_RELOC(batch, |
gen7_mfd_context->jpeg_wa_slice_data_bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BCS_BATCH(batch, 0x80000000); /* must set, up to 2G */ |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); /* ignore for VLD mode */ |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_jpeg_wa_avc_bsd_object(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
/* the input bitsteam format on GEN7 differs from GEN6 */ |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, MFD_AVC_BSD_OBJECT | (6 - 2)); |
OUT_BCS_BATCH(batch, gen7_jpeg_wa_clip.data_size); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, |
(0 << 31) | |
(0 << 14) | |
(0 << 12) | |
(0 << 10) | |
(0 << 8)); |
OUT_BCS_BATCH(batch, |
((gen7_jpeg_wa_clip.data_bit_offset >> 3) << 16) | |
(0 << 5) | |
(0 << 4) | |
(1 << 3) | /* LastSlice Flag */ |
(gen7_jpeg_wa_clip.data_bit_offset & 0x7)); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_jpeg_wa_avc_slice_state(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
int slice_hor_pos = 0, slice_ver_pos = 0, next_slice_hor_pos = 0, next_slice_ver_pos = 1; |
int num_ref_idx_l0 = 0, num_ref_idx_l1 = 0; |
int first_mb_in_slice = 0; |
int slice_type = SLICE_TYPE_I; |
BEGIN_BCS_BATCH(batch, 11); |
OUT_BCS_BATCH(batch, MFX_AVC_SLICE_STATE | (11 - 2)); |
OUT_BCS_BATCH(batch, slice_type); |
OUT_BCS_BATCH(batch, |
(num_ref_idx_l1 << 24) | |
(num_ref_idx_l0 << 16) | |
(0 << 8) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, |
(0 << 29) | |
(1 << 27) | /* disable Deblocking */ |
(0 << 24) | |
(gen7_jpeg_wa_clip.qp << 16) | |
(0 << 8) | |
(0 << 0)); |
OUT_BCS_BATCH(batch, |
(slice_ver_pos << 24) | |
(slice_hor_pos << 16) | |
(first_mb_in_slice << 0)); |
OUT_BCS_BATCH(batch, |
(next_slice_ver_pos << 16) | |
(next_slice_hor_pos << 0)); |
OUT_BCS_BATCH(batch, (1 << 19)); /* last slice flag */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
gen7_mfd_jpeg_wa(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
gen7_jpeg_wa_init(ctx, gen7_mfd_context); |
intel_batchbuffer_emit_mi_flush(batch); |
gen7_jpeg_wa_pipe_mode_select(ctx, gen7_mfd_context); |
gen7_jpeg_wa_surface_state(ctx, gen7_mfd_context); |
gen7_jpeg_wa_pipe_buf_addr_state(ctx, gen7_mfd_context); |
gen7_jpeg_wa_bsp_buf_base_addr_state(ctx, gen7_mfd_context); |
gen7_jpeg_wa_avc_qm_state(ctx, gen7_mfd_context); |
gen7_jpeg_wa_avc_img_state(ctx, gen7_mfd_context); |
gen7_jpeg_wa_ind_obj_base_addr_state(ctx, gen7_mfd_context); |
gen7_jpeg_wa_avc_directmode_state(ctx, gen7_mfd_context); |
gen7_jpeg_wa_avc_slice_state(ctx, gen7_mfd_context); |
gen7_jpeg_wa_avc_bsd_object(ctx, gen7_mfd_context); |
} |
void |
gen7_mfd_jpeg_decode_picture(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
struct intel_batchbuffer *batch = gen7_mfd_context->base.batch; |
VAPictureParameterBufferJPEGBaseline *pic_param; |
VASliceParameterBufferJPEGBaseline *slice_param, *next_slice_param, *next_slice_group_param; |
dri_bo *slice_data_bo; |
int i, j, max_selector = 0; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferJPEGBaseline *)decode_state->pic_param->buffer; |
/* Currently only support Baseline DCT */ |
gen7_mfd_jpeg_decode_init(ctx, decode_state, gen7_mfd_context); |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
gen7_mfd_jpeg_wa(ctx, gen7_mfd_context); |
intel_batchbuffer_emit_mi_flush(batch); |
gen7_mfd_pipe_mode_select(ctx, decode_state, MFX_FORMAT_JPEG, gen7_mfd_context); |
gen7_mfd_surface_state(ctx, decode_state, MFX_FORMAT_JPEG, gen7_mfd_context); |
gen7_mfd_pipe_buf_addr_state(ctx, decode_state, MFX_FORMAT_JPEG, gen7_mfd_context); |
gen7_mfd_jpeg_pic_state(ctx, decode_state, gen7_mfd_context); |
gen7_mfd_jpeg_qm_state(ctx, decode_state, gen7_mfd_context); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferJPEGBaseline *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen7_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_JPEG, gen7_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferJPEGBaseline *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
int component; |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
for (component = 0; component < slice_param->num_components; component++) { |
if (max_selector < slice_param->components[component].dc_table_selector) |
max_selector = slice_param->components[component].dc_table_selector; |
if (max_selector < slice_param->components[component].ac_table_selector) |
max_selector = slice_param->components[component].ac_table_selector; |
} |
slice_param++; |
} |
} |
assert(max_selector < 2); |
gen7_mfd_jpeg_huff_table_state(ctx, decode_state, gen7_mfd_context, max_selector + 1); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferJPEGBaseline *)decode_state->slice_params[j]->buffer; |
slice_data_bo = decode_state->slice_datas[j]->bo; |
gen7_mfd_ind_obj_base_addr_state(ctx, slice_data_bo, MFX_FORMAT_JPEG, gen7_mfd_context); |
if (j == decode_state->num_slice_params - 1) |
next_slice_group_param = NULL; |
else |
next_slice_group_param = (VASliceParameterBufferJPEGBaseline *)decode_state->slice_params[j + 1]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
if (i < decode_state->slice_params[j]->num_elements - 1) |
next_slice_param = slice_param + 1; |
else |
next_slice_param = next_slice_group_param; |
gen7_mfd_jpeg_bsd_object(ctx, pic_param, slice_param, next_slice_param, slice_data_bo, gen7_mfd_context); |
slice_param++; |
} |
} |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
#endif |
static void |
gen7_mfd_decode_picture(VADriverContextP ctx, |
VAProfile profile, |
union codec_state *codec_state, |
struct hw_context *hw_context) |
{ |
struct gen7_mfd_context *gen7_mfd_context = (struct gen7_mfd_context *)hw_context; |
struct decode_state *decode_state = &codec_state->decode; |
assert(gen7_mfd_context); |
gen7_mfd_context->wa_mpeg2_slice_vertical_position = -1; |
switch (profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
gen7_mfd_mpeg2_decode_picture(ctx, decode_state, gen7_mfd_context); |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
gen7_mfd_avc_decode_picture(ctx, decode_state, gen7_mfd_context); |
break; |
case VAProfileVC1Simple: |
case VAProfileVC1Main: |
case VAProfileVC1Advanced: |
gen7_mfd_vc1_decode_picture(ctx, decode_state, gen7_mfd_context); |
break; |
#ifdef HAVE_VA_JPEG_DECODE |
case VAProfileJPEGBaseline: |
gen7_mfd_jpeg_decode_picture(ctx, decode_state, gen7_mfd_context); |
break; |
#endif |
default: |
assert(0); |
break; |
} |
} |
static void |
gen7_mfd_context_destroy(void *hw_context) |
{ |
struct gen7_mfd_context *gen7_mfd_context = (struct gen7_mfd_context *)hw_context; |
dri_bo_unreference(gen7_mfd_context->post_deblocking_output.bo); |
gen7_mfd_context->post_deblocking_output.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->pre_deblocking_output.bo); |
gen7_mfd_context->pre_deblocking_output.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->intra_row_store_scratch_buffer.bo); |
gen7_mfd_context->intra_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo); |
gen7_mfd_context->deblocking_filter_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo); |
gen7_mfd_context->bsd_mpc_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->mpr_row_store_scratch_buffer.bo); |
gen7_mfd_context->mpr_row_store_scratch_buffer.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->bitplane_read_buffer.bo); |
gen7_mfd_context->bitplane_read_buffer.bo = NULL; |
dri_bo_unreference(gen7_mfd_context->jpeg_wa_slice_data_bo); |
intel_batchbuffer_free(gen7_mfd_context->base.batch); |
free(gen7_mfd_context); |
} |
static void gen7_mfd_mpeg2_context_init(VADriverContextP ctx, |
struct gen7_mfd_context *gen7_mfd_context) |
{ |
gen7_mfd_context->iq_matrix.mpeg2.load_intra_quantiser_matrix = -1; |
gen7_mfd_context->iq_matrix.mpeg2.load_non_intra_quantiser_matrix = -1; |
gen7_mfd_context->iq_matrix.mpeg2.load_chroma_intra_quantiser_matrix = -1; |
gen7_mfd_context->iq_matrix.mpeg2.load_chroma_non_intra_quantiser_matrix = -1; |
} |
struct hw_context * |
gen7_dec_hw_context_init(VADriverContextP ctx, VAProfile profile) |
{ |
struct intel_driver_data *intel = intel_driver_data(ctx); |
struct gen7_mfd_context *gen7_mfd_context = calloc(1, sizeof(struct gen7_mfd_context)); |
int i; |
gen7_mfd_context->base.destroy = gen7_mfd_context_destroy; |
gen7_mfd_context->base.run = gen7_mfd_decode_picture; |
gen7_mfd_context->base.batch = intel_batchbuffer_new(intel, I915_EXEC_RENDER, 0); |
for (i = 0; i < ARRAY_ELEMS(gen7_mfd_context->reference_surface); i++) { |
gen7_mfd_context->reference_surface[i].surface_id = VA_INVALID_ID; |
gen7_mfd_context->reference_surface[i].frame_store_id = -1; |
} |
gen7_mfd_context->jpeg_wa_surface_id = VA_INVALID_SURFACE; |
switch (profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
gen7_mfd_mpeg2_context_init(ctx, gen7_mfd_context); |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
gen7_mfd_avc_context_init(ctx, gen7_mfd_context); |
break; |
default: |
break; |
} |
return (struct hw_context *)gen7_mfd_context; |
} |
/drivers/video/i965/gen7_mfd.h |
---|
0,0 → 1,95 |
/* |
* Copyright © 2011 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#ifndef _GEN7_MFD_H_ |
#define _GEN7_MFD_H_ |
#include <xf86drm.h> |
#include <drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
#include "i965_decoder.h" |
#define GEN7_VC1_I_PICTURE 0 |
#define GEN7_VC1_P_PICTURE 1 |
#define GEN7_VC1_B_PICTURE 2 |
#define GEN7_VC1_BI_PICTURE 3 |
#define GEN7_VC1_SKIPPED_PICTURE 4 |
#define GEN7_VC1_SIMPLE_PROFILE 0 |
#define GEN7_VC1_MAIN_PROFILE 1 |
#define GEN7_VC1_ADVANCED_PROFILE 2 |
#define GEN7_VC1_RESERVED_PROFILE 3 |
#define GEN7_JPEG_ROTATION_0 0 |
#define GEN7_JPEG_ROTATION_90 1 |
#define GEN7_JPEG_ROTATION_270 2 |
#define GEN7_JPEG_ROTATION_180 3 |
#define GEN7_YUV400 0 |
#define GEN7_YUV420 1 |
#define GEN7_YUV422H_2Y 2 |
#define GEN7_YUV444 3 |
#define GEN7_YUV411 4 |
#define GEN7_YUV422V_2Y 5 |
#define GEN7_YUV422H_4Y 6 |
#define GEN7_YUV422V_4Y 7 |
struct gen7_vc1_surface |
{ |
dri_bo *dmv; |
int picture_type; |
}; |
struct hw_context; |
struct gen7_mfd_context |
{ |
struct hw_context base; |
union { |
VAIQMatrixBufferMPEG2 mpeg2; |
VAIQMatrixBufferH264 h264; /* flat scaling lists (default) */ |
} iq_matrix; |
GenFrameStore reference_surface[MAX_GEN_REFERENCE_FRAMES]; |
GenBuffer post_deblocking_output; |
GenBuffer pre_deblocking_output; |
GenBuffer intra_row_store_scratch_buffer; |
GenBuffer deblocking_filter_row_store_scratch_buffer; |
GenBuffer bsd_mpc_row_store_scratch_buffer; |
GenBuffer mpr_row_store_scratch_buffer; |
GenBuffer bitplane_read_buffer; |
VASurfaceID jpeg_wa_surface_id; |
dri_bo *jpeg_wa_slice_data_bo; |
int wa_mpeg2_slice_vertical_position; |
}; |
#endif /* _GEN7_MFD_H_ */ |
/drivers/video/i965/i965_avc_bsd.c |
---|
0,0 → 1,1051 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
#ifndef HAVE_GEN_AVC_SURFACE |
#define HAVE_GEN_AVC_SURFACE 1 |
#endif |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_avc_bsd.h" |
#include "i965_media_h264.h" |
#include "i965_media.h" |
#include "i965_decoder_utils.h" |
static void |
i965_avc_bsd_init_avc_bsd_surface(VADriverContextP ctx, |
struct object_surface *obj_surface, |
VAPictureParameterBufferH264 *pic_param, |
struct i965_h264_context *i965_h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
GenAvcSurface *avc_bsd_surface = obj_surface->private_data; |
obj_surface->free_private_data = gen_free_avc_surface; |
if (!avc_bsd_surface) { |
avc_bsd_surface = calloc(sizeof(GenAvcSurface), 1); |
assert((obj_surface->size & 0x3f) == 0); |
obj_surface->private_data = avc_bsd_surface; |
} |
avc_bsd_surface->dmv_bottom_flag = (pic_param->pic_fields.bits.field_pic_flag && |
!pic_param->seq_fields.bits.direct_8x8_inference_flag); |
if (avc_bsd_surface->dmv_top == NULL) { |
avc_bsd_surface->dmv_top = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
DMV_SIZE, |
0x1000); |
} |
if (avc_bsd_surface->dmv_bottom_flag && |
avc_bsd_surface->dmv_bottom == NULL) { |
avc_bsd_surface->dmv_bottom = dri_bo_alloc(i965->intel.bufmgr, |
"direct mv w/r buffer", |
DMV_SIZE, |
0x1000); |
} |
} |
static void |
i965_bsd_ind_obj_base_address(VADriverContextP ctx, |
struct decode_state *decode_state, |
int slice, |
struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
dri_bo *ind_bo = decode_state->slice_datas[slice]->bo; |
BEGIN_BCS_BATCH(batch, 3); |
OUT_BCS_BATCH(batch, CMD_BSD_IND_OBJ_BASE_ADDR | (3 - 2)); |
OUT_BCS_RELOC(batch, ind_bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
i965_avc_bsd_img_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
int qm_present_flag; |
int img_struct; |
int mbaff_frame_flag; |
unsigned int avc_it_command_header; |
unsigned int width_in_mbs, height_in_mbs; |
VAPictureParameterBufferH264 *pic_param; |
if (decode_state->iq_matrix && decode_state->iq_matrix->buffer) |
qm_present_flag = 1; |
else |
qm_present_flag = 0; /* built-in QM matrices */ |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
assert(!(pic_param->CurrPic.flags & VA_PICTURE_H264_INVALID)); |
if (pic_param->CurrPic.flags & VA_PICTURE_H264_TOP_FIELD) |
img_struct = 1; |
else if (pic_param->CurrPic.flags & VA_PICTURE_H264_BOTTOM_FIELD) |
img_struct = 3; |
else |
img_struct = 0; |
if ((img_struct & 0x1) == 0x1) { |
assert(pic_param->pic_fields.bits.field_pic_flag == 0x1); |
} else { |
assert(pic_param->pic_fields.bits.field_pic_flag == 0x0); |
} |
if (pic_param->seq_fields.bits.frame_mbs_only_flag) { /* a frame containing only frame macroblocks */ |
assert(pic_param->seq_fields.bits.mb_adaptive_frame_field_flag == 0); |
assert(pic_param->pic_fields.bits.field_pic_flag == 0); |
} else { |
assert(pic_param->seq_fields.bits.direct_8x8_inference_flag == 1); /* see H.264 spec */ |
} |
mbaff_frame_flag = (pic_param->seq_fields.bits.mb_adaptive_frame_field_flag && |
!pic_param->pic_fields.bits.field_pic_flag); |
width_in_mbs = ((pic_param->picture_width_in_mbs_minus1 + 1) & 0xff); |
height_in_mbs = ((pic_param->picture_height_in_mbs_minus1 + 1) & 0xff); /* frame height */ |
assert(!((width_in_mbs * height_in_mbs) & 0x8000)); /* hardware requirement */ |
/* BSD unit doesn't support 4:2:2 and 4:4:4 picture */ |
assert(pic_param->seq_fields.bits.chroma_format_idc == 0 || /* monochrome picture */ |
pic_param->seq_fields.bits.chroma_format_idc == 1); /* 4:2:0 */ |
assert(pic_param->seq_fields.bits.residual_colour_transform_flag == 0); /* only available for 4:4:4 */ |
avc_it_command_header = (CMD_MEDIA_OBJECT_EX | (12 - 2)); |
BEGIN_BCS_BATCH(batch, 6); |
OUT_BCS_BATCH(batch, CMD_AVC_BSD_IMG_STATE | (6 - 2)); |
OUT_BCS_BATCH(batch, |
((width_in_mbs * height_in_mbs) & 0x7fff)); |
OUT_BCS_BATCH(batch, |
(height_in_mbs << 16) | |
(width_in_mbs << 0)); |
OUT_BCS_BATCH(batch, |
((pic_param->second_chroma_qp_index_offset & 0x1f) << 24) | |
((pic_param->chroma_qp_index_offset & 0x1f) << 16) | |
(SCAN_RASTER_ORDER << 15) | /* AVC ILDB Data */ |
(SCAN_SPECIAL_ORDER << 14) | /* AVC IT Command */ |
(SCAN_RASTER_ORDER << 13) | /* AVC IT Data */ |
(1 << 12) | /* always 1, hardware requirement */ |
(qm_present_flag << 10) | |
(img_struct << 8) | |
(16 << 0)); /* FIXME: always support 16 reference frames ??? */ |
OUT_BCS_BATCH(batch, |
(RESIDUAL_DATA_OFFSET << 24) | /* residual data offset */ |
(0 << 17) | /* don't overwrite SRT */ |
(0 << 16) | /* Un-SRT (Unsynchronized Root Thread) */ |
(0 << 12) | /* FIXME: no 16MV ??? */ |
(pic_param->seq_fields.bits.chroma_format_idc << 10) | |
(i965_h264_context->enable_avc_ildb << 8) | /* Enable ILDB writing output */ |
(pic_param->pic_fields.bits.entropy_coding_mode_flag << 7) | |
((!pic_param->pic_fields.bits.reference_pic_flag) << 6) | |
(pic_param->pic_fields.bits.constrained_intra_pred_flag << 5) | |
(pic_param->seq_fields.bits.direct_8x8_inference_flag << 4) | |
(pic_param->pic_fields.bits.transform_8x8_mode_flag << 3) | |
(pic_param->seq_fields.bits.frame_mbs_only_flag << 2) | |
(mbaff_frame_flag << 1) | |
(pic_param->pic_fields.bits.field_pic_flag << 0)); |
OUT_BCS_BATCH(batch, avc_it_command_header); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
i965_avc_bsd_qm_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
int cmd_len; |
VAIQMatrixBufferH264 *iq_matrix; |
VAPictureParameterBufferH264 *pic_param; |
if (!decode_state->iq_matrix || !decode_state->iq_matrix->buffer) |
return; |
iq_matrix = (VAIQMatrixBufferH264 *)decode_state->iq_matrix->buffer; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
cmd_len = 2 + 6 * 4; /* always load six 4x4 scaling matrices */ |
if (pic_param->pic_fields.bits.transform_8x8_mode_flag) |
cmd_len += 2 * 16; /* load two 8x8 scaling matrices */ |
BEGIN_BCS_BATCH(batch, cmd_len); |
OUT_BCS_BATCH(batch, CMD_AVC_BSD_QM_STATE | (cmd_len - 2)); |
if (pic_param->pic_fields.bits.transform_8x8_mode_flag) |
OUT_BCS_BATCH(batch, |
(0x0 << 8) | /* don't use default built-in matrices */ |
(0xff << 0)); /* six 4x4 and two 8x8 scaling matrices */ |
else |
OUT_BCS_BATCH(batch, |
(0x0 << 8) | /* don't use default built-in matrices */ |
(0x3f << 0)); /* six 4x4 scaling matrices */ |
intel_batchbuffer_data(batch, &iq_matrix->ScalingList4x4[0][0], 6 * 4 * 4); |
if (pic_param->pic_fields.bits.transform_8x8_mode_flag) |
intel_batchbuffer_data(batch, &iq_matrix->ScalingList8x8[0][0], 2 * 16 * 4); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
i965_avc_bsd_slice_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
int present_flag, cmd_len, list, j; |
uint8_t ref_idx_state[32]; |
char weightoffsets[32 * 6]; |
/* don't issue SLICE_STATE for intra-prediction decoding */ |
if (slice_param->slice_type == SLICE_TYPE_I || |
slice_param->slice_type == SLICE_TYPE_SI) |
return; |
cmd_len = 2; |
if (slice_param->slice_type == SLICE_TYPE_P || |
slice_param->slice_type == SLICE_TYPE_SP) { |
present_flag = PRESENT_REF_LIST0; |
cmd_len += 8; |
} else { |
present_flag = PRESENT_REF_LIST0 | PRESENT_REF_LIST1; |
cmd_len += 16; |
} |
if ((slice_param->slice_type == SLICE_TYPE_P || |
slice_param->slice_type == SLICE_TYPE_SP) && |
(pic_param->pic_fields.bits.weighted_pred_flag == 1)) { |
present_flag |= PRESENT_WEIGHT_OFFSET_L0; |
cmd_len += 48; |
} |
if ((slice_param->slice_type == SLICE_TYPE_B) && |
(pic_param->pic_fields.bits.weighted_bipred_idc == 1)) { |
present_flag |= PRESENT_WEIGHT_OFFSET_L0 | PRESENT_WEIGHT_OFFSET_L1; |
cmd_len += 96; |
} |
BEGIN_BCS_BATCH(batch, cmd_len); |
OUT_BCS_BATCH(batch, CMD_AVC_BSD_SLICE_STATE | (cmd_len - 2)); |
OUT_BCS_BATCH(batch, present_flag); |
for (list = 0; list < 2; list++) { |
int flag, num_va_pics; |
VAPictureH264 *va_pic; |
if (list == 0) { |
flag = PRESENT_REF_LIST0; |
va_pic = slice_param->RefPicList0; |
num_va_pics = slice_param->num_ref_idx_l0_active_minus1 + 1; |
} else { |
flag = PRESENT_REF_LIST1; |
va_pic = slice_param->RefPicList1; |
num_va_pics = slice_param->num_ref_idx_l1_active_minus1 + 1; |
} |
if (!(present_flag & flag)) |
continue; |
gen5_fill_avc_ref_idx_state( |
ref_idx_state, |
va_pic, num_va_pics, |
i965_h264_context->fsid_list |
); |
intel_batchbuffer_data(batch, ref_idx_state, sizeof(ref_idx_state)); |
} |
i965_h264_context->weight128_luma_l0 = 0; |
i965_h264_context->weight128_luma_l1 = 0; |
i965_h264_context->weight128_chroma_l0 = 0; |
i965_h264_context->weight128_chroma_l1 = 0; |
i965_h264_context->weight128_offset0_flag = 0; |
i965_h264_context->weight128_offset0 = 0; |
if (present_flag & PRESENT_WEIGHT_OFFSET_L0) { |
for (j = 0; j < 32; j++) { |
weightoffsets[j * 6 + 0] = slice_param->luma_offset_l0[j]; |
weightoffsets[j * 6 + 1] = slice_param->luma_weight_l0[j]; |
weightoffsets[j * 6 + 2] = slice_param->chroma_offset_l0[j][0]; |
weightoffsets[j * 6 + 3] = slice_param->chroma_weight_l0[j][0]; |
weightoffsets[j * 6 + 4] = slice_param->chroma_offset_l0[j][1]; |
weightoffsets[j * 6 + 5] = slice_param->chroma_weight_l0[j][1]; |
if (pic_param->pic_fields.bits.weighted_pred_flag == 1 || |
pic_param->pic_fields.bits.weighted_bipred_idc == 1) { |
if (i965_h264_context->use_hw_w128) { |
if (slice_param->luma_weight_l0[j] == 128) |
i965_h264_context->weight128_luma_l0 |= (1 << j); |
if (slice_param->chroma_weight_l0[j][0] == 128 || |
slice_param->chroma_weight_l0[j][1] == 128) |
i965_h264_context->weight128_chroma_l0 |= (1 << j); |
} else { |
/* FIXME: workaround for weight 128 */ |
if (slice_param->luma_weight_l0[j] == 128 || |
slice_param->chroma_weight_l0[j][0] == 128 || |
slice_param->chroma_weight_l0[j][1] == 128) |
i965_h264_context->weight128_offset0_flag = 1; |
} |
} |
} |
intel_batchbuffer_data(batch, weightoffsets, sizeof(weightoffsets)); |
} |
if (present_flag & PRESENT_WEIGHT_OFFSET_L1) { |
for (j = 0; j < 32; j++) { |
weightoffsets[j * 6 + 0] = slice_param->luma_offset_l1[j]; |
weightoffsets[j * 6 + 1] = slice_param->luma_weight_l1[j]; |
weightoffsets[j * 6 + 2] = slice_param->chroma_offset_l1[j][0]; |
weightoffsets[j * 6 + 3] = slice_param->chroma_weight_l1[j][0]; |
weightoffsets[j * 6 + 4] = slice_param->chroma_offset_l1[j][1]; |
weightoffsets[j * 6 + 5] = slice_param->chroma_weight_l1[j][1]; |
if (pic_param->pic_fields.bits.weighted_bipred_idc == 1) { |
if (i965_h264_context->use_hw_w128) { |
if (slice_param->luma_weight_l1[j] == 128) |
i965_h264_context->weight128_luma_l1 |= (1 << j); |
if (slice_param->chroma_weight_l1[j][0] == 128 || |
slice_param->chroma_weight_l1[j][1] == 128) |
i965_h264_context->weight128_chroma_l1 |= (1 << j); |
} else { |
if (slice_param->luma_weight_l0[j] == 128 || |
slice_param->chroma_weight_l0[j][0] == 128 || |
slice_param->chroma_weight_l0[j][1] == 128) |
i965_h264_context->weight128_offset0_flag = 1; |
} |
} |
} |
intel_batchbuffer_data(batch, weightoffsets, sizeof(weightoffsets)); |
} |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
i965_avc_bsd_buf_base_state(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
struct i965_h264_context *i965_h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
struct i965_avc_bsd_context *i965_avc_bsd_context; |
int i, j; |
VAPictureH264 *va_pic; |
struct object_surface *obj_surface; |
GenAvcSurface *avc_bsd_surface; |
i965_avc_bsd_context = &i965_h264_context->i965_avc_bsd_context; |
BEGIN_BCS_BATCH(batch, 74); |
OUT_BCS_BATCH(batch, CMD_AVC_BSD_BUF_BASE_STATE | (74 - 2)); |
OUT_BCS_RELOC(batch, i965_avc_bsd_context->bsd_raw_store.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_RELOC(batch, i965_avc_bsd_context->mpr_row_store.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
OUT_BCS_RELOC(batch, i965_h264_context->avc_it_command_mb_info.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
i965_h264_context->avc_it_command_mb_info.mbs * i965_h264_context->use_avc_hw_scoreboard * MB_CMD_IN_BYTES); |
OUT_BCS_RELOC(batch, i965_h264_context->avc_it_data.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
(i965_h264_context->avc_it_data.write_offset << 6)); |
if (i965_h264_context->enable_avc_ildb) |
OUT_BCS_RELOC(batch, i965_h264_context->avc_ildb_data.bo, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_BATCH(batch, 0); |
for (i = 0; i < ARRAY_ELEMS(i965_h264_context->fsid_list); i++) { |
if (i965_h264_context->fsid_list[i].surface_id != VA_INVALID_ID) { |
int found = 0; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
va_pic = &pic_param->ReferenceFrames[j]; |
if (va_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (va_pic->picture_id == i965_h264_context->fsid_list[i].surface_id) { |
found = 1; |
break; |
} |
} |
assert(found == 1); |
if (!(va_pic->flags & VA_PICTURE_H264_INVALID)) { |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface); |
avc_bsd_surface = obj_surface->private_data; |
if (avc_bsd_surface == NULL) { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} else { |
OUT_BCS_RELOC(batch, avc_bsd_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
if (avc_bsd_surface->dmv_bottom_flag == 1) |
OUT_BCS_RELOC(batch, avc_bsd_surface->dmv_bottom, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
else |
OUT_BCS_RELOC(batch, avc_bsd_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
} |
} |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
va_pic = &pic_param->CurrPic; |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface); |
obj_surface->flags &= ~SURFACE_REF_DIS_MASK; |
obj_surface->flags |= (pic_param->pic_fields.bits.reference_pic_flag ? SURFACE_REFERENCED : 0); |
i965_check_alloc_surface_bo(ctx, obj_surface, 0, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
/* initial uv component for YUV400 case */ |
if (pic_param->seq_fields.bits.chroma_format_idc == 0) { |
unsigned int uv_offset = obj_surface->width * obj_surface->height; |
unsigned int uv_size = obj_surface->width * obj_surface->height / 2; |
dri_bo_map(obj_surface->bo, 1); |
memset(obj_surface->bo->virtual + uv_offset, 0x80, uv_size); |
dri_bo_unmap(obj_surface->bo); |
} |
i965_avc_bsd_init_avc_bsd_surface(ctx, obj_surface, pic_param, i965_h264_context); |
avc_bsd_surface = obj_surface->private_data; |
OUT_BCS_RELOC(batch, avc_bsd_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
if (avc_bsd_surface->dmv_bottom_flag == 1) |
OUT_BCS_RELOC(batch, avc_bsd_surface->dmv_bottom, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
else |
OUT_BCS_RELOC(batch, avc_bsd_surface->dmv_top, |
I915_GEM_DOMAIN_INSTRUCTION, I915_GEM_DOMAIN_INSTRUCTION, |
0); |
/* POC List */ |
for (i = 0; i < ARRAY_ELEMS(i965_h264_context->fsid_list); i++) { |
if (i965_h264_context->fsid_list[i].surface_id != VA_INVALID_ID) { |
int found = 0; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
va_pic = &pic_param->ReferenceFrames[j]; |
if (va_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (va_pic->picture_id == i965_h264_context->fsid_list[i].surface_id) { |
found = 1; |
break; |
} |
} |
assert(found == 1); |
if (!(va_pic->flags & VA_PICTURE_H264_INVALID)) { |
OUT_BCS_BATCH(batch, va_pic->TopFieldOrderCnt); |
OUT_BCS_BATCH(batch, va_pic->BottomFieldOrderCnt); |
} |
} else { |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
} |
} |
va_pic = &pic_param->CurrPic; |
OUT_BCS_BATCH(batch, va_pic->TopFieldOrderCnt); |
OUT_BCS_BATCH(batch, va_pic->BottomFieldOrderCnt); |
ADVANCE_BCS_BATCH(batch); |
} |
static void |
g4x_avc_bsd_object(VADriverContextP ctx, |
struct decode_state *decode_state, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
int slice_index, |
struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
int width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
int height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; /* frame height */ |
if (slice_param) { |
int encrypted, counter_value, cmd_len; |
int slice_hor_pos, slice_ver_pos; |
int num_ref_idx_l0, num_ref_idx_l1; |
int mbaff_picture = (!pic_param->pic_fields.bits.field_pic_flag && |
pic_param->seq_fields.bits.mb_adaptive_frame_field_flag); |
unsigned int slice_data_bit_offset; |
int weighted_pred_idc = 0; |
int first_mb_in_slice = 0; |
int slice_type; |
encrypted = 0; /* FIXME: which flag in VAAPI is used for encryption? */ |
if (encrypted) { |
cmd_len = 9; |
counter_value = 0; /* FIXME: ??? */ |
} else |
cmd_len = 8; |
slice_data_bit_offset = avc_get_first_mb_bit_offset_with_epb( |
decode_state->slice_datas[slice_index]->bo, |
slice_param, |
pic_param->pic_fields.bits.entropy_coding_mode_flag |
); |
if (slice_param->slice_type == SLICE_TYPE_I || |
slice_param->slice_type == SLICE_TYPE_SI) |
slice_type = SLICE_TYPE_I; |
else if (slice_param->slice_type == SLICE_TYPE_P || |
slice_param->slice_type == SLICE_TYPE_SP) |
slice_type = SLICE_TYPE_P; |
else { |
assert(slice_param->slice_type == SLICE_TYPE_B); |
slice_type = SLICE_TYPE_B; |
} |
if (slice_type == SLICE_TYPE_I) { |
assert(slice_param->num_ref_idx_l0_active_minus1 == 0); |
assert(slice_param->num_ref_idx_l1_active_minus1 == 0); |
num_ref_idx_l0 = 0; |
num_ref_idx_l1 = 0; |
} else if (slice_type == SLICE_TYPE_P) { |
assert(slice_param->num_ref_idx_l1_active_minus1 == 0); |
num_ref_idx_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; |
num_ref_idx_l1 = 0; |
} else { |
num_ref_idx_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; |
num_ref_idx_l1 = slice_param->num_ref_idx_l1_active_minus1 + 1; |
} |
if (slice_type == SLICE_TYPE_P) |
weighted_pred_idc = pic_param->pic_fields.bits.weighted_pred_flag; |
else if (slice_type == SLICE_TYPE_B) |
weighted_pred_idc = pic_param->pic_fields.bits.weighted_bipred_idc; |
first_mb_in_slice = slice_param->first_mb_in_slice << mbaff_picture; |
slice_hor_pos = first_mb_in_slice % width_in_mbs; |
slice_ver_pos = first_mb_in_slice / width_in_mbs; |
BEGIN_BCS_BATCH(batch, cmd_len); |
OUT_BCS_BATCH(batch, CMD_AVC_BSD_OBJECT | (cmd_len - 2)); |
OUT_BCS_BATCH(batch, |
(encrypted << 31) | |
((slice_param->slice_data_size - (slice_data_bit_offset >> 3)) << 0)); |
OUT_BCS_BATCH(batch, |
(slice_param->slice_data_offset + |
(slice_data_bit_offset >> 3))); |
OUT_BCS_BATCH(batch, |
(0 << 31) | /* concealment mode: 0->intra 16x16 prediction, 1->inter P Copy */ |
(0 << 14) | /* ignore BSDPrematureComplete Error handling */ |
(0 << 13) | /* FIXME: ??? */ |
(0 << 12) | /* ignore MPR Error handling */ |
(0 << 10) | /* ignore Entropy Error handling */ |
(0 << 8) | /* ignore MB Header Error handling */ |
(slice_type << 0)); |
OUT_BCS_BATCH(batch, |
(num_ref_idx_l1 << 24) | |
(num_ref_idx_l0 << 16) | |
(slice_param->chroma_log2_weight_denom << 8) | |
(slice_param->luma_log2_weight_denom << 0)); |
OUT_BCS_BATCH(batch, |
(weighted_pred_idc << 30) | |
(slice_param->direct_spatial_mv_pred_flag << 29) | |
(slice_param->disable_deblocking_filter_idc << 27) | |
(slice_param->cabac_init_idc << 24) | |
((pic_param->pic_init_qp_minus26 + 26 + slice_param->slice_qp_delta) << 16) | |
((slice_param->slice_beta_offset_div2 & 0xf) << 8) | |
((slice_param->slice_alpha_c0_offset_div2 & 0xf) << 0)); |
OUT_BCS_BATCH(batch, |
(slice_ver_pos << 24) | |
(slice_hor_pos << 16) | |
(first_mb_in_slice << 0)); |
OUT_BCS_BATCH(batch, |
(1 << 7) | |
((0x7 - (slice_data_bit_offset & 0x7)) << 0)); |
if (encrypted) { |
OUT_BCS_BATCH(batch, counter_value); |
} |
ADVANCE_BCS_BATCH(batch); |
} else { |
BEGIN_BCS_BATCH(batch, 8); |
OUT_BCS_BATCH(batch, CMD_AVC_BSD_OBJECT | (8 - 2)); |
OUT_BCS_BATCH(batch, 0); /* indirect data length for phantom slice is 0 */ |
OUT_BCS_BATCH(batch, 0); /* indirect data start address for phantom slice is 0 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, width_in_mbs * height_in_mbs / (1 + !!pic_param->pic_fields.bits.field_pic_flag)); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
} |
static void |
ironlake_avc_bsd_object(VADriverContextP ctx, |
struct decode_state *decode_state, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
int slice_index, |
struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
int width_in_mbs = pic_param->picture_width_in_mbs_minus1 + 1; |
int height_in_mbs = pic_param->picture_height_in_mbs_minus1 + 1; /* frame height */ |
if (slice_param) { |
int encrypted, counter_value; |
int slice_hor_pos, slice_ver_pos; |
int num_ref_idx_l0, num_ref_idx_l1; |
int mbaff_picture = (!pic_param->pic_fields.bits.field_pic_flag && |
pic_param->seq_fields.bits.mb_adaptive_frame_field_flag); |
unsigned int slice_data_bit_offset; |
int weighted_pred_idc = 0; |
int first_mb_in_slice; |
int slice_type; |
encrypted = 0; /* FIXME: which flag in VAAPI is used for encryption? */ |
if (encrypted) { |
counter_value = 0; /* FIXME: ??? */ |
} else |
counter_value = 0; |
slice_data_bit_offset = avc_get_first_mb_bit_offset_with_epb( |
decode_state->slice_datas[slice_index]->bo, |
slice_param, |
pic_param->pic_fields.bits.entropy_coding_mode_flag |
); |
if (slice_param->slice_type == SLICE_TYPE_I || |
slice_param->slice_type == SLICE_TYPE_SI) |
slice_type = SLICE_TYPE_I; |
else if (slice_param->slice_type == SLICE_TYPE_P || |
slice_param->slice_type == SLICE_TYPE_SP) |
slice_type = SLICE_TYPE_P; |
else { |
assert(slice_param->slice_type == SLICE_TYPE_B); |
slice_type = SLICE_TYPE_B; |
} |
if (slice_type == SLICE_TYPE_I) { |
assert(slice_param->num_ref_idx_l0_active_minus1 == 0); |
assert(slice_param->num_ref_idx_l1_active_minus1 == 0); |
num_ref_idx_l0 = 0; |
num_ref_idx_l1 = 0; |
} else if (slice_type == SLICE_TYPE_P) { |
assert(slice_param->num_ref_idx_l1_active_minus1 == 0); |
num_ref_idx_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; |
num_ref_idx_l1 = 0; |
} else { |
num_ref_idx_l0 = slice_param->num_ref_idx_l0_active_minus1 + 1; |
num_ref_idx_l1 = slice_param->num_ref_idx_l1_active_minus1 + 1; |
} |
if (slice_type == SLICE_TYPE_P) |
weighted_pred_idc = pic_param->pic_fields.bits.weighted_pred_flag; |
else if (slice_type == SLICE_TYPE_B) |
weighted_pred_idc = pic_param->pic_fields.bits.weighted_bipred_idc; |
first_mb_in_slice = slice_param->first_mb_in_slice << mbaff_picture; |
slice_hor_pos = first_mb_in_slice % width_in_mbs; |
slice_ver_pos = first_mb_in_slice / width_in_mbs; |
BEGIN_BCS_BATCH(batch, 16); |
OUT_BCS_BATCH(batch, CMD_AVC_BSD_OBJECT | (16 - 2)); |
OUT_BCS_BATCH(batch, |
(encrypted << 31) | |
(0 << 30) | /* FIXME: packet based bit stream */ |
(0 << 29) | /* FIXME: packet format */ |
((slice_param->slice_data_size - (slice_data_bit_offset >> 3)) << 0)); |
OUT_BCS_BATCH(batch, |
(slice_param->slice_data_offset + |
(slice_data_bit_offset >> 3))); |
OUT_BCS_BATCH(batch, |
(0 << 31) | /* concealment mode: 0->intra 16x16 prediction, 1->inter P Copy */ |
(0 << 14) | /* ignore BSDPrematureComplete Error handling */ |
(0 << 13) | /* FIXME: ??? */ |
(0 << 12) | /* ignore MPR Error handling */ |
(0 << 10) | /* ignore Entropy Error handling */ |
(0 << 8) | /* ignore MB Header Error handling */ |
(slice_type << 0)); |
OUT_BCS_BATCH(batch, |
(num_ref_idx_l1 << 24) | |
(num_ref_idx_l0 << 16) | |
(slice_param->chroma_log2_weight_denom << 8) | |
(slice_param->luma_log2_weight_denom << 0)); |
OUT_BCS_BATCH(batch, |
(weighted_pred_idc << 30) | |
(slice_param->direct_spatial_mv_pred_flag << 29) | |
(slice_param->disable_deblocking_filter_idc << 27) | |
(slice_param->cabac_init_idc << 24) | |
((pic_param->pic_init_qp_minus26 + 26 + slice_param->slice_qp_delta) << 16) | |
((slice_param->slice_beta_offset_div2 & 0xf) << 8) | |
((slice_param->slice_alpha_c0_offset_div2 & 0xf) << 0)); |
OUT_BCS_BATCH(batch, |
(slice_ver_pos << 24) | |
(slice_hor_pos << 16) | |
(first_mb_in_slice << 0)); |
OUT_BCS_BATCH(batch, |
(1 << 7) | |
((0x7 - (slice_data_bit_offset & 0x7)) << 0)); |
OUT_BCS_BATCH(batch, counter_value); |
/* FIXME: dw9-dw11 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, i965_h264_context->weight128_luma_l0); |
OUT_BCS_BATCH(batch, i965_h264_context->weight128_luma_l1); |
OUT_BCS_BATCH(batch, i965_h264_context->weight128_chroma_l0); |
OUT_BCS_BATCH(batch, i965_h264_context->weight128_chroma_l1); |
ADVANCE_BCS_BATCH(batch); |
} else { |
BEGIN_BCS_BATCH(batch, 16); |
OUT_BCS_BATCH(batch, CMD_AVC_BSD_OBJECT | (16 - 2)); |
OUT_BCS_BATCH(batch, 0); /* indirect data length for phantom slice is 0 */ |
OUT_BCS_BATCH(batch, 0); /* indirect data start address for phantom slice is 0 */ |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, width_in_mbs * height_in_mbs / (1 + !!pic_param->pic_fields.bits.field_pic_flag)); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
} |
static void |
i965_avc_bsd_object(VADriverContextP ctx, |
struct decode_state *decode_state, |
VAPictureParameterBufferH264 *pic_param, |
VASliceParameterBufferH264 *slice_param, |
int slice_index, |
struct i965_h264_context *i965_h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
if (IS_IRONLAKE(i965->intel.device_id)) |
ironlake_avc_bsd_object(ctx, decode_state, pic_param, slice_param, slice_index, i965_h264_context); |
else |
g4x_avc_bsd_object(ctx, decode_state, pic_param, slice_param, slice_index, i965_h264_context); |
} |
static void |
i965_avc_bsd_phantom_slice(VADriverContextP ctx, |
struct decode_state *decode_state, |
VAPictureParameterBufferH264 *pic_param, |
struct i965_h264_context *i965_h264_context) |
{ |
i965_avc_bsd_object(ctx, decode_state, pic_param, NULL, 0, i965_h264_context); |
} |
static void |
i965_avc_bsd_frame_store_index(VADriverContextP ctx, |
VAPictureParameterBufferH264 *pic_param, |
struct i965_h264_context *i965_h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i, j; |
assert(ARRAY_ELEMS(i965_h264_context->fsid_list) == ARRAY_ELEMS(pic_param->ReferenceFrames)); |
for (i = 0; i < ARRAY_ELEMS(i965_h264_context->fsid_list); i++) { |
int found = 0; |
if (i965_h264_context->fsid_list[i].surface_id == VA_INVALID_ID) |
continue; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
VAPictureH264 *ref_pic = &pic_param->ReferenceFrames[j]; |
if (ref_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (i965_h264_context->fsid_list[i].surface_id == ref_pic->picture_id) { |
found = 1; |
break; |
} |
} |
if (!found) { |
struct object_surface *obj_surface = SURFACE(i965_h264_context->fsid_list[i].surface_id); |
obj_surface->flags &= ~SURFACE_REFERENCED; |
if ((obj_surface->flags & SURFACE_ALL_MASK) == SURFACE_DISPLAYED) { |
dri_bo_unreference(obj_surface->bo); |
obj_surface->bo = NULL; |
obj_surface->flags &= ~SURFACE_REF_DIS_MASK; |
} |
if (obj_surface->free_private_data) |
obj_surface->free_private_data(&obj_surface->private_data); |
i965_h264_context->fsid_list[i].surface_id = VA_INVALID_ID; |
i965_h264_context->fsid_list[i].frame_store_id = -1; |
} |
} |
for (i = 0; i < ARRAY_ELEMS(pic_param->ReferenceFrames); i++) { |
VAPictureH264 *ref_pic = &pic_param->ReferenceFrames[i]; |
int found = 0; |
if (ref_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
for (j = 0; j < ARRAY_ELEMS(i965_h264_context->fsid_list); j++) { |
if (i965_h264_context->fsid_list[j].surface_id == VA_INVALID_ID) |
continue; |
if (i965_h264_context->fsid_list[j].surface_id == ref_pic->picture_id) { |
found = 1; |
break; |
} |
} |
if (!found) { |
int frame_idx; |
struct object_surface *obj_surface = SURFACE(ref_pic->picture_id); |
assert(obj_surface); |
i965_check_alloc_surface_bo(ctx, obj_surface, 0, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
for (frame_idx = 0; frame_idx < ARRAY_ELEMS(i965_h264_context->fsid_list); frame_idx++) { |
for (j = 0; j < ARRAY_ELEMS(i965_h264_context->fsid_list); j++) { |
if (i965_h264_context->fsid_list[j].surface_id == VA_INVALID_ID) |
continue; |
if (i965_h264_context->fsid_list[j].frame_store_id == frame_idx) |
break; |
} |
if (j == ARRAY_ELEMS(i965_h264_context->fsid_list)) |
break; |
} |
assert(frame_idx < ARRAY_ELEMS(i965_h264_context->fsid_list)); |
for (j = 0; j < ARRAY_ELEMS(i965_h264_context->fsid_list); j++) { |
if (i965_h264_context->fsid_list[j].surface_id == VA_INVALID_ID) { |
i965_h264_context->fsid_list[j].surface_id = ref_pic->picture_id; |
i965_h264_context->fsid_list[j].frame_store_id = frame_idx; |
break; |
} |
} |
} |
} |
for (i = 0; i < ARRAY_ELEMS(i965_h264_context->fsid_list) - 1; i++) { |
if (i965_h264_context->fsid_list[i].surface_id != VA_INVALID_ID && |
i965_h264_context->fsid_list[i].frame_store_id == i) |
continue; |
for (j = i + 1; j < ARRAY_ELEMS(i965_h264_context->fsid_list); j++) { |
if (i965_h264_context->fsid_list[j].surface_id != VA_INVALID_ID && |
i965_h264_context->fsid_list[j].frame_store_id == i) { |
VASurfaceID id = i965_h264_context->fsid_list[i].surface_id; |
int frame_idx = i965_h264_context->fsid_list[i].frame_store_id; |
i965_h264_context->fsid_list[i].surface_id = i965_h264_context->fsid_list[j].surface_id; |
i965_h264_context->fsid_list[i].frame_store_id = i965_h264_context->fsid_list[j].frame_store_id; |
i965_h264_context->fsid_list[j].surface_id = id; |
i965_h264_context->fsid_list[j].frame_store_id = frame_idx; |
break; |
} |
} |
} |
} |
void |
i965_avc_bsd_pipeline(VADriverContextP ctx, struct decode_state *decode_state, void *h264_context) |
{ |
struct i965_h264_context *i965_h264_context = (struct i965_h264_context *)h264_context; |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
VAPictureParameterBufferH264 *pic_param; |
VASliceParameterBufferH264 *slice_param; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
i965_avc_bsd_frame_store_index(ctx, pic_param, i965_h264_context); |
i965_h264_context->enable_avc_ildb = 0; |
i965_h264_context->picture.i_flag = 1; |
for (j = 0; j < decode_state->num_slice_params && i965_h264_context->enable_avc_ildb == 0; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
assert((slice_param->slice_type == SLICE_TYPE_I) || |
(slice_param->slice_type == SLICE_TYPE_SI) || |
(slice_param->slice_type == SLICE_TYPE_P) || |
(slice_param->slice_type == SLICE_TYPE_SP) || |
(slice_param->slice_type == SLICE_TYPE_B)); |
if (slice_param->disable_deblocking_filter_idc != 1) { |
i965_h264_context->enable_avc_ildb = 1; |
break; |
} |
slice_param++; |
} |
} |
intel_batchbuffer_start_atomic_bcs(batch, 0x1000); |
i965_avc_bsd_img_state(ctx, decode_state, i965_h264_context); |
i965_avc_bsd_qm_state(ctx, decode_state, i965_h264_context); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params && decode_state->slice_params[j]->buffer); |
slice_param = (VASliceParameterBufferH264 *)decode_state->slice_params[j]->buffer; |
i965_bsd_ind_obj_base_address(ctx, decode_state, j, i965_h264_context); |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
assert((slice_param->slice_type == SLICE_TYPE_I) || |
(slice_param->slice_type == SLICE_TYPE_SI) || |
(slice_param->slice_type == SLICE_TYPE_P) || |
(slice_param->slice_type == SLICE_TYPE_SP) || |
(slice_param->slice_type == SLICE_TYPE_B)); |
if (i965_h264_context->picture.i_flag && |
(slice_param->slice_type != SLICE_TYPE_I || |
slice_param->slice_type != SLICE_TYPE_SI)) |
i965_h264_context->picture.i_flag = 0; |
i965_avc_bsd_slice_state(ctx, pic_param, slice_param, i965_h264_context); |
i965_avc_bsd_buf_base_state(ctx, pic_param, slice_param, i965_h264_context); |
i965_avc_bsd_object(ctx, decode_state, pic_param, slice_param, j, i965_h264_context); |
slice_param++; |
} |
} |
i965_avc_bsd_phantom_slice(ctx, decode_state, pic_param, i965_h264_context); |
intel_batchbuffer_emit_mi_flush(batch); |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
} |
void |
i965_avc_bsd_decode_init(VADriverContextP ctx, void *h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_h264_context *i965_h264_context = (struct i965_h264_context *)h264_context; |
struct i965_avc_bsd_context *i965_avc_bsd_context; |
dri_bo *bo; |
assert(i965_h264_context); |
i965_avc_bsd_context = &i965_h264_context->i965_avc_bsd_context; |
dri_bo_unreference(i965_avc_bsd_context->bsd_raw_store.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"bsd raw store", |
0x3000, /* at least 11520 bytes to support 120 MBs per row */ |
64); |
assert(bo); |
i965_avc_bsd_context->bsd_raw_store.bo = bo; |
dri_bo_unreference(i965_avc_bsd_context->mpr_row_store.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"mpr row store", |
0x2000, /* at least 7680 bytes to support 120 MBs per row */ |
64); |
assert(bo); |
i965_avc_bsd_context->mpr_row_store.bo = bo; |
} |
Bool |
i965_avc_bsd_ternimate(struct i965_avc_bsd_context *i965_avc_bsd_context) |
{ |
dri_bo_unreference(i965_avc_bsd_context->bsd_raw_store.bo); |
dri_bo_unreference(i965_avc_bsd_context->mpr_row_store.bo); |
return True; |
} |
/drivers/video/i965/i965_avc_bsd.h |
---|
0,0 → 1,50 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#ifndef __I965_AVC_BSD_H__ |
#define __I965_AVC_BSD_H__ |
#define DMV_SIZE 0x88000 /* 557056 bytes for a frame */ |
struct i965_avc_bsd_context |
{ |
struct { |
dri_bo *bo; |
} bsd_raw_store; |
struct { |
dri_bo *bo; |
} mpr_row_store; |
}; |
void i965_avc_bsd_pipeline(VADriverContextP, struct decode_state *, void *h264_context); |
void i965_avc_bsd_decode_init(VADriverContextP, void *h264_context); |
Bool i965_avc_bsd_ternimate(struct i965_avc_bsd_context *); |
#endif /* __I965_AVC_BSD_H__ */ |
/drivers/video/i965/i965_avc_hw_scoreboard.c |
---|
0,0 → 1,461 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#include <stdio.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_avc_hw_scoreboard.h" |
#include "i965_media_h264.h" |
#include "i965_media.h" |
/* On Ironlake */ |
#include "shaders/h264/mc/export.inc.gen5" |
enum { |
AVC_HW_SCOREBOARD = 0, |
AVC_HW_SCOREBOARD_MBAFF |
}; |
static unsigned long avc_hw_scoreboard_kernel_offset[] = { |
SETHWSCOREBOARD_IP_GEN5 * INST_UNIT_GEN5, |
SETHWSCOREBOARD_MBAFF_IP_GEN5 * INST_UNIT_GEN5 |
}; |
static unsigned int avc_hw_scoreboard_constants[] = { |
0x08040201, |
0x00000010, |
0x08000210, |
0x00000000, |
0x08040201, |
0x08040210, |
0x01000010, |
0x08040200 |
}; |
static void |
i965_avc_hw_scoreboard_surface_state(struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
struct i965_surface_state *ss; |
dri_bo *bo; |
bo = avc_hw_scoreboard_context->surface.ss_bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
ss = bo->virtual; |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_type = I965_SURFACE_BUFFER; |
ss->ss1.base_addr = avc_hw_scoreboard_context->surface.s_bo->offset; |
ss->ss2.width = ((avc_hw_scoreboard_context->surface.total_mbs * MB_CMD_IN_OWS - 1) & 0x7f); |
ss->ss2.height = (((avc_hw_scoreboard_context->surface.total_mbs * MB_CMD_IN_OWS - 1) >> 7) & 0x1fff); |
ss->ss3.depth = (((avc_hw_scoreboard_context->surface.total_mbs * MB_CMD_IN_OWS - 1) >> 20) & 0x7f); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, |
0, |
offsetof(struct i965_surface_state, ss1), |
avc_hw_scoreboard_context->surface.s_bo); |
dri_bo_unmap(bo); |
} |
static void |
i965_avc_hw_scoreboard_interface_descriptor_table(struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
struct i965_interface_descriptor *desc; |
dri_bo *bo; |
bo = avc_hw_scoreboard_context->idrt.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
desc = bo->virtual; |
memset(desc, 0, sizeof(*desc)); |
desc->desc0.grf_reg_blocks = 7; |
desc->desc0.kernel_start_pointer = (avc_hw_scoreboard_context->hw_kernel.bo->offset + |
avc_hw_scoreboard_context->hw_kernel.offset) >> 6; /* reloc */ |
desc->desc1.const_urb_entry_read_offset = 0; |
desc->desc1.const_urb_entry_read_len = 1; |
desc->desc3.binding_table_entry_count = 0; |
desc->desc3.binding_table_pointer = |
avc_hw_scoreboard_context->binding_table.bo->offset >> 5; /*reloc */ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc0.grf_reg_blocks + avc_hw_scoreboard_context->hw_kernel.offset, |
offsetof(struct i965_interface_descriptor, desc0), |
avc_hw_scoreboard_context->hw_kernel.bo); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc3.binding_table_entry_count, |
offsetof(struct i965_interface_descriptor, desc3), |
avc_hw_scoreboard_context->binding_table.bo); |
dri_bo_unmap(bo); |
} |
static void |
i965_avc_hw_scoreboard_binding_table(struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
unsigned int *binding_table; |
dri_bo *bo = avc_hw_scoreboard_context->binding_table.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
binding_table = bo->virtual; |
memset(binding_table, 0, bo->size); |
binding_table[0] = avc_hw_scoreboard_context->surface.ss_bo->offset; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
0, |
avc_hw_scoreboard_context->surface.ss_bo); |
dri_bo_unmap(bo); |
} |
static void |
i965_avc_hw_scoreboard_vfe_state(struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
struct i965_vfe_state *vfe_state; |
dri_bo *bo; |
bo = avc_hw_scoreboard_context->vfe_state.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
vfe_state = bo->virtual; |
memset(vfe_state, 0, sizeof(*vfe_state)); |
vfe_state->vfe1.max_threads = avc_hw_scoreboard_context->urb.num_vfe_entries - 1; |
vfe_state->vfe1.urb_entry_alloc_size = avc_hw_scoreboard_context->urb.size_vfe_entry - 1; |
vfe_state->vfe1.num_urb_entries = avc_hw_scoreboard_context->urb.num_vfe_entries; |
vfe_state->vfe1.vfe_mode = VFE_GENERIC_MODE; |
vfe_state->vfe1.children_present = 0; |
vfe_state->vfe2.interface_descriptor_base = |
avc_hw_scoreboard_context->idrt.bo->offset >> 4; /* reloc */ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
offsetof(struct i965_vfe_state, vfe2), |
avc_hw_scoreboard_context->idrt.bo); |
dri_bo_unmap(bo); |
} |
static void |
i965_avc_hw_scoreboard_upload_constants(struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
unsigned char *constant_buffer; |
if (avc_hw_scoreboard_context->curbe.upload) |
return; |
dri_bo_map(avc_hw_scoreboard_context->curbe.bo, 1); |
assert(avc_hw_scoreboard_context->curbe.bo->virtual); |
constant_buffer = avc_hw_scoreboard_context->curbe.bo->virtual; |
memcpy(constant_buffer, avc_hw_scoreboard_constants, sizeof(avc_hw_scoreboard_constants)); |
dri_bo_unmap(avc_hw_scoreboard_context->curbe.bo); |
avc_hw_scoreboard_context->curbe.upload = 1; |
} |
static void |
i965_avc_hw_scoreboard_states_setup(struct i965_h264_context *i965_h264_context) |
{ |
i965_avc_hw_scoreboard_surface_state(i965_h264_context); |
i965_avc_hw_scoreboard_binding_table(i965_h264_context); |
i965_avc_hw_scoreboard_interface_descriptor_table(i965_h264_context); |
i965_avc_hw_scoreboard_vfe_state(i965_h264_context); |
i965_avc_hw_scoreboard_upload_constants(i965_h264_context); |
} |
static void |
i965_avc_hw_scoreboard_pipeline_select(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
BEGIN_BATCH(batch, 1); |
OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_hw_scoreboard_urb_layout(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
unsigned int vfe_fence, cs_fence; |
vfe_fence = avc_hw_scoreboard_context->urb.cs_start; |
cs_fence = URB_SIZE((&i965->intel)); |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, CMD_URB_FENCE | UF0_VFE_REALLOC | UF0_CS_REALLOC | 1); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, |
(vfe_fence << UF2_VFE_FENCE_SHIFT) | /* VFE_SIZE */ |
(cs_fence << UF2_CS_FENCE_SHIFT)); /* CS_SIZE */ |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_hw_scoreboard_state_base_address(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
BEGIN_BATCH(batch, 8); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | 6); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_hw_scoreboard_state_pointers(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, CMD_MEDIA_STATE_POINTERS | 1); |
OUT_BATCH(batch, 0); |
OUT_RELOC(batch, avc_hw_scoreboard_context->vfe_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_hw_scoreboard_cs_urb_layout(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_CS_URB_STATE | 0); |
OUT_BATCH(batch, |
((avc_hw_scoreboard_context->urb.size_cs_entry - 1) << 4) | /* URB Entry Allocation Size */ |
(avc_hw_scoreboard_context->urb.num_cs_entries << 0)); /* Number of URB Entries */ |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_hw_scoreboard_constant_buffer(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_CONSTANT_BUFFER | (1 << 8) | (2 - 2)); |
OUT_RELOC(batch, avc_hw_scoreboard_context->curbe.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
avc_hw_scoreboard_context->urb.size_cs_entry - 1); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_hw_scoreboard_objects(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
int number_mb_cmds = 512; |
int starting_mb_number = avc_hw_scoreboard_context->inline_data.starting_mb_number; |
int i; |
for (i = 0; i < avc_hw_scoreboard_context->inline_data.num_mb_cmds / 512; i++) { |
BEGIN_BATCH(batch, 6); |
OUT_BATCH(batch, CMD_MEDIA_OBJECT | 4); |
OUT_BATCH(batch, 0); /* interface descriptor offset: 0 */ |
OUT_BATCH(batch, 0); /* no indirect data */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, ((number_mb_cmds << 16) | |
(starting_mb_number << 0))); |
OUT_BATCH(batch, avc_hw_scoreboard_context->inline_data.pic_width_in_mbs); |
ADVANCE_BATCH(batch); |
starting_mb_number += 512; |
} |
number_mb_cmds = avc_hw_scoreboard_context->inline_data.num_mb_cmds % 512; |
if (number_mb_cmds) { |
BEGIN_BATCH(batch, 6); |
OUT_BATCH(batch, CMD_MEDIA_OBJECT | 4); |
OUT_BATCH(batch, 0); /* interface descriptor offset: 0 */ |
OUT_BATCH(batch, 0); /* no indirect data */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, ((number_mb_cmds << 16) | |
(starting_mb_number << 0))); |
OUT_BATCH(batch, avc_hw_scoreboard_context->inline_data.pic_width_in_mbs); |
ADVANCE_BATCH(batch); |
} |
} |
static void |
i965_avc_hw_scoreboard_pipeline_setup(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
intel_batchbuffer_start_atomic(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
i965_avc_hw_scoreboard_pipeline_select(ctx, i965_h264_context); |
i965_avc_hw_scoreboard_state_base_address(ctx, i965_h264_context); |
i965_avc_hw_scoreboard_state_pointers(ctx, i965_h264_context); |
i965_avc_hw_scoreboard_urb_layout(ctx, i965_h264_context); |
i965_avc_hw_scoreboard_cs_urb_layout(ctx, i965_h264_context); |
i965_avc_hw_scoreboard_constant_buffer(ctx, i965_h264_context); |
i965_avc_hw_scoreboard_objects(ctx, i965_h264_context); |
intel_batchbuffer_end_atomic(batch); |
} |
void |
i965_avc_hw_scoreboard(VADriverContextP ctx, struct decode_state *decode_state, void *h264_context) |
{ |
struct i965_h264_context *i965_h264_context = (struct i965_h264_context *)h264_context; |
if (i965_h264_context->use_avc_hw_scoreboard) { |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
avc_hw_scoreboard_context->inline_data.num_mb_cmds = i965_h264_context->avc_it_command_mb_info.mbs; |
avc_hw_scoreboard_context->inline_data.starting_mb_number = i965_h264_context->avc_it_command_mb_info.mbs; |
avc_hw_scoreboard_context->inline_data.pic_width_in_mbs = i965_h264_context->picture.width_in_mbs; |
avc_hw_scoreboard_context->surface.total_mbs = i965_h264_context->avc_it_command_mb_info.mbs * 2; |
dri_bo_unreference(avc_hw_scoreboard_context->hw_kernel.bo); |
avc_hw_scoreboard_context->hw_kernel.bo = i965_h264_context->avc_kernels[H264_AVC_COMBINED].bo; |
assert(avc_hw_scoreboard_context->hw_kernel.bo != NULL); |
dri_bo_reference(avc_hw_scoreboard_context->hw_kernel.bo); |
if (i965_h264_context->picture.mbaff_frame_flag) |
avc_hw_scoreboard_context->hw_kernel.offset = avc_hw_scoreboard_kernel_offset[AVC_HW_SCOREBOARD_MBAFF]; |
else |
avc_hw_scoreboard_context->hw_kernel.offset = avc_hw_scoreboard_kernel_offset[AVC_HW_SCOREBOARD]; |
i965_avc_hw_scoreboard_states_setup(i965_h264_context); |
i965_avc_hw_scoreboard_pipeline_setup(ctx, i965_h264_context); |
} |
} |
void |
i965_avc_hw_scoreboard_decode_init(VADriverContextP ctx, void *h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_h264_context *i965_h264_context = (struct i965_h264_context *)h264_context; |
if (i965_h264_context->use_avc_hw_scoreboard) { |
struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context = &i965_h264_context->avc_hw_scoreboard_context; |
dri_bo *bo; |
if (avc_hw_scoreboard_context->curbe.bo == NULL) { |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"constant buffer", |
4096, 64); |
assert(bo); |
avc_hw_scoreboard_context->curbe.bo = bo; |
avc_hw_scoreboard_context->curbe.upload = 0; |
} |
dri_bo_unreference(avc_hw_scoreboard_context->surface.s_bo); |
avc_hw_scoreboard_context->surface.s_bo = i965_h264_context->avc_it_command_mb_info.bo; |
assert(avc_hw_scoreboard_context->surface.s_bo != NULL); |
dri_bo_reference(avc_hw_scoreboard_context->surface.s_bo); |
dri_bo_unreference(avc_hw_scoreboard_context->surface.ss_bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state", |
sizeof(struct i965_surface_state), 32); |
assert(bo); |
avc_hw_scoreboard_context->surface.ss_bo = bo; |
dri_bo_unreference(avc_hw_scoreboard_context->binding_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"binding table", |
MAX_MEDIA_SURFACES * sizeof(unsigned int), 32); |
assert(bo); |
avc_hw_scoreboard_context->binding_table.bo = bo; |
dri_bo_unreference(avc_hw_scoreboard_context->idrt.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"interface discriptor", |
MAX_INTERFACE_DESC * sizeof(struct i965_interface_descriptor), 16); |
assert(bo); |
avc_hw_scoreboard_context->idrt.bo = bo; |
dri_bo_unreference(avc_hw_scoreboard_context->vfe_state.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vfe state", |
sizeof(struct i965_vfe_state), 32); |
assert(bo); |
avc_hw_scoreboard_context->vfe_state.bo = bo; |
avc_hw_scoreboard_context->urb.num_vfe_entries = 32; |
avc_hw_scoreboard_context->urb.size_vfe_entry = 2; |
avc_hw_scoreboard_context->urb.num_cs_entries = 1; |
avc_hw_scoreboard_context->urb.size_cs_entry = 1; |
avc_hw_scoreboard_context->urb.vfe_start = 0; |
avc_hw_scoreboard_context->urb.cs_start = avc_hw_scoreboard_context->urb.vfe_start + |
avc_hw_scoreboard_context->urb.num_vfe_entries * avc_hw_scoreboard_context->urb.size_vfe_entry; |
assert(avc_hw_scoreboard_context->urb.cs_start + |
avc_hw_scoreboard_context->urb.num_cs_entries * avc_hw_scoreboard_context->urb.size_cs_entry <= URB_SIZE((&i965->intel))); |
} |
} |
Bool |
i965_avc_hw_scoreboard_ternimate(struct i965_avc_hw_scoreboard_context *avc_hw_scoreboard_context) |
{ |
dri_bo_unreference(avc_hw_scoreboard_context->curbe.bo); |
avc_hw_scoreboard_context->curbe.bo = NULL; |
dri_bo_unreference(avc_hw_scoreboard_context->surface.ss_bo); |
avc_hw_scoreboard_context->surface.ss_bo = NULL; |
dri_bo_unreference(avc_hw_scoreboard_context->surface.s_bo); |
avc_hw_scoreboard_context->surface.s_bo = NULL; |
dri_bo_unreference(avc_hw_scoreboard_context->binding_table.bo); |
avc_hw_scoreboard_context->binding_table.bo = NULL; |
dri_bo_unreference(avc_hw_scoreboard_context->idrt.bo); |
avc_hw_scoreboard_context->idrt.bo = NULL; |
dri_bo_unreference(avc_hw_scoreboard_context->vfe_state.bo); |
avc_hw_scoreboard_context->vfe_state.bo = NULL; |
dri_bo_unreference(avc_hw_scoreboard_context->hw_kernel.bo); |
avc_hw_scoreboard_context->hw_kernel.bo = NULL; |
return True; |
} |
/drivers/video/i965/i965_avc_hw_scoreboard.h |
---|
0,0 → 1,85 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#ifndef __I965_AVC_HW_SCOREBOARD_H__ |
#define __I965_AVC_HW_SCOREBOARD_H__ |
struct i965_avc_hw_scoreboard_context |
{ |
struct { |
unsigned int num_mb_cmds; |
unsigned int starting_mb_number; |
unsigned int pic_width_in_mbs; |
} inline_data; |
struct { |
dri_bo *ss_bo; |
dri_bo *s_bo; |
unsigned int total_mbs; |
} surface; |
struct { |
dri_bo *bo; |
} binding_table; |
struct { |
dri_bo *bo; |
} idrt; |
struct { |
dri_bo *bo; |
} vfe_state; |
struct { |
dri_bo *bo; |
int upload; |
} curbe; |
struct { |
dri_bo *bo; |
unsigned long offset; |
} hw_kernel; |
struct { |
unsigned int vfe_start; |
unsigned int cs_start; |
unsigned int num_vfe_entries; |
unsigned int num_cs_entries; |
unsigned int size_vfe_entry; |
unsigned int size_cs_entry; |
} urb; |
}; |
void i965_avc_hw_scoreboard(VADriverContextP, struct decode_state *, void *h264_context); |
void i965_avc_hw_scoreboard_decode_init(VADriverContextP, void *h264_context); |
Bool i965_avc_hw_scoreboard_ternimate(struct i965_avc_hw_scoreboard_context *); |
#endif /* __I965_AVC_HW_SCOREBOARD_H__ */ |
/drivers/video/i965/i965_avc_ildb.c |
---|
0,0 → 1,653 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#include <stdio.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_avc_ildb.h" |
#include "i965_media_h264.h" |
#include "i965_media.h" |
/* On Cantiga */ |
#include "shaders/h264/mc/export.inc" |
/* On Ironlake */ |
#include "shaders/h264/mc/export.inc.gen5" |
#define PICTURE_FRAME 0 |
#define PICTURE_FIELD 1 |
#define PICTURE_MBAFF 2 |
enum { |
AVC_ILDB_ROOT_Y_ILDB_FRAME, |
AVC_ILDB_CHILD_Y_ILDB_FRAME, |
AVC_ILDB_ROOT_UV_ILDB_FRAME, |
AVC_ILDB_CHILD_UV_ILDB_FRAME, |
AVC_ILDB_ROOT_Y_ILDB_FIELD, |
AVC_ILDB_CHILD_Y_ILDB_FIELD, |
AVC_ILDB_ROOT_UV_ILDB_FIELD, |
AVC_ILDB_CHILD_UV_ILDB_FIELD, |
AVC_ILDB_ROOT_Y_ILDB_MBAFF, |
AVC_ILDB_CHILD_Y_ILDB_MBAFF, |
AVC_ILDB_ROOT_UV_ILDB_MBAFF, |
AVC_ILDB_CHILD_UV_ILDB_MBAFF |
}; |
static unsigned long avc_ildb_kernel_offset_gen4[] = { |
AVC_ILDB_ROOT_Y_ILDB_FRAME_IP * INST_UNIT_GEN4, |
AVC_ILDB_CHILD_Y_ILDB_FRAME_IP * INST_UNIT_GEN4, |
AVC_ILDB_ROOT_UV_ILDB_FRAME_IP * INST_UNIT_GEN4, |
AVC_ILDB_CHILD_UV_ILDB_FRAME_IP * INST_UNIT_GEN4, |
AVC_ILDB_ROOT_Y_ILDB_FIELD_IP * INST_UNIT_GEN4, |
AVC_ILDB_CHILD_Y_ILDB_FIELD_IP * INST_UNIT_GEN4, |
AVC_ILDB_ROOT_UV_ILDB_FIELD_IP * INST_UNIT_GEN4, |
AVC_ILDB_CHILD_UV_ILDB_FIELD_IP * INST_UNIT_GEN4, |
AVC_ILDB_ROOT_Y_ILDB_MBAFF_IP * INST_UNIT_GEN4, |
AVC_ILDB_CHILD_Y_ILDB_MBAFF_IP * INST_UNIT_GEN4, |
AVC_ILDB_ROOT_UV_ILDB_MBAFF_IP * INST_UNIT_GEN4, |
AVC_ILDB_CHILD_UV_ILDB_MBAFF_IP * INST_UNIT_GEN4 |
}; |
static unsigned long avc_ildb_kernel_offset_gen5[] = { |
AVC_ILDB_ROOT_Y_ILDB_FRAME_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_CHILD_Y_ILDB_FRAME_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_ROOT_UV_ILDB_FRAME_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_CHILD_UV_ILDB_FRAME_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_ROOT_Y_ILDB_FIELD_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_CHILD_Y_ILDB_FIELD_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_ROOT_UV_ILDB_FIELD_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_CHILD_UV_ILDB_FIELD_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_ROOT_Y_ILDB_MBAFF_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_CHILD_Y_ILDB_MBAFF_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_ROOT_UV_ILDB_MBAFF_IP_GEN5 * INST_UNIT_GEN5, |
AVC_ILDB_CHILD_UV_ILDB_MBAFF_IP_GEN5 * INST_UNIT_GEN5 |
}; |
struct avc_ildb_root_input |
{ |
unsigned int blocks_per_row : 16; |
unsigned int blocks_per_column : 16; |
unsigned int picture_type : 16; |
unsigned int max_concurrent_threads : 16; |
unsigned int debug_field : 16; |
unsigned int mbaff_frame_flag : 1; |
unsigned int bottom_field_flag : 1; |
unsigned int control_data_expansion_flag : 1; |
unsigned int chroma_format : 1; |
unsigned int pad0 : 12; |
unsigned int ramp_constant_0; |
unsigned int ramp_constant_1; |
int constant_0 : 8; |
int constant_1 : 8; |
int pad1 : 16; |
unsigned int pad2; |
unsigned int pad3; |
}; |
#define NUM_AVC_ILDB_INTERFACES ARRAY_ELEMS(avc_ildb_kernel_offset_gen4) |
static unsigned long *avc_ildb_kernel_offset = NULL; |
static void |
i965_avc_ildb_surface_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_h264_context *i965_h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context; |
struct i965_surface_state *ss; |
struct object_surface *obj_surface; |
VAPictureParameterBufferH264 *pic_param; |
VAPictureH264 *va_pic; |
dri_bo *bo; |
int i; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
va_pic = &pic_param->CurrPic; |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface); |
avc_ildb_context->surface[SURFACE_EDGE_CONTROL_DATA].s_bo = i965_h264_context->avc_ildb_data.bo; |
dri_bo_reference(avc_ildb_context->surface[SURFACE_EDGE_CONTROL_DATA].s_bo); |
avc_ildb_context->surface[SURFACE_EDGE_CONTROL_DATA].offset = 0; |
avc_ildb_context->surface[SURFACE_EDGE_CONTROL_DATA].surface_type = I965_SURFACE_BUFFER; |
avc_ildb_context->surface[SURFACE_EDGE_CONTROL_DATA].width = ((avc_ildb_context->mbs_per_picture * EDGE_CONTROL_DATA_IN_DWS - 1) & 0x7f); |
avc_ildb_context->surface[SURFACE_EDGE_CONTROL_DATA].height = (((avc_ildb_context->mbs_per_picture * EDGE_CONTROL_DATA_IN_DWS - 1) >> 7) & 0x1fff); |
avc_ildb_context->surface[SURFACE_EDGE_CONTROL_DATA].depth = (((avc_ildb_context->mbs_per_picture * EDGE_CONTROL_DATA_IN_DWS - 1) >> 20) & 0x7f); |
avc_ildb_context->surface[SURFACE_EDGE_CONTROL_DATA].pitch = EDGE_CONTROL_DATA_IN_BTYES - 1; |
avc_ildb_context->surface[SURFACE_EDGE_CONTROL_DATA].is_target = 0; |
avc_ildb_context->surface[SURFACE_SRC_Y].s_bo = obj_surface->bo; |
dri_bo_reference(avc_ildb_context->surface[SURFACE_SRC_Y].s_bo); |
avc_ildb_context->surface[SURFACE_SRC_Y].offset = 0; |
avc_ildb_context->surface[SURFACE_SRC_Y].surface_type = I965_SURFACE_2D; |
avc_ildb_context->surface[SURFACE_SRC_Y].format = I965_SURFACEFORMAT_R8_SINT; |
avc_ildb_context->surface[SURFACE_SRC_Y].width = obj_surface->width / 4 - 1; |
avc_ildb_context->surface[SURFACE_SRC_Y].height = obj_surface->height - 1; |
avc_ildb_context->surface[SURFACE_SRC_Y].depth = 0; |
avc_ildb_context->surface[SURFACE_SRC_Y].pitch = obj_surface->width - 1; |
avc_ildb_context->surface[SURFACE_SRC_Y].vert_line_stride = !!(va_pic->flags & (VA_PICTURE_H264_TOP_FIELD | VA_PICTURE_H264_BOTTOM_FIELD)); |
avc_ildb_context->surface[SURFACE_SRC_Y].vert_line_stride_ofs = !!(va_pic->flags & VA_PICTURE_H264_BOTTOM_FIELD); |
avc_ildb_context->surface[SURFACE_SRC_Y].is_target = 0; |
avc_ildb_context->surface[SURFACE_SRC_UV].s_bo = obj_surface->bo; |
dri_bo_reference(avc_ildb_context->surface[SURFACE_SRC_UV].s_bo); |
avc_ildb_context->surface[SURFACE_SRC_UV].offset = obj_surface->width * obj_surface->height; |
avc_ildb_context->surface[SURFACE_SRC_UV].surface_type = I965_SURFACE_2D; |
avc_ildb_context->surface[SURFACE_SRC_UV].format = I965_SURFACEFORMAT_R8G8_SINT; |
avc_ildb_context->surface[SURFACE_SRC_UV].width = obj_surface->width / 4 - 1; |
avc_ildb_context->surface[SURFACE_SRC_UV].height = obj_surface->height / 2 - 1; |
avc_ildb_context->surface[SURFACE_SRC_UV].depth = 0; |
avc_ildb_context->surface[SURFACE_SRC_UV].pitch = obj_surface->width - 1; |
avc_ildb_context->surface[SURFACE_SRC_UV].vert_line_stride = !!(va_pic->flags & (VA_PICTURE_H264_TOP_FIELD | VA_PICTURE_H264_BOTTOM_FIELD)); |
avc_ildb_context->surface[SURFACE_SRC_UV].vert_line_stride_ofs = !!(va_pic->flags & VA_PICTURE_H264_BOTTOM_FIELD); |
avc_ildb_context->surface[SURFACE_SRC_UV].is_target = 0; |
avc_ildb_context->surface[SURFACE_DEST_Y].s_bo = obj_surface->bo; |
dri_bo_reference(avc_ildb_context->surface[SURFACE_DEST_Y].s_bo); |
avc_ildb_context->surface[SURFACE_DEST_Y].offset = 0; |
avc_ildb_context->surface[SURFACE_DEST_Y].surface_type = I965_SURFACE_2D; |
avc_ildb_context->surface[SURFACE_DEST_Y].format = I965_SURFACEFORMAT_R8_SINT; |
avc_ildb_context->surface[SURFACE_DEST_Y].width = obj_surface->width / 4 - 1; |
avc_ildb_context->surface[SURFACE_DEST_Y].height = obj_surface->height - 1; |
avc_ildb_context->surface[SURFACE_DEST_Y].depth = 0; |
avc_ildb_context->surface[SURFACE_DEST_Y].pitch = obj_surface->width - 1; |
avc_ildb_context->surface[SURFACE_DEST_Y].vert_line_stride = !!(va_pic->flags & (VA_PICTURE_H264_TOP_FIELD | VA_PICTURE_H264_BOTTOM_FIELD)); |
avc_ildb_context->surface[SURFACE_DEST_Y].vert_line_stride_ofs = !!(va_pic->flags & VA_PICTURE_H264_BOTTOM_FIELD); |
avc_ildb_context->surface[SURFACE_DEST_Y].is_target = 1; |
avc_ildb_context->surface[SURFACE_DEST_UV].s_bo = obj_surface->bo; |
dri_bo_reference(avc_ildb_context->surface[SURFACE_DEST_UV].s_bo); |
avc_ildb_context->surface[SURFACE_DEST_UV].offset = obj_surface->width * obj_surface->height; |
avc_ildb_context->surface[SURFACE_DEST_UV].surface_type = I965_SURFACE_2D; |
avc_ildb_context->surface[SURFACE_DEST_UV].format = I965_SURFACEFORMAT_R8G8_SINT; |
avc_ildb_context->surface[SURFACE_DEST_UV].width = obj_surface->width / 4 - 1; |
avc_ildb_context->surface[SURFACE_DEST_UV].height = obj_surface->height / 2 - 1; |
avc_ildb_context->surface[SURFACE_DEST_UV].depth = 0; |
avc_ildb_context->surface[SURFACE_DEST_UV].pitch = obj_surface->width - 1; |
avc_ildb_context->surface[SURFACE_DEST_UV].vert_line_stride = !!(va_pic->flags & (VA_PICTURE_H264_TOP_FIELD | VA_PICTURE_H264_BOTTOM_FIELD)); |
avc_ildb_context->surface[SURFACE_DEST_UV].vert_line_stride_ofs = !!(va_pic->flags & VA_PICTURE_H264_BOTTOM_FIELD); |
avc_ildb_context->surface[SURFACE_DEST_UV].is_target = 1; |
for (i = 0; i < NUM_AVC_ILDB_SURFACES; i++) { |
bo = avc_ildb_context->surface[i].ss_bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
ss = bo->virtual; |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_type = avc_ildb_context->surface[i].surface_type; |
ss->ss0.surface_format = avc_ildb_context->surface[i].format; |
ss->ss0.vert_line_stride = avc_ildb_context->surface[i].vert_line_stride; |
ss->ss0.vert_line_stride_ofs = avc_ildb_context->surface[i].vert_line_stride_ofs; |
ss->ss1.base_addr = avc_ildb_context->surface[i].s_bo->offset + avc_ildb_context->surface[i].offset; |
ss->ss2.width = avc_ildb_context->surface[i].width; |
ss->ss2.height = avc_ildb_context->surface[i].height; |
ss->ss3.depth = avc_ildb_context->surface[i].depth; |
ss->ss3.pitch = avc_ildb_context->surface[i].pitch; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_RENDER, |
avc_ildb_context->surface[i].is_target ? I915_GEM_DOMAIN_RENDER : 0, |
avc_ildb_context->surface[i].offset, |
offsetof(struct i965_surface_state, ss1), |
avc_ildb_context->surface[i].s_bo); |
dri_bo_unmap(bo); |
} |
} |
static void |
i965_avc_ildb_binding_table(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context; |
unsigned int *binding_table; |
dri_bo *bo = avc_ildb_context->binding_table.bo; |
int i; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
binding_table = bo->virtual; |
memset(binding_table, 0, bo->size); |
for (i = 0; i < NUM_AVC_ILDB_SURFACES; i++) { |
binding_table[i] = avc_ildb_context->surface[i].ss_bo->offset; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
i * sizeof(*binding_table), |
avc_ildb_context->surface[i].ss_bo); |
} |
dri_bo_unmap(bo); |
} |
static void |
i965_avc_ildb_interface_descriptor_table(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context; |
struct i965_interface_descriptor *desc; |
dri_bo *bo; |
int i; |
bo = avc_ildb_context->idrt.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
desc = bo->virtual; |
for (i = 0; i < NUM_AVC_ILDB_INTERFACES; i++) { |
int kernel_offset = avc_ildb_kernel_offset[i]; |
memset(desc, 0, sizeof(*desc)); |
desc->desc0.grf_reg_blocks = 7; |
desc->desc0.kernel_start_pointer = (i965_h264_context->avc_kernels[H264_AVC_COMBINED].bo->offset + kernel_offset) >> 6; /* reloc */ |
desc->desc1.const_urb_entry_read_offset = 0; |
desc->desc1.const_urb_entry_read_len = ((i == AVC_ILDB_ROOT_Y_ILDB_FRAME || |
i == AVC_ILDB_ROOT_Y_ILDB_FIELD || |
i == AVC_ILDB_ROOT_Y_ILDB_MBAFF) ? 1 : 0); |
desc->desc3.binding_table_entry_count = 0; |
desc->desc3.binding_table_pointer = |
avc_ildb_context->binding_table.bo->offset >> 5; /*reloc */ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc0.grf_reg_blocks + kernel_offset, |
i * sizeof(*desc) + offsetof(struct i965_interface_descriptor, desc0), |
i965_h264_context->avc_kernels[H264_AVC_COMBINED].bo); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc3.binding_table_entry_count, |
i * sizeof(*desc) + offsetof(struct i965_interface_descriptor, desc3), |
avc_ildb_context->binding_table.bo); |
desc++; |
} |
dri_bo_unmap(bo); |
} |
static void |
i965_avc_ildb_vfe_state(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context; |
struct i965_vfe_state *vfe_state; |
dri_bo *bo; |
bo = avc_ildb_context->vfe_state.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
vfe_state = bo->virtual; |
memset(vfe_state, 0, sizeof(*vfe_state)); |
vfe_state->vfe1.max_threads = 0; |
vfe_state->vfe1.urb_entry_alloc_size = avc_ildb_context->urb.size_vfe_entry - 1; |
vfe_state->vfe1.num_urb_entries = avc_ildb_context->urb.num_vfe_entries; |
vfe_state->vfe1.vfe_mode = VFE_GENERIC_MODE; |
vfe_state->vfe1.children_present = 1; |
vfe_state->vfe2.interface_descriptor_base = |
avc_ildb_context->idrt.bo->offset >> 4; /* reloc */ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
offsetof(struct i965_vfe_state, vfe2), |
avc_ildb_context->idrt.bo); |
dri_bo_unmap(bo); |
} |
static void |
i965_avc_ildb_upload_constants(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_h264_context *i965_h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context; |
VAPictureParameterBufferH264 *pic_param; |
struct avc_ildb_root_input *root_input; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
dri_bo_map(avc_ildb_context->curbe.bo, 1); |
assert(avc_ildb_context->curbe.bo->virtual); |
root_input = avc_ildb_context->curbe.bo->virtual; |
if (IS_IRONLAKE(i965->intel.device_id)) { |
root_input->max_concurrent_threads = 76; /* 72 - 2 + 8 - 2 */ |
} else { |
root_input->max_concurrent_threads = 54; /* 50 - 2 + 8 - 2 */ |
} |
if (pic_param->pic_fields.bits.field_pic_flag) |
root_input->picture_type = PICTURE_FIELD; |
else { |
if (pic_param->seq_fields.bits.mb_adaptive_frame_field_flag) |
root_input->picture_type = PICTURE_MBAFF; |
else |
root_input->picture_type = PICTURE_FRAME; |
} |
avc_ildb_context->picture_type = root_input->picture_type; |
root_input->blocks_per_row = pic_param->picture_width_in_mbs_minus1 + 1; |
root_input->blocks_per_column = (pic_param->picture_height_in_mbs_minus1 + 1) / |
(1 + (root_input->picture_type != PICTURE_FRAME)); |
avc_ildb_context->mbs_per_picture = (pic_param->picture_width_in_mbs_minus1 + 1) * |
(pic_param->picture_height_in_mbs_minus1 + 1); |
root_input->mbaff_frame_flag = (root_input->picture_type == PICTURE_MBAFF); |
root_input->bottom_field_flag = !!(pic_param->CurrPic.flags & VA_PICTURE_H264_BOTTOM_FIELD); |
root_input->control_data_expansion_flag = 1; /* Always 1 on G4x+ */ |
root_input->chroma_format = (pic_param->seq_fields.bits.chroma_format_idc != 1); /* 0=4:0:0, 1=4:2:0 */ |
root_input->ramp_constant_0 = 0x03020100; |
root_input->ramp_constant_1 = 0x07060504; |
root_input->constant_0 = -2; |
root_input->constant_1 = 1; |
dri_bo_unmap(avc_ildb_context->curbe.bo); |
} |
static void |
i965_avc_ildb_states_setup(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_h264_context *i965_h264_context) |
{ |
i965_avc_ildb_surface_state(ctx, decode_state, i965_h264_context); |
i965_avc_ildb_binding_table(ctx, i965_h264_context); |
i965_avc_ildb_interface_descriptor_table(ctx, i965_h264_context); |
i965_avc_ildb_vfe_state(ctx, i965_h264_context); |
i965_avc_ildb_upload_constants(ctx, decode_state, i965_h264_context); |
} |
static void |
i965_avc_ildb_pipeline_select(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
BEGIN_BATCH(batch, 1); |
OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_ildb_urb_layout(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context; |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
unsigned int vfe_fence, cs_fence; |
vfe_fence = avc_ildb_context->urb.cs_start; |
cs_fence = URB_SIZE((&i965->intel)); |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, CMD_URB_FENCE | UF0_VFE_REALLOC | UF0_CS_REALLOC | 1); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, |
(vfe_fence << UF2_VFE_FENCE_SHIFT) | /* VFE_SIZE */ |
(cs_fence << UF2_CS_FENCE_SHIFT)); /* CS_SIZE */ |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_ildb_state_base_address(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
if (IS_IRONLAKE(i965->intel.device_id)) { |
BEGIN_BATCH(batch, 8); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | 6); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
ADVANCE_BATCH(batch); |
} else { |
BEGIN_BATCH(batch, 6); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | 4); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
ADVANCE_BATCH(batch); |
} |
} |
static void |
i965_avc_ildb_state_pointers(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context; |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, CMD_MEDIA_STATE_POINTERS | 1); |
OUT_BATCH(batch, 0); |
OUT_RELOC(batch, avc_ildb_context->vfe_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_ildb_cs_urb_layout(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context; |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_CS_URB_STATE | 0); |
OUT_BATCH(batch, |
((avc_ildb_context->urb.size_cs_entry - 1) << 4) | /* URB Entry Allocation Size */ |
(avc_ildb_context->urb.num_cs_entries << 0)); /* Number of URB Entries */ |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_ildb_constant_buffer(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context; |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_CONSTANT_BUFFER | (1 << 8) | (2 - 2)); |
OUT_RELOC(batch, avc_ildb_context->curbe.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
avc_ildb_context->urb.size_cs_entry - 1); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_ildb_objects(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context; |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
BEGIN_BATCH(batch, 6); |
OUT_BATCH(batch, CMD_MEDIA_OBJECT | 4); |
switch (avc_ildb_context->picture_type) { |
case PICTURE_FRAME: |
OUT_BATCH(batch, AVC_ILDB_ROOT_Y_ILDB_FRAME); |
break; |
case PICTURE_FIELD: |
OUT_BATCH(batch, AVC_ILDB_ROOT_Y_ILDB_FIELD); |
break; |
case PICTURE_MBAFF: |
OUT_BATCH(batch, AVC_ILDB_ROOT_Y_ILDB_MBAFF); |
break; |
default: |
assert(0); |
OUT_BATCH(batch, 0); |
break; |
} |
OUT_BATCH(batch, 0); /* no indirect data */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_avc_ildb_pipeline_setup(VADriverContextP ctx, struct i965_h264_context *i965_h264_context) |
{ |
struct intel_batchbuffer *batch = i965_h264_context->batch; |
intel_batchbuffer_emit_mi_flush(batch); |
i965_avc_ildb_pipeline_select(ctx, i965_h264_context); |
i965_avc_ildb_state_base_address(ctx, i965_h264_context); |
i965_avc_ildb_state_pointers(ctx, i965_h264_context); |
i965_avc_ildb_urb_layout(ctx, i965_h264_context); |
i965_avc_ildb_cs_urb_layout(ctx, i965_h264_context); |
i965_avc_ildb_constant_buffer(ctx, i965_h264_context); |
i965_avc_ildb_objects(ctx, i965_h264_context); |
} |
void |
i965_avc_ildb(VADriverContextP ctx, struct decode_state *decode_state, void *h264_context) |
{ |
struct i965_h264_context *i965_h264_context = (struct i965_h264_context *)h264_context; |
if (i965_h264_context->enable_avc_ildb) { |
i965_avc_ildb_states_setup(ctx, decode_state, i965_h264_context); |
i965_avc_ildb_pipeline_setup(ctx, i965_h264_context); |
} |
} |
void |
i965_avc_ildb_decode_init(VADriverContextP ctx, void *h264_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_h264_context *i965_h264_context = (struct i965_h264_context *)h264_context; |
struct i965_avc_ildb_context *avc_ildb_context = &i965_h264_context->avc_ildb_context;; |
dri_bo *bo; |
int i; |
dri_bo_unreference(avc_ildb_context->curbe.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"constant buffer", |
4096, 64); |
assert(bo); |
avc_ildb_context->curbe.bo = bo; |
dri_bo_unreference(avc_ildb_context->binding_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"binding table", |
NUM_AVC_ILDB_SURFACES * sizeof(unsigned int), 32); |
assert(bo); |
avc_ildb_context->binding_table.bo = bo; |
dri_bo_unreference(avc_ildb_context->idrt.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"interface discriptor", |
NUM_AVC_ILDB_INTERFACES * sizeof(struct i965_interface_descriptor), 16); |
assert(bo); |
avc_ildb_context->idrt.bo = bo; |
dri_bo_unreference(avc_ildb_context->vfe_state.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vfe state", |
sizeof(struct i965_vfe_state), 32); |
assert(bo); |
avc_ildb_context->vfe_state.bo = bo; |
avc_ildb_context->urb.num_vfe_entries = 1; |
avc_ildb_context->urb.size_vfe_entry = 640; |
avc_ildb_context->urb.num_cs_entries = 1; |
avc_ildb_context->urb.size_cs_entry = 1; |
avc_ildb_context->urb.vfe_start = 0; |
avc_ildb_context->urb.cs_start = avc_ildb_context->urb.vfe_start + |
avc_ildb_context->urb.num_vfe_entries * avc_ildb_context->urb.size_vfe_entry; |
assert(avc_ildb_context->urb.cs_start + |
avc_ildb_context->urb.num_cs_entries * avc_ildb_context->urb.size_cs_entry <= URB_SIZE((&i965->intel))); |
for (i = 0; i < NUM_AVC_ILDB_SURFACES; i++) { |
dri_bo_unreference(avc_ildb_context->surface[i].s_bo); |
avc_ildb_context->surface[i].s_bo = NULL; |
dri_bo_unreference(avc_ildb_context->surface[i].ss_bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state", |
sizeof(struct i965_surface_state), 32); |
assert(bo); |
avc_ildb_context->surface[i].ss_bo = bo; |
} |
/* kernel offset */ |
assert(NUM_AVC_ILDB_INTERFACES == ARRAY_ELEMS(avc_ildb_kernel_offset_gen5)); |
if (IS_IRONLAKE(i965->intel.device_id)) { |
avc_ildb_kernel_offset = avc_ildb_kernel_offset_gen5; |
} else { |
avc_ildb_kernel_offset = avc_ildb_kernel_offset_gen4; |
} |
} |
Bool |
i965_avc_ildb_ternimate(struct i965_avc_ildb_context *avc_ildb_context) |
{ |
int i; |
dri_bo_unreference(avc_ildb_context->curbe.bo); |
avc_ildb_context->curbe.bo = NULL; |
dri_bo_unreference(avc_ildb_context->binding_table.bo); |
avc_ildb_context->binding_table.bo = NULL; |
dri_bo_unreference(avc_ildb_context->idrt.bo); |
avc_ildb_context->idrt.bo = NULL; |
dri_bo_unreference(avc_ildb_context->vfe_state.bo); |
avc_ildb_context->vfe_state.bo = NULL; |
for (i = 0; i < NUM_AVC_ILDB_SURFACES; i++) { |
dri_bo_unreference(avc_ildb_context->surface[i].ss_bo); |
avc_ildb_context->surface[i].ss_bo = NULL; |
dri_bo_unreference(avc_ildb_context->surface[i].s_bo); |
avc_ildb_context->surface[i].s_bo = NULL; |
} |
return True; |
} |
/drivers/video/i965/i965_avc_ildb.h |
---|
0,0 → 1,96 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#ifndef __I965_AVC_ILDB_H__ |
#define __I965_AVC_ILDB_H__ |
#define SURFACE_EDGE_CONTROL_DATA 0 |
#define SURFACE_SRC_Y 1 |
#define SURFACE_SRC_UV 2 |
#define SURFACE_DEST_Y 3 |
#define SURFACE_DEST_UV 4 |
#define NUM_AVC_ILDB_SURFACES 5 |
#define EDGE_CONTROL_DATA_IN_DWS 16 |
#define EDGE_CONTROL_DATA_IN_BTYES 64 |
struct i965_avc_ildb_context |
{ |
struct { |
dri_bo *bo; |
} curbe; |
struct { |
dri_bo *ss_bo; |
dri_bo *s_bo; |
unsigned long offset; |
int surface_type; |
int width; |
int height; |
int depth; |
int pitch; |
int format; |
int vert_line_stride; |
int vert_line_stride_ofs; |
int is_target; |
} surface[NUM_AVC_ILDB_SURFACES]; |
struct { |
dri_bo *bo; |
} binding_table; |
struct { |
dri_bo *bo; |
} idrt; |
struct { |
dri_bo *bo; |
} vfe_state; |
struct { |
unsigned int vfe_start; |
unsigned int cs_start; |
unsigned int num_vfe_entries; |
unsigned int num_cs_entries; |
unsigned int size_vfe_entry; |
unsigned int size_cs_entry; |
} urb; |
int picture_type; |
int mbs_per_picture; |
}; |
void i965_avc_ildb(VADriverContextP, struct decode_state *, void *h264_context); |
void i965_avc_ildb_decode_init(VADriverContextP, void *h264_context); |
Bool i965_avc_ildb_ternimate(struct i965_avc_ildb_context *); |
#endif /* __I965_AVC_ILDB_H__ */ |
/drivers/video/i965/i965_decoder.h |
---|
0,0 → 1,91 |
/* |
* Copyright (C) 2012 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
*/ |
#ifndef I965_DECODER_H |
#define I965_DECODER_H |
#include <stdint.h> |
#include <stdlib.h> |
#include <va/va.h> |
#include <intel_bufmgr.h> |
#define MAX_GEN_REFERENCE_FRAMES 16 |
typedef struct gen_frame_store GenFrameStore; |
struct gen_frame_store { |
VASurfaceID surface_id; |
int frame_store_id; |
}; |
typedef struct gen_buffer GenBuffer; |
struct gen_buffer { |
dri_bo *bo; |
int valid; |
}; |
#if HAVE_GEN_AVC_SURFACE |
//static pthread_mutex_t free_avc_surface_lock = PTHREAD_MUTEX_INITIALIZER; |
typedef struct gen_avc_surface GenAvcSurface; |
struct gen_avc_surface |
{ |
dri_bo *dmv_top; |
dri_bo *dmv_bottom; |
int dmv_bottom_flag; |
}; |
static void |
gen_free_avc_surface(void **data) |
{ |
GenAvcSurface *avc_surface; |
// pthread_mutex_lock(&free_avc_surface_lock); |
avc_surface = *data; |
if (!avc_surface) { |
// pthread_mutex_unlock(&free_avc_surface_lock); |
return; |
} |
dri_bo_unreference(avc_surface->dmv_top); |
avc_surface->dmv_top = NULL; |
dri_bo_unreference(avc_surface->dmv_bottom); |
avc_surface->dmv_bottom = NULL; |
free(avc_surface); |
*data = NULL; |
// pthread_mutex_unlock(&free_avc_surface_lock); |
} |
#endif |
extern struct hw_context * |
gen75_dec_hw_context_init(VADriverContextP ctx, VAProfile profile); |
#endif /* I965_DECODER_H */ |
/drivers/video/i965/i965_decoder_utils.c |
---|
0,0 → 1,327 |
/* |
* Copyright (C) 2006-2012 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice (including the next |
* paragraph) shall be included in all copies or substantial portions of the |
* Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
*/ |
#include "sysdeps.h" |
#include <alloca.h> |
#include "intel_batchbuffer.h" |
#include "i965_decoder_utils.h" |
#include "i965_drv_video.h" |
#include "i965_defines.h" |
/* Set reference surface if backing store exists */ |
static inline int |
set_ref_frame( |
struct i965_driver_data *i965, |
GenFrameStore *ref_frame, |
VASurfaceID va_surface |
) |
{ |
struct object_surface *obj_surface; |
if (va_surface == VA_INVALID_ID) |
return 0; |
obj_surface = SURFACE(va_surface); |
if (!obj_surface || !obj_surface->bo) |
return 0; |
ref_frame->surface_id = va_surface; |
return 1; |
} |
/* Check wether codec layer incorrectly fills in slice_vertical_position */ |
int |
mpeg2_wa_slice_vertical_position( |
struct decode_state *decode_state, |
VAPictureParameterBufferMPEG2 *pic_param |
) |
{ |
unsigned int i, j, mb_height, vpos, last_vpos = 0; |
/* Assume progressive sequence if we got a progressive frame */ |
if (pic_param->picture_coding_extension.bits.progressive_frame) |
return 0; |
/* Wait for a field coded picture */ |
if (pic_param->picture_coding_extension.bits.picture_structure == MPEG_FRAME) |
return -1; |
assert(decode_state && decode_state->slice_params); |
mb_height = (pic_param->vertical_size + 31) / 32; |
for (j = 0; j < decode_state->num_slice_params; j++) { |
struct buffer_store * const buffer_store = |
decode_state->slice_params[j]; |
for (i = 0; i < buffer_store->num_elements; i++) { |
VASliceParameterBufferMPEG2 * const slice_param = |
((VASliceParameterBufferMPEG2 *)buffer_store->buffer) + i; |
vpos = slice_param->slice_vertical_position; |
if (vpos >= mb_height || vpos == last_vpos + 2) { |
WARN_ONCE("codec layer incorrectly fills in MPEG-2 slice_vertical_position. Workaround applied\n"); |
return 1; |
} |
last_vpos = vpos; |
} |
} |
return 0; |
} |
/* Build MPEG-2 reference frames array */ |
void |
mpeg2_set_reference_surfaces( |
VADriverContextP ctx, |
GenFrameStore ref_frames[MAX_GEN_REFERENCE_FRAMES], |
struct decode_state *decode_state, |
VAPictureParameterBufferMPEG2 *pic_param |
) |
{ |
struct i965_driver_data * const i965 = i965_driver_data(ctx); |
VASurfaceID va_surface; |
unsigned pic_structure, is_second_field, n = 0; |
pic_structure = pic_param->picture_coding_extension.bits.picture_structure; |
is_second_field = pic_structure != MPEG_FRAME && |
!pic_param->picture_coding_extension.bits.is_first_field; |
ref_frames[0].surface_id = VA_INVALID_ID; |
/* Reference frames are indexed by frame store ID (0:top, 1:bottom) */ |
switch (pic_param->picture_coding_type) { |
case MPEG_P_PICTURE: |
if (is_second_field && pic_structure == MPEG_BOTTOM_FIELD) { |
va_surface = decode_state->current_render_target; |
n += set_ref_frame(i965, &ref_frames[n], va_surface); |
} |
va_surface = pic_param->forward_reference_picture; |
n += set_ref_frame(i965, &ref_frames[n], va_surface); |
break; |
case MPEG_B_PICTURE: |
va_surface = pic_param->forward_reference_picture; |
n += set_ref_frame(i965, &ref_frames[n], va_surface); |
va_surface = pic_param->backward_reference_picture; |
n += set_ref_frame(i965, &ref_frames[n], va_surface); |
break; |
} |
while (n != 2) |
ref_frames[n++].surface_id = ref_frames[0].surface_id; |
if (pic_param->picture_coding_extension.bits.progressive_frame) |
return; |
ref_frames[2].surface_id = VA_INVALID_ID; |
/* Bottom field pictures used as reference */ |
switch (pic_param->picture_coding_type) { |
case MPEG_P_PICTURE: |
if (is_second_field && pic_structure == MPEG_TOP_FIELD) { |
va_surface = decode_state->current_render_target; |
n += set_ref_frame(i965, &ref_frames[n], va_surface); |
} |
va_surface = pic_param->forward_reference_picture; |
n += set_ref_frame(i965, &ref_frames[n], va_surface); |
break; |
case MPEG_B_PICTURE: |
va_surface = pic_param->forward_reference_picture; |
n += set_ref_frame(i965, &ref_frames[n], va_surface); |
va_surface = pic_param->backward_reference_picture; |
n += set_ref_frame(i965, &ref_frames[n], va_surface); |
break; |
} |
while (n != 4) |
ref_frames[n++].surface_id = ref_frames[2].surface_id; |
} |
/* Generate flat scaling matrices for H.264 decoding */ |
void |
avc_gen_default_iq_matrix(VAIQMatrixBufferH264 *iq_matrix) |
{ |
/* Flat_4x4_16 */ |
memset(&iq_matrix->ScalingList4x4, 16, sizeof(iq_matrix->ScalingList4x4)); |
/* Flat_8x8_16 */ |
memset(&iq_matrix->ScalingList8x8, 16, sizeof(iq_matrix->ScalingList8x8)); |
} |
/* Get first macroblock bit offset for BSD, minus EPB count (AVC) */ |
/* XXX: slice_data_bit_offset does not account for EPB */ |
unsigned int |
avc_get_first_mb_bit_offset( |
dri_bo *slice_data_bo, |
VASliceParameterBufferH264 *slice_param, |
unsigned int mode_flag |
) |
{ |
unsigned int slice_data_bit_offset = slice_param->slice_data_bit_offset; |
if (mode_flag == ENTROPY_CABAC) |
slice_data_bit_offset = ALIGN(slice_data_bit_offset, 0x8); |
return slice_data_bit_offset; |
} |
/* Get first macroblock bit offset for BSD, with EPB count (AVC) */ |
/* XXX: slice_data_bit_offset does not account for EPB */ |
unsigned int |
avc_get_first_mb_bit_offset_with_epb( |
dri_bo *slice_data_bo, |
VASliceParameterBufferH264 *slice_param, |
unsigned int mode_flag |
) |
{ |
unsigned int in_slice_data_bit_offset = slice_param->slice_data_bit_offset; |
unsigned int out_slice_data_bit_offset; |
unsigned int i, j, n, buf_size, data_size, header_size; |
uint8_t *buf; |
int ret; |
header_size = slice_param->slice_data_bit_offset / 8; |
data_size = slice_param->slice_data_size - slice_param->slice_data_offset; |
buf_size = (header_size * 3 + 1) / 2; // Max possible header size (x1.5) |
if (buf_size > data_size) |
buf_size = data_size; |
buf = alloca(buf_size); |
ret = dri_bo_get_subdata( |
slice_data_bo, slice_param->slice_data_offset, |
buf_size, buf |
); |
assert(ret == 0); |
for (i = 2, j = 2, n = 0; i < buf_size && j < header_size; i++, j++) { |
if (buf[i] == 0x03 && buf[i - 1] == 0x00 && buf[i - 2] == 0x00) |
i += 2, j++, n++; |
} |
out_slice_data_bit_offset = in_slice_data_bit_offset + n * 8; |
if (mode_flag == ENTROPY_CABAC) |
out_slice_data_bit_offset = ALIGN(out_slice_data_bit_offset, 0x8); |
return out_slice_data_bit_offset; |
} |
static inline uint8_t |
get_ref_idx_state_1(const VAPictureH264 *va_pic, unsigned int frame_store_id) |
{ |
const unsigned int is_long_term = |
!!(va_pic->flags & VA_PICTURE_H264_LONG_TERM_REFERENCE); |
const unsigned int is_top_field = |
!!(va_pic->flags & VA_PICTURE_H264_TOP_FIELD); |
const unsigned int is_bottom_field = |
!!(va_pic->flags & VA_PICTURE_H264_BOTTOM_FIELD); |
return ((is_long_term << 6) | |
((is_top_field ^ is_bottom_field ^ 1) << 5) | |
(frame_store_id << 1) | |
((is_top_field ^ 1) & is_bottom_field)); |
} |
/* Fill in Reference List Entries (Gen5+: ILK, SNB, IVB) */ |
void |
gen5_fill_avc_ref_idx_state( |
uint8_t state[32], |
const VAPictureH264 ref_list[32], |
unsigned int ref_list_count, |
const GenFrameStore frame_store[MAX_GEN_REFERENCE_FRAMES] |
) |
{ |
unsigned int i, n, frame_idx; |
for (i = 0, n = 0; i < ref_list_count; i++) { |
const VAPictureH264 * const va_pic = &ref_list[i]; |
if (va_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
for (frame_idx = 0; frame_idx < MAX_GEN_REFERENCE_FRAMES; frame_idx++) { |
const GenFrameStore * const fs = &frame_store[frame_idx]; |
if (fs->surface_id != VA_INVALID_ID && |
fs->surface_id == va_pic->picture_id) { |
assert(frame_idx == fs->frame_store_id); |
break; |
} |
} |
assert(frame_idx < MAX_GEN_REFERENCE_FRAMES); |
state[n++] = get_ref_idx_state_1(va_pic, frame_idx); |
} |
for (; n < 32; n++) |
state[n] = 0xff; |
} |
/* Emit Reference List Entries (Gen6+: SNB, IVB) */ |
static void |
gen6_send_avc_ref_idx_state_1( |
struct intel_batchbuffer *batch, |
unsigned int list, |
const VAPictureH264 *ref_list, |
unsigned int ref_list_count, |
const GenFrameStore frame_store[MAX_GEN_REFERENCE_FRAMES] |
) |
{ |
uint8_t ref_idx_state[32]; |
BEGIN_BCS_BATCH(batch, 10); |
OUT_BCS_BATCH(batch, MFX_AVC_REF_IDX_STATE | (10 - 2)); |
OUT_BCS_BATCH(batch, list); |
gen5_fill_avc_ref_idx_state( |
ref_idx_state, |
ref_list, ref_list_count, |
frame_store |
); |
intel_batchbuffer_data(batch, ref_idx_state, sizeof(ref_idx_state)); |
ADVANCE_BCS_BATCH(batch); |
} |
void |
gen6_send_avc_ref_idx_state( |
struct intel_batchbuffer *batch, |
const VASliceParameterBufferH264 *slice_param, |
const GenFrameStore frame_store[MAX_GEN_REFERENCE_FRAMES] |
) |
{ |
if (slice_param->slice_type == SLICE_TYPE_I || |
slice_param->slice_type == SLICE_TYPE_SI) |
return; |
/* RefPicList0 */ |
gen6_send_avc_ref_idx_state_1( |
batch, 0, |
slice_param->RefPicList0, slice_param->num_ref_idx_l0_active_minus1 + 1, |
frame_store |
); |
if (slice_param->slice_type != SLICE_TYPE_B) |
return; |
/* RefPicList1 */ |
gen6_send_avc_ref_idx_state_1( |
batch, 1, |
slice_param->RefPicList1, slice_param->num_ref_idx_l1_active_minus1 + 1, |
frame_store |
); |
} |
/drivers/video/i965/i965_decoder_utils.h |
---|
0,0 → 1,78 |
/* |
* Copyright (C) 2006-2012 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice (including the next |
* paragraph) shall be included in all copies or substantial portions of the |
* Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
*/ |
#ifndef I965_DECODER_UTILS_H |
#define I965_DECODER_UTILS_H |
#include "i965_decoder.h" |
#include "intel_batchbuffer.h" |
struct decode_state; |
int |
mpeg2_wa_slice_vertical_position( |
struct decode_state *decode_state, |
VAPictureParameterBufferMPEG2 *pic_param |
); |
void |
mpeg2_set_reference_surfaces( |
VADriverContextP ctx, |
GenFrameStore ref_frames[MAX_GEN_REFERENCE_FRAMES], |
struct decode_state *decode_state, |
VAPictureParameterBufferMPEG2 *pic_param |
); |
void |
avc_gen_default_iq_matrix(VAIQMatrixBufferH264 *iq_matrix); |
unsigned int |
avc_get_first_mb_bit_offset( |
dri_bo *slice_data_bo, |
VASliceParameterBufferH264 *slice_param, |
unsigned int mode_flag |
); |
unsigned int |
avc_get_first_mb_bit_offset_with_epb( |
dri_bo *slice_data_bo, |
VASliceParameterBufferH264 *slice_param, |
unsigned int mode_flag |
); |
void |
gen5_fill_avc_ref_idx_state( |
uint8_t state[32], |
const VAPictureH264 ref_list[32], |
unsigned int ref_list_count, |
const GenFrameStore frame_store[MAX_GEN_REFERENCE_FRAMES] |
); |
void |
gen6_send_avc_ref_idx_state( |
struct intel_batchbuffer *batch, |
const VASliceParameterBufferH264 *slice_param, |
const GenFrameStore frame_store[MAX_GEN_REFERENCE_FRAMES] |
); |
#endif /* I965_DECODER_UTILS_H */ |
/drivers/video/i965/i965_defines.h |
---|
0,0 → 1,753 |
#ifndef _I965_DEFINES_H_ |
#define _I965_DEFINES_H_ |
#define CMD(pipeline,op,sub_op) ((3 << 29) | \ |
((pipeline) << 27) | \ |
((op) << 24) | \ |
((sub_op) << 16)) |
#define CMD_URB_FENCE CMD(0, 0, 0) |
#define CMD_CS_URB_STATE CMD(0, 0, 1) |
#define CMD_CONSTANT_BUFFER CMD(0, 0, 2) |
#define CMD_STATE_PREFETCH CMD(0, 0, 3) |
#define CMD_STATE_BASE_ADDRESS CMD(0, 1, 1) |
#define CMD_STATE_SIP CMD(0, 1, 2) |
#define CMD_PIPELINE_SELECT CMD(1, 1, 4) |
#define CMD_SAMPLER_PALETTE_LOAD CMD(3, 1, 2) |
#define CMD_MEDIA_STATE_POINTERS CMD(2, 0, 0) |
#define CMD_MEDIA_VFE_STATE CMD(2, 0, 0) |
#define CMD_MEDIA_CURBE_LOAD CMD(2, 0, 1) |
#define CMD_MEDIA_INTERFACE_LOAD CMD(2, 0, 2) |
#define CMD_MEDIA_OBJECT CMD(2, 1, 0) |
#define CMD_MEDIA_OBJECT_EX CMD(2, 1, 1) |
#define CMD_AVC_BSD_IMG_STATE CMD(2, 4, 0) |
#define CMD_AVC_BSD_QM_STATE CMD(2, 4, 1) |
#define CMD_AVC_BSD_SLICE_STATE CMD(2, 4, 2) |
#define CMD_AVC_BSD_BUF_BASE_STATE CMD(2, 4, 3) |
#define CMD_BSD_IND_OBJ_BASE_ADDR CMD(2, 4, 4) |
#define CMD_AVC_BSD_OBJECT CMD(2, 4, 8) |
#define CMD_MEDIA_VFE_STATE CMD(2, 0, 0) |
#define CMD_MEDIA_CURBE_LOAD CMD(2, 0, 1) |
#define CMD_MEDIA_INTERFACE_DESCRIPTOR_LOAD CMD(2, 0, 2) |
#define CMD_MEDIA_GATEWAY_STATE CMD(2, 0, 3) |
#define CMD_MEDIA_STATE_FLUSH CMD(2, 0, 4) |
#define CMD_MEDIA_OBJECT_WALKER CMD(2, 1, 3) |
#define CMD_PIPELINED_POINTERS CMD(3, 0, 0) |
#define CMD_BINDING_TABLE_POINTERS CMD(3, 0, 1) |
# define GEN6_BINDING_TABLE_MODIFY_PS (1 << 12)/* for GEN6 */ |
# define GEN6_BINDING_TABLE_MODIFY_GS (1 << 9) /* for GEN6 */ |
# define GEN6_BINDING_TABLE_MODIFY_VS (1 << 8) /* for GEN6 */ |
#define CMD_VERTEX_BUFFERS CMD(3, 0, 8) |
#define CMD_VERTEX_ELEMENTS CMD(3, 0, 9) |
#define CMD_DRAWING_RECTANGLE CMD(3, 1, 0) |
#define CMD_CONSTANT_COLOR CMD(3, 1, 1) |
#define CMD_3DPRIMITIVE CMD(3, 3, 0) |
#define CMD_DEPTH_BUFFER CMD(3, 1, 5) |
# define CMD_DEPTH_BUFFER_TYPE_SHIFT 29 |
# define CMD_DEPTH_BUFFER_FORMAT_SHIFT 18 |
#define CMD_CLEAR_PARAMS CMD(3, 1, 0x10) |
/* DW1 */ |
# define CMD_CLEAR_PARAMS_DEPTH_CLEAR_VALID (1 << 15) |
/* for GEN6+ */ |
#define GEN6_3DSTATE_SAMPLER_STATE_POINTERS CMD(3, 0, 0x02) |
# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_PS (1 << 12) |
# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_GS (1 << 9) |
# define GEN6_3DSTATE_SAMPLER_STATE_MODIFY_VS (1 << 8) |
#define GEN6_3DSTATE_URB CMD(3, 0, 0x05) |
/* DW1 */ |
# define GEN6_3DSTATE_URB_VS_SIZE_SHIFT 16 |
# define GEN6_3DSTATE_URB_VS_ENTRIES_SHIFT 0 |
/* DW2 */ |
# define GEN6_3DSTATE_URB_GS_ENTRIES_SHIFT 8 |
# define GEN6_3DSTATE_URB_GS_SIZE_SHIFT 0 |
#define GEN6_3DSTATE_VIEWPORT_STATE_POINTERS CMD(3, 0, 0x0d) |
# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CC (1 << 12) |
# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_SF (1 << 11) |
# define GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CLIP (1 << 10) |
#define GEN6_3DSTATE_CC_STATE_POINTERS CMD(3, 0, 0x0e) |
#define GEN6_3DSTATE_VS CMD(3, 0, 0x10) |
#define GEN6_3DSTATE_GS CMD(3, 0, 0x11) |
/* DW4 */ |
# define GEN6_3DSTATE_GS_DISPATCH_START_GRF_SHIFT 0 |
#define GEN6_3DSTATE_CLIP CMD(3, 0, 0x12) |
#define GEN6_3DSTATE_SF CMD(3, 0, 0x13) |
/* DW1 on GEN6 */ |
# define GEN6_3DSTATE_SF_NUM_OUTPUTS_SHIFT 22 |
# define GEN6_3DSTATE_SF_URB_ENTRY_READ_LENGTH_SHIFT 11 |
# define GEN6_3DSTATE_SF_URB_ENTRY_READ_OFFSET_SHIFT 4 |
/* DW1 on GEN7 */ |
# define GEN7_SF_DEPTH_BUFFER_SURFACE_FORMAT_SHIFT 12 |
/* DW2 */ |
/* DW3 */ |
# define GEN6_3DSTATE_SF_CULL_BOTH (0 << 29) |
# define GEN6_3DSTATE_SF_CULL_NONE (1 << 29) |
# define GEN6_3DSTATE_SF_CULL_FRONT (2 << 29) |
# define GEN6_3DSTATE_SF_CULL_BACK (3 << 29) |
/* DW4 */ |
# define GEN6_3DSTATE_SF_TRI_PROVOKE_SHIFT 29 |
# define GEN6_3DSTATE_SF_LINE_PROVOKE_SHIFT 27 |
# define GEN6_3DSTATE_SF_TRIFAN_PROVOKE_SHIFT 25 |
#define GEN6_3DSTATE_WM CMD(3, 0, 0x14) |
/* DW2 */ |
# define GEN6_3DSTATE_WM_SAMPLER_COUNT_SHITF 27 |
# define GEN6_3DSTATE_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 |
/* DW4 */ |
# define GEN6_3DSTATE_WM_DISPATCH_START_GRF_0_SHIFT 16 |
/* DW5 */ |
# define GEN6_3DSTATE_WM_MAX_THREADS_SHIFT 25 |
# define GEN6_3DSTATE_WM_DISPATCH_ENABLE (1 << 19) |
# define GEN6_3DSTATE_WM_16_DISPATCH_ENABLE (1 << 1) |
# define GEN6_3DSTATE_WM_8_DISPATCH_ENABLE (1 << 0) |
/* DW6 */ |
# define GEN6_3DSTATE_WM_NUM_SF_OUTPUTS_SHIFT 20 |
# define GEN6_3DSTATE_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 15) |
# define GEN6_3DSTATE_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 14) |
# define GEN6_3DSTATE_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 13) |
# define GEN6_3DSTATE_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 12) |
# define GEN6_3DSTATE_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 11) |
# define GEN6_3DSTATE_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 10) |
/* 3DSTATE_WM on GEN7 */ |
/* DW1 */ |
# define GEN7_WM_STATISTICS_ENABLE (1 << 31) |
# define GEN7_WM_DEPTH_CLEAR (1 << 30) |
# define GEN7_WM_DISPATCH_ENABLE (1 << 29) |
# define GEN6_WM_DEPTH_RESOLVE (1 << 28) |
# define GEN7_WM_HIERARCHICAL_DEPTH_RESOLVE (1 << 27) |
# define GEN7_WM_KILL_ENABLE (1 << 25) |
# define GEN7_WM_PSCDEPTH_OFF (0 << 23) |
# define GEN7_WM_PSCDEPTH_ON (1 << 23) |
# define GEN7_WM_PSCDEPTH_ON_GE (2 << 23) |
# define GEN7_WM_PSCDEPTH_ON_LE (3 << 23) |
# define GEN7_WM_USES_SOURCE_DEPTH (1 << 20) |
# define GEN7_WM_USES_SOURCE_W (1 << 19) |
# define GEN7_WM_POSITION_ZW_PIXEL (0 << 17) |
# define GEN7_WM_POSITION_ZW_CENTROID (2 << 17) |
# define GEN7_WM_POSITION_ZW_SAMPLE (3 << 17) |
# define GEN7_WM_NONPERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 16) |
# define GEN7_WM_NONPERSPECTIVE_CENTROID_BARYCENTRIC (1 << 15) |
# define GEN7_WM_NONPERSPECTIVE_PIXEL_BARYCENTRIC (1 << 14) |
# define GEN7_WM_PERSPECTIVE_SAMPLE_BARYCENTRIC (1 << 13) |
# define GEN7_WM_PERSPECTIVE_CENTROID_BARYCENTRIC (1 << 12) |
# define GEN7_WM_PERSPECTIVE_PIXEL_BARYCENTRIC (1 << 11) |
# define GEN7_WM_USES_INPUT_COVERAGE_MASK (1 << 10) |
# define GEN7_WM_LINE_END_CAP_AA_WIDTH_0_5 (0 << 8) |
# define GEN7_WM_LINE_END_CAP_AA_WIDTH_1_0 (1 << 8) |
# define GEN7_WM_LINE_END_CAP_AA_WIDTH_2_0 (2 << 8) |
# define GEN7_WM_LINE_END_CAP_AA_WIDTH_4_0 (3 << 8) |
# define GEN7_WM_LINE_AA_WIDTH_0_5 (0 << 6) |
# define GEN7_WM_LINE_AA_WIDTH_1_0 (1 << 6) |
# define GEN7_WM_LINE_AA_WIDTH_2_0 (2 << 6) |
# define GEN7_WM_LINE_AA_WIDTH_4_0 (3 << 6) |
# define GEN7_WM_POLYGON_STIPPLE_ENABLE (1 << 4) |
# define GEN7_WM_LINE_STIPPLE_ENABLE (1 << 3) |
# define GEN7_WM_POINT_RASTRULE_UPPER_RIGHT (1 << 2) |
# define GEN7_WM_MSRAST_OFF_PIXEL (0 << 0) |
# define GEN7_WM_MSRAST_OFF_PATTERN (1 << 0) |
# define GEN7_WM_MSRAST_ON_PIXEL (2 << 0) |
# define GEN7_WM_MSRAST_ON_PATTERN (3 << 0) |
/* DW2 */ |
# define GEN7_WM_MSDISPMODE_PERPIXEL (1 << 31) |
#define GEN6_3DSTATE_CONSTANT_VS CMD(3, 0, 0x15) |
#define GEN6_3DSTATE_CONSTANT_GS CMD(3, 0, 0x16) |
#define GEN6_3DSTATE_CONSTANT_PS CMD(3, 0, 0x17) |
# define GEN6_3DSTATE_CONSTANT_BUFFER_3_ENABLE (1 << 15) |
# define GEN6_3DSTATE_CONSTANT_BUFFER_2_ENABLE (1 << 14) |
# define GEN6_3DSTATE_CONSTANT_BUFFER_1_ENABLE (1 << 13) |
# define GEN6_3DSTATE_CONSTANT_BUFFER_0_ENABLE (1 << 12) |
#define GEN6_3DSTATE_SAMPLE_MASK CMD(3, 0, 0x18) |
#define GEN6_3DSTATE_MULTISAMPLE CMD(3, 1, 0x0d) |
/* DW1 */ |
# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_CENTER (0 << 4) |
# define GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_UPPER_LEFT (1 << 4) |
# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_1 (0 << 1) |
# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_4 (2 << 1) |
# define GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_8 (3 << 1) |
/* GEN7 */ |
#define GEN7_3DSTATE_CLEAR_PARAMS CMD(3, 0, 0x04) |
#define GEN7_3DSTATE_DEPTH_BUFFER CMD(3, 0, 0x05) |
#define GEN7_3DSTATE_URB_VS CMD(3, 0, 0x30) |
#define GEN7_3DSTATE_URB_HS CMD(3, 0, 0x31) |
#define GEN7_3DSTATE_URB_DS CMD(3, 0, 0x32) |
#define GEN7_3DSTATE_URB_GS CMD(3, 0, 0x33) |
/* DW1 */ |
# define GEN7_URB_ENTRY_NUMBER_SHIFT 0 |
# define GEN7_URB_ENTRY_SIZE_SHIFT 16 |
# define GEN7_URB_STARTING_ADDRESS_SHIFT 25 |
#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_VS CMD(3, 1, 0x12) |
#define GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS CMD(3, 1, 0x16) |
/* DW1 */ |
# define GEN7_PUSH_CONSTANT_BUFFER_OFFSET_SHIFT 16 |
#define GEN7_3DSTATE_CONSTANT_HS CMD(3, 0, 0x19) |
#define GEN7_3DSTATE_CONSTANT_DS CMD(3, 0, 0x1a) |
#define GEN7_3DSTATE_HS CMD(3, 0, 0x1b) |
#define GEN7_3DSTATE_TE CMD(3, 0, 0x1c) |
#define GEN7_3DSTATE_DS CMD(3, 0, 0x1d) |
#define GEN7_3DSTATE_STREAMOUT CMD(3, 0, 0x1e) |
#define GEN7_3DSTATE_SBE CMD(3, 0, 0x1f) |
/* DW1 */ |
# define GEN7_SBE_SWIZZLE_CONTROL_MODE (1 << 28) |
# define GEN7_SBE_NUM_OUTPUTS_SHIFT 22 |
# define GEN7_SBE_SWIZZLE_ENABLE (1 << 21) |
# define GEN7_SBE_POINT_SPRITE_LOWERLEFT (1 << 20) |
# define GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT 11 |
# define GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT 4 |
#define GEN7_3DSTATE_PS CMD(3, 0, 0x20) |
/* DW1: kernel pointer */ |
/* DW2 */ |
# define GEN7_PS_SPF_MODE (1 << 31) |
# define GEN7_PS_VECTOR_MASK_ENABLE (1 << 30) |
# define GEN7_PS_SAMPLER_COUNT_SHIFT 27 |
# define GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT 18 |
# define GEN7_PS_FLOATING_POINT_MODE_IEEE_754 (0 << 16) |
# define GEN7_PS_FLOATING_POINT_MODE_ALT (1 << 16) |
/* DW3: scratch space */ |
/* DW4 */ |
# define GEN7_PS_MAX_THREADS_SHIFT_IVB 24 |
# define GEN7_PS_MAX_THREADS_SHIFT_HSW 23 |
# define GEN7_PS_SAMPLE_MASK_SHIFT_HSW 12 |
# define GEN7_PS_PUSH_CONSTANT_ENABLE (1 << 11) |
# define GEN7_PS_ATTRIBUTE_ENABLE (1 << 10) |
# define GEN7_PS_OMASK_TO_RENDER_TARGET (1 << 9) |
# define GEN7_PS_DUAL_SOURCE_BLEND_ENABLE (1 << 7) |
# define GEN7_PS_POSOFFSET_NONE (0 << 3) |
# define GEN7_PS_POSOFFSET_CENTROID (2 << 3) |
# define GEN7_PS_POSOFFSET_SAMPLE (3 << 3) |
# define GEN7_PS_32_DISPATCH_ENABLE (1 << 2) |
# define GEN7_PS_16_DISPATCH_ENABLE (1 << 1) |
# define GEN7_PS_8_DISPATCH_ENABLE (1 << 0) |
/* DW5 */ |
# define GEN7_PS_DISPATCH_START_GRF_SHIFT_0 16 |
# define GEN7_PS_DISPATCH_START_GRF_SHIFT_1 8 |
# define GEN7_PS_DISPATCH_START_GRF_SHIFT_2 0 |
/* DW6: kernel 1 pointer */ |
/* DW7: kernel 2 pointer */ |
#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL CMD(3, 0, 0x21) |
#define GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC CMD(3, 0, 0x23) |
#define GEN7_3DSTATE_BLEND_STATE_POINTERS CMD(3, 0, 0x24) |
#define GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS CMD(3, 0, 0x25) |
#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_VS CMD(3, 0, 0x26) |
#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS CMD(3, 0, 0x27) |
#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS CMD(3, 0, 0x28) |
#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS CMD(3, 0, 0x29) |
#define GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS CMD(3, 0, 0x2a) |
#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_VS CMD(3, 0, 0x2b) |
#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_GS CMD(3, 0, 0x2e) |
#define GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS CMD(3, 0, 0x2f) |
#define MFX(pipeline, op, sub_opa, sub_opb) \ |
(3 << 29 | \ |
(pipeline) << 27 | \ |
(op) << 24 | \ |
(sub_opa) << 21 | \ |
(sub_opb) << 16) |
#define MFX_PIPE_MODE_SELECT MFX(2, 0, 0, 0) |
#define MFX_SURFACE_STATE MFX(2, 0, 0, 1) |
#define MFX_PIPE_BUF_ADDR_STATE MFX(2, 0, 0, 2) |
#define MFX_IND_OBJ_BASE_ADDR_STATE MFX(2, 0, 0, 3) |
#define MFX_BSP_BUF_BASE_ADDR_STATE MFX(2, 0, 0, 4) |
#define MFX_AES_STATE MFX(2, 0, 0, 5) |
#define MFX_STATE_POINTER MFX(2, 0, 0, 6) |
#define MFX_QM_STATE MFX(2, 0, 0, 7) |
#define MFX_FQM_STATE MFX(2, 0, 0, 8) |
#define MFX_WAIT MFX(1, 0, 0, 0) |
#define MFX_AVC_IMG_STATE MFX(2, 1, 0, 0) |
#define MFX_AVC_QM_STATE MFX(2, 1, 0, 1) |
#define MFX_AVC_DIRECTMODE_STATE MFX(2, 1, 0, 2) |
#define MFX_AVC_SLICE_STATE MFX(2, 1, 0, 3) |
#define MFX_AVC_REF_IDX_STATE MFX(2, 1, 0, 4) |
#define MFX_AVC_WEIGHTOFFSET_STATE MFX(2, 1, 0, 5) |
#define MFD_AVC_PICID_STATE MFX(2, 1, 1, 5) |
#define MFD_AVC_BSD_OBJECT MFX(2, 1, 1, 8) |
#define MFC_AVC_FQM_STATE MFX(2, 1, 2, 2) |
#define MFC_AVC_INSERT_OBJECT MFX(2, 1, 2, 8) |
#define MFC_AVC_PAK_OBJECT MFX(2, 1, 2, 9) |
#define MFX_MPEG2_PIC_STATE MFX(2, 3, 0, 0) |
#define MFX_MPEG2_QM_STATE MFX(2, 3, 0, 1) |
#define MFD_MPEG2_BSD_OBJECT MFX(2, 3, 1, 8) |
#define MFX_VC1_PIC_STATE MFX(2, 2, 0, 0) |
#define MFX_VC1_PRED_PIPE_STATE MFX(2, 2, 0, 1) |
#define MFX_VC1_DIRECTMODE_STATE MFX(2, 2, 0, 2) |
#define MFD_VC1_SHORT_PIC_STATE MFX(2, 2, 1, 0) |
#define MFD_VC1_LONG_PIC_STATE MFX(2, 2, 1, 1) |
#define MFD_VC1_BSD_OBJECT MFX(2, 2, 1, 8) |
#define MFX_JPEG_PIC_STATE MFX(2, 7, 0, 0) |
#define MFX_JPEG_HUFF_TABLE_STATE MFX(2, 7, 0, 2) |
#define MFD_JPEG_BSD_OBJECT MFX(2, 7, 1, 8) |
#define VEB(pipeline, op, sub_opa, sub_opb) \ |
(3 << 29 | \ |
(pipeline) << 27 | \ |
(op) << 24 | \ |
(sub_opa) << 21 | \ |
(sub_opb) << 16) |
#define VEB_SURFACE_STATE VEB(2, 4, 0, 0) |
#define VEB_STATE VEB(2, 4, 0, 2) |
#define VEB_DNDI_IECP_STATE VEB(2, 4, 0, 3) |
#define I965_DEPTHFORMAT_D32_FLOAT 1 |
#define BASE_ADDRESS_MODIFY (1 << 0) |
#define PIPELINE_SELECT_3D 0 |
#define PIPELINE_SELECT_MEDIA 1 |
#define UF0_CS_REALLOC (1 << 13) |
#define UF0_VFE_REALLOC (1 << 12) |
#define UF0_SF_REALLOC (1 << 11) |
#define UF0_CLIP_REALLOC (1 << 10) |
#define UF0_GS_REALLOC (1 << 9) |
#define UF0_VS_REALLOC (1 << 8) |
#define UF1_CLIP_FENCE_SHIFT 20 |
#define UF1_GS_FENCE_SHIFT 10 |
#define UF1_VS_FENCE_SHIFT 0 |
#define UF2_CS_FENCE_SHIFT 20 |
#define UF2_VFE_FENCE_SHIFT 10 |
#define UF2_SF_FENCE_SHIFT 0 |
#define VFE_GENERIC_MODE 0x0 |
#define VFE_VLD_MODE 0x1 |
#define VFE_IS_MODE 0x2 |
#define VFE_AVC_MC_MODE 0x4 |
#define VFE_AVC_IT_MODE 0x7 |
#define FLOATING_POINT_IEEE_754 0 |
#define FLOATING_POINT_NON_IEEE_754 1 |
#define I965_SURFACE_1D 0 |
#define I965_SURFACE_2D 1 |
#define I965_SURFACE_3D 2 |
#define I965_SURFACE_CUBE 3 |
#define I965_SURFACE_BUFFER 4 |
#define I965_SURFACE_NULL 7 |
#define I965_SURFACEFORMAT_R32G32B32A32_FLOAT 0x000 |
#define I965_SURFACEFORMAT_R32G32B32A32_SINT 0x001 |
#define I965_SURFACEFORMAT_R32G32B32A32_UINT 0x002 |
#define I965_SURFACEFORMAT_R32G32B32A32_UNORM 0x003 |
#define I965_SURFACEFORMAT_R32G32B32A32_SNORM 0x004 |
#define I965_SURFACEFORMAT_R64G64_FLOAT 0x005 |
#define I965_SURFACEFORMAT_R32G32B32X32_FLOAT 0x006 |
#define I965_SURFACEFORMAT_R32G32B32A32_SSCALED 0x007 |
#define I965_SURFACEFORMAT_R32G32B32A32_USCALED 0x008 |
#define I965_SURFACEFORMAT_R32G32B32_FLOAT 0x040 |
#define I965_SURFACEFORMAT_R32G32B32_SINT 0x041 |
#define I965_SURFACEFORMAT_R32G32B32_UINT 0x042 |
#define I965_SURFACEFORMAT_R32G32B32_UNORM 0x043 |
#define I965_SURFACEFORMAT_R32G32B32_SNORM 0x044 |
#define I965_SURFACEFORMAT_R32G32B32_SSCALED 0x045 |
#define I965_SURFACEFORMAT_R32G32B32_USCALED 0x046 |
#define I965_SURFACEFORMAT_R16G16B16A16_UNORM 0x080 |
#define I965_SURFACEFORMAT_R16G16B16A16_SNORM 0x081 |
#define I965_SURFACEFORMAT_R16G16B16A16_SINT 0x082 |
#define I965_SURFACEFORMAT_R16G16B16A16_UINT 0x083 |
#define I965_SURFACEFORMAT_R16G16B16A16_FLOAT 0x084 |
#define I965_SURFACEFORMAT_R32G32_FLOAT 0x085 |
#define I965_SURFACEFORMAT_R32G32_SINT 0x086 |
#define I965_SURFACEFORMAT_R32G32_UINT 0x087 |
#define I965_SURFACEFORMAT_R32_FLOAT_X8X24_TYPELESS 0x088 |
#define I965_SURFACEFORMAT_X32_TYPELESS_G8X24_UINT 0x089 |
#define I965_SURFACEFORMAT_L32A32_FLOAT 0x08A |
#define I965_SURFACEFORMAT_R32G32_UNORM 0x08B |
#define I965_SURFACEFORMAT_R32G32_SNORM 0x08C |
#define I965_SURFACEFORMAT_R64_FLOAT 0x08D |
#define I965_SURFACEFORMAT_R16G16B16X16_UNORM 0x08E |
#define I965_SURFACEFORMAT_R16G16B16X16_FLOAT 0x08F |
#define I965_SURFACEFORMAT_A32X32_FLOAT 0x090 |
#define I965_SURFACEFORMAT_L32X32_FLOAT 0x091 |
#define I965_SURFACEFORMAT_I32X32_FLOAT 0x092 |
#define I965_SURFACEFORMAT_R16G16B16A16_SSCALED 0x093 |
#define I965_SURFACEFORMAT_R16G16B16A16_USCALED 0x094 |
#define I965_SURFACEFORMAT_R32G32_SSCALED 0x095 |
#define I965_SURFACEFORMAT_R32G32_USCALED 0x096 |
#define I965_SURFACEFORMAT_B8G8R8A8_UNORM 0x0C0 |
#define I965_SURFACEFORMAT_B8G8R8A8_UNORM_SRGB 0x0C1 |
#define I965_SURFACEFORMAT_R10G10B10A2_UNORM 0x0C2 |
#define I965_SURFACEFORMAT_R10G10B10A2_UNORM_SRGB 0x0C3 |
#define I965_SURFACEFORMAT_R10G10B10A2_UINT 0x0C4 |
#define I965_SURFACEFORMAT_R10G10B10_SNORM_A2_UNORM 0x0C5 |
#define I965_SURFACEFORMAT_R8G8B8A8_UNORM 0x0C7 |
#define I965_SURFACEFORMAT_R8G8B8A8_UNORM_SRGB 0x0C8 |
#define I965_SURFACEFORMAT_R8G8B8A8_SNORM 0x0C9 |
#define I965_SURFACEFORMAT_R8G8B8A8_SINT 0x0CA |
#define I965_SURFACEFORMAT_R8G8B8A8_UINT 0x0CB |
#define I965_SURFACEFORMAT_R16G16_UNORM 0x0CC |
#define I965_SURFACEFORMAT_R16G16_SNORM 0x0CD |
#define I965_SURFACEFORMAT_R16G16_SINT 0x0CE |
#define I965_SURFACEFORMAT_R16G16_UINT 0x0CF |
#define I965_SURFACEFORMAT_R16G16_FLOAT 0x0D0 |
#define I965_SURFACEFORMAT_B10G10R10A2_UNORM 0x0D1 |
#define I965_SURFACEFORMAT_B10G10R10A2_UNORM_SRGB 0x0D2 |
#define I965_SURFACEFORMAT_R11G11B10_FLOAT 0x0D3 |
#define I965_SURFACEFORMAT_R32_SINT 0x0D6 |
#define I965_SURFACEFORMAT_R32_UINT 0x0D7 |
#define I965_SURFACEFORMAT_R32_FLOAT 0x0D8 |
#define I965_SURFACEFORMAT_R24_UNORM_X8_TYPELESS 0x0D9 |
#define I965_SURFACEFORMAT_X24_TYPELESS_G8_UINT 0x0DA |
#define I965_SURFACEFORMAT_L16A16_UNORM 0x0DF |
#define I965_SURFACEFORMAT_I24X8_UNORM 0x0E0 |
#define I965_SURFACEFORMAT_L24X8_UNORM 0x0E1 |
#define I965_SURFACEFORMAT_A24X8_UNORM 0x0E2 |
#define I965_SURFACEFORMAT_I32_FLOAT 0x0E3 |
#define I965_SURFACEFORMAT_L32_FLOAT 0x0E4 |
#define I965_SURFACEFORMAT_A32_FLOAT 0x0E5 |
#define I965_SURFACEFORMAT_B8G8R8X8_UNORM 0x0E9 |
#define I965_SURFACEFORMAT_B8G8R8X8_UNORM_SRGB 0x0EA |
#define I965_SURFACEFORMAT_R8G8B8X8_UNORM 0x0EB |
#define I965_SURFACEFORMAT_R8G8B8X8_UNORM_SRGB 0x0EC |
#define I965_SURFACEFORMAT_R9G9B9E5_SHAREDEXP 0x0ED |
#define I965_SURFACEFORMAT_B10G10R10X2_UNORM 0x0EE |
#define I965_SURFACEFORMAT_L16A16_FLOAT 0x0F0 |
#define I965_SURFACEFORMAT_R32_UNORM 0x0F1 |
#define I965_SURFACEFORMAT_R32_SNORM 0x0F2 |
#define I965_SURFACEFORMAT_R10G10B10X2_USCALED 0x0F3 |
#define I965_SURFACEFORMAT_R8G8B8A8_SSCALED 0x0F4 |
#define I965_SURFACEFORMAT_R8G8B8A8_USCALED 0x0F5 |
#define I965_SURFACEFORMAT_R16G16_SSCALED 0x0F6 |
#define I965_SURFACEFORMAT_R16G16_USCALED 0x0F7 |
#define I965_SURFACEFORMAT_R32_SSCALED 0x0F8 |
#define I965_SURFACEFORMAT_R32_USCALED 0x0F9 |
#define I965_SURFACEFORMAT_B5G6R5_UNORM 0x100 |
#define I965_SURFACEFORMAT_B5G6R5_UNORM_SRGB 0x101 |
#define I965_SURFACEFORMAT_B5G5R5A1_UNORM 0x102 |
#define I965_SURFACEFORMAT_B5G5R5A1_UNORM_SRGB 0x103 |
#define I965_SURFACEFORMAT_B4G4R4A4_UNORM 0x104 |
#define I965_SURFACEFORMAT_B4G4R4A4_UNORM_SRGB 0x105 |
#define I965_SURFACEFORMAT_R8G8_UNORM 0x106 |
#define I965_SURFACEFORMAT_R8G8_SNORM 0x107 |
#define I965_SURFACEFORMAT_R8G8_SINT 0x108 |
#define I965_SURFACEFORMAT_R8G8_UINT 0x109 |
#define I965_SURFACEFORMAT_R16_UNORM 0x10A |
#define I965_SURFACEFORMAT_R16_SNORM 0x10B |
#define I965_SURFACEFORMAT_R16_SINT 0x10C |
#define I965_SURFACEFORMAT_R16_UINT 0x10D |
#define I965_SURFACEFORMAT_R16_FLOAT 0x10E |
#define I965_SURFACEFORMAT_I16_UNORM 0x111 |
#define I965_SURFACEFORMAT_L16_UNORM 0x112 |
#define I965_SURFACEFORMAT_A16_UNORM 0x113 |
#define I965_SURFACEFORMAT_L8A8_UNORM 0x114 |
#define I965_SURFACEFORMAT_I16_FLOAT 0x115 |
#define I965_SURFACEFORMAT_L16_FLOAT 0x116 |
#define I965_SURFACEFORMAT_A16_FLOAT 0x117 |
#define I965_SURFACEFORMAT_R5G5_SNORM_B6_UNORM 0x119 |
#define I965_SURFACEFORMAT_B5G5R5X1_UNORM 0x11A |
#define I965_SURFACEFORMAT_B5G5R5X1_UNORM_SRGB 0x11B |
#define I965_SURFACEFORMAT_R8G8_SSCALED 0x11C |
#define I965_SURFACEFORMAT_R8G8_USCALED 0x11D |
#define I965_SURFACEFORMAT_R16_SSCALED 0x11E |
#define I965_SURFACEFORMAT_R16_USCALED 0x11F |
#define I965_SURFACEFORMAT_P8A8_UNORM 0x122 |
#define I965_SURFACEFORMAT_A8P8_UNORM 0x123 |
#define I965_SURFACEFORMAT_R8_UNORM 0x140 |
#define I965_SURFACEFORMAT_R8_SNORM 0x141 |
#define I965_SURFACEFORMAT_R8_SINT 0x142 |
#define I965_SURFACEFORMAT_R8_UINT 0x143 |
#define I965_SURFACEFORMAT_A8_UNORM 0x144 |
#define I965_SURFACEFORMAT_I8_UNORM 0x145 |
#define I965_SURFACEFORMAT_L8_UNORM 0x146 |
#define I965_SURFACEFORMAT_P4A4_UNORM 0x147 |
#define I965_SURFACEFORMAT_A4P4_UNORM 0x148 |
#define I965_SURFACEFORMAT_R8_SSCALED 0x149 |
#define I965_SURFACEFORMAT_R8_USCALED 0x14A |
#define I965_SURFACEFORMAT_R1_UINT 0x181 |
#define I965_SURFACEFORMAT_YCRCB_NORMAL 0x182 |
#define I965_SURFACEFORMAT_YCRCB_SWAPUVY 0x183 |
#define I965_SURFACEFORMAT_BC1_UNORM 0x186 |
#define I965_SURFACEFORMAT_BC2_UNORM 0x187 |
#define I965_SURFACEFORMAT_BC3_UNORM 0x188 |
#define I965_SURFACEFORMAT_BC4_UNORM 0x189 |
#define I965_SURFACEFORMAT_BC5_UNORM 0x18A |
#define I965_SURFACEFORMAT_BC1_UNORM_SRGB 0x18B |
#define I965_SURFACEFORMAT_BC2_UNORM_SRGB 0x18C |
#define I965_SURFACEFORMAT_BC3_UNORM_SRGB 0x18D |
#define I965_SURFACEFORMAT_MONO8 0x18E |
#define I965_SURFACEFORMAT_YCRCB_SWAPUV 0x18F |
#define I965_SURFACEFORMAT_YCRCB_SWAPY 0x190 |
#define I965_SURFACEFORMAT_DXT1_RGB 0x191 |
#define I965_SURFACEFORMAT_FXT1 0x192 |
#define I965_SURFACEFORMAT_R8G8B8_UNORM 0x193 |
#define I965_SURFACEFORMAT_R8G8B8_SNORM 0x194 |
#define I965_SURFACEFORMAT_R8G8B8_SSCALED 0x195 |
#define I965_SURFACEFORMAT_R8G8B8_USCALED 0x196 |
#define I965_SURFACEFORMAT_R64G64B64A64_FLOAT 0x197 |
#define I965_SURFACEFORMAT_R64G64B64_FLOAT 0x198 |
#define I965_SURFACEFORMAT_BC4_SNORM 0x199 |
#define I965_SURFACEFORMAT_BC5_SNORM 0x19A |
#define I965_SURFACEFORMAT_R16G16B16_UNORM 0x19C |
#define I965_SURFACEFORMAT_R16G16B16_SNORM 0x19D |
#define I965_SURFACEFORMAT_R16G16B16_SSCALED 0x19E |
#define I965_SURFACEFORMAT_R16G16B16_USCALED 0x19F |
#define I965_CULLMODE_BOTH 0 |
#define I965_CULLMODE_NONE 1 |
#define I965_CULLMODE_FRONT 2 |
#define I965_CULLMODE_BACK 3 |
#define I965_MAPFILTER_NEAREST 0x0 |
#define I965_MAPFILTER_LINEAR 0x1 |
#define I965_MAPFILTER_ANISOTROPIC 0x2 |
#define I965_MIPFILTER_NONE 0 |
#define I965_MIPFILTER_NEAREST 1 |
#define I965_MIPFILTER_LINEAR 3 |
#define HSW_SCS_ZERO 0 |
#define HSW_SCS_ONE 1 |
#define HSW_SCS_RED 4 |
#define HSW_SCS_GREEN 5 |
#define HSW_SCS_BLUE 6 |
#define HSW_SCS_ALPHA 7 |
#define I965_TEXCOORDMODE_WRAP 0 |
#define I965_TEXCOORDMODE_MIRROR 1 |
#define I965_TEXCOORDMODE_CLAMP 2 |
#define I965_TEXCOORDMODE_CUBE 3 |
#define I965_TEXCOORDMODE_CLAMP_BORDER 4 |
#define I965_TEXCOORDMODE_MIRROR_ONCE 5 |
#define I965_BLENDFACTOR_ONE 0x1 |
#define I965_BLENDFACTOR_SRC_COLOR 0x2 |
#define I965_BLENDFACTOR_SRC_ALPHA 0x3 |
#define I965_BLENDFACTOR_DST_ALPHA 0x4 |
#define I965_BLENDFACTOR_DST_COLOR 0x5 |
#define I965_BLENDFACTOR_SRC_ALPHA_SATURATE 0x6 |
#define I965_BLENDFACTOR_CONST_COLOR 0x7 |
#define I965_BLENDFACTOR_CONST_ALPHA 0x8 |
#define I965_BLENDFACTOR_SRC1_COLOR 0x9 |
#define I965_BLENDFACTOR_SRC1_ALPHA 0x0A |
#define I965_BLENDFACTOR_ZERO 0x11 |
#define I965_BLENDFACTOR_INV_SRC_COLOR 0x12 |
#define I965_BLENDFACTOR_INV_SRC_ALPHA 0x13 |
#define I965_BLENDFACTOR_INV_DST_ALPHA 0x14 |
#define I965_BLENDFACTOR_INV_DST_COLOR 0x15 |
#define I965_BLENDFACTOR_INV_CONST_COLOR 0x17 |
#define I965_BLENDFACTOR_INV_CONST_ALPHA 0x18 |
#define I965_BLENDFACTOR_INV_SRC1_COLOR 0x19 |
#define I965_BLENDFACTOR_INV_SRC1_ALPHA 0x1A |
#define I965_BLENDFUNCTION_ADD 0 |
#define I965_BLENDFUNCTION_SUBTRACT 1 |
#define I965_BLENDFUNCTION_REVERSE_SUBTRACT 2 |
#define I965_BLENDFUNCTION_MIN 3 |
#define I965_BLENDFUNCTION_MAX 4 |
#define I965_SURFACERETURNFORMAT_FLOAT32 0 |
#define I965_SURFACERETURNFORMAT_S1 1 |
#define I965_VFCOMPONENT_NOSTORE 0 |
#define I965_VFCOMPONENT_STORE_SRC 1 |
#define I965_VFCOMPONENT_STORE_0 2 |
#define I965_VFCOMPONENT_STORE_1_FLT 3 |
#define I965_VFCOMPONENT_STORE_1_INT 4 |
#define I965_VFCOMPONENT_STORE_VID 5 |
#define I965_VFCOMPONENT_STORE_IID 6 |
#define I965_VFCOMPONENT_STORE_PID 7 |
#define VE0_VERTEX_BUFFER_INDEX_SHIFT 27 |
#define GEN6_VE0_VERTEX_BUFFER_INDEX_SHIFT 26 /* for GEN6 */ |
#define VE0_VALID (1 << 26) |
#define GEN6_VE0_VALID (1 << 25) /* for GEN6 */ |
#define VE0_FORMAT_SHIFT 16 |
#define VE0_OFFSET_SHIFT 0 |
#define VE1_VFCOMPONENT_0_SHIFT 28 |
#define VE1_VFCOMPONENT_1_SHIFT 24 |
#define VE1_VFCOMPONENT_2_SHIFT 20 |
#define VE1_VFCOMPONENT_3_SHIFT 16 |
#define VE1_DESTINATION_ELEMENT_OFFSET_SHIFT 0 |
#define VB0_BUFFER_INDEX_SHIFT 27 |
#define GEN6_VB0_BUFFER_INDEX_SHIFT 26 |
#define VB0_VERTEXDATA (0 << 26) |
#define VB0_INSTANCEDATA (1 << 26) |
#define GEN6_VB0_VERTEXDATA (0 << 20) |
#define GEN6_VB0_INSTANCEDATA (1 << 20) |
#define GEN7_VB0_ADDRESS_MODIFYENABLE (1 << 14) |
#define VB0_BUFFER_PITCH_SHIFT 0 |
#define _3DPRIMITIVE_VERTEX_SEQUENTIAL (0 << 15) |
#define _3DPRIMITIVE_VERTEX_RANDOM (1 << 15) |
#define _3DPRIMITIVE_TOPOLOGY_SHIFT 10 |
/* DW1 on GEN7*/ |
# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL (0 << 8) |
# define GEN7_3DPRIM_VERTEXBUFFER_ACCESS_RANDOM (1 << 8) |
#define _3DPRIM_POINTLIST 0x01 |
#define _3DPRIM_LINELIST 0x02 |
#define _3DPRIM_LINESTRIP 0x03 |
#define _3DPRIM_TRILIST 0x04 |
#define _3DPRIM_TRISTRIP 0x05 |
#define _3DPRIM_TRIFAN 0x06 |
#define _3DPRIM_QUADLIST 0x07 |
#define _3DPRIM_QUADSTRIP 0x08 |
#define _3DPRIM_LINELIST_ADJ 0x09 |
#define _3DPRIM_LINESTRIP_ADJ 0x0A |
#define _3DPRIM_TRILIST_ADJ 0x0B |
#define _3DPRIM_TRISTRIP_ADJ 0x0C |
#define _3DPRIM_TRISTRIP_REVERSE 0x0D |
#define _3DPRIM_POLYGON 0x0E |
#define _3DPRIM_RECTLIST 0x0F |
#define _3DPRIM_LINELOOP 0x10 |
#define _3DPRIM_POINTLIST_BF 0x11 |
#define _3DPRIM_LINESTRIP_CONT 0x12 |
#define _3DPRIM_LINESTRIP_BF 0x13 |
#define _3DPRIM_LINESTRIP_CONT_BF 0x14 |
#define _3DPRIM_TRIFAN_NOSTIPPLE 0x15 |
#define I965_TILEWALK_XMAJOR 0 |
#define I965_TILEWALK_YMAJOR 1 |
#define SCAN_RASTER_ORDER 0 |
#define SCAN_SPECIAL_ORDER 1 |
#define ENTROPY_CAVLD 0 |
#define ENTROPY_CABAC 1 |
#define SLICE_TYPE_P 0 |
#define SLICE_TYPE_B 1 |
#define SLICE_TYPE_I 2 |
#define SLICE_TYPE_SP 3 |
#define SLICE_TYPE_SI 4 |
#define PRESENT_REF_LIST0 (1 << 0) |
#define PRESENT_REF_LIST1 (1 << 1) |
#define PRESENT_WEIGHT_OFFSET_L0 (1 << 2) |
#define PRESENT_WEIGHT_OFFSET_L1 (1 << 3) |
#define RESIDUAL_DATA_OFFSET 48 |
#define PRESENT_NOMV 0 |
#define PRESENT_NOWO 1 |
#define PRESENT_MV_WO 3 |
#define SCOREBOARD_STALLING 0 |
#define SCOREBOARD_NON_STALLING 1 |
#define SURFACE_FORMAT_YCRCB_NORMAL 0 |
#define SURFACE_FORMAT_YCRCB_SWAPUVY 1 |
#define SURFACE_FORMAT_YCRCB_SWAPUV 2 |
#define SURFACE_FORMAT_YCRCB_SWAPY 3 |
#define SURFACE_FORMAT_PLANAR_420_8 4 |
#define SURFACE_FORMAT_PLANAR_411_8 5 |
#define SURFACE_FORMAT_PLANAR_422_8 6 |
#define SURFACE_FORMAT_STMM_DN_STATISTICS 7 |
#define SURFACE_FORMAT_R10G10B10A2_UNORM 8 |
#define SURFACE_FORMAT_R8G8B8A8_UNORM 9 |
#define SURFACE_FORMAT_R8B8_UNORM 10 |
#define SURFACE_FORMAT_R8_UNORM 11 |
#define SURFACE_FORMAT_Y8_UNORM 12 |
#define AVS_FILTER_ADAPTIVE_8_TAP 0 |
#define AVS_FILTER_NEAREST 1 |
#define IEF_FILTER_COMBO 0 |
#define IEF_FILTER_DETAIL 1 |
#define IEF_FILTER_SIZE_3X3 0 |
#define IEF_FILTER_SIZE_5X5 1 |
#define MFX_FORMAT_MPEG2 0 |
#define MFX_FORMAT_VC1 1 |
#define MFX_FORMAT_AVC 2 |
#define MFX_FORMAT_JPEG 3 |
#define MFX_SHORT_MODE 0 |
#define MFX_LONG_MODE 1 |
#define MFX_CODEC_DECODE 0 |
#define MFX_CODEC_ENCODE 1 |
#define MFX_QM_AVC_4X4_INTRA_MATRIX 0 |
#define MFX_QM_AVC_4X4_INTER_MATRIX 1 |
#define MFX_QM_AVC_8x8_INTRA_MATRIX 2 |
#define MFX_QM_AVC_8x8_INTER_MATRIX 3 |
#define MFX_QM_MPEG_INTRA_QUANTIZER_MATRIX 0 |
#define MFX_QM_MPEG_NON_INTRA_QUANTIZER_MATRIX 1 |
#define MFX_QM_JPEG_LUMA_Y_QUANTIZER_MATRIX 0 |
#define MFX_QM_JPEG_CHROMA_CB_QUANTIZER_MATRIX 1 |
#define MFX_QM_JPEG_CHROMA_CR_QUANTIZER_MATRIX 2 |
#define MFX_QM_JPEG_ALPHA_QUANTIZER_MATRIX 3 /* for new device */ |
#define MFX_HUFFTABLE_ID_Y 0 |
#define MFX_HUFFTABLE_ID_UV 1 /* UV on Ivybridge */ |
#define MFD_MODE_VLD 0 |
#define MFD_MODE_IT 1 |
#define MFX_SURFACE_PLANAR_420_8 4 |
#define MFX_SURFACE_PLANAR_411_8 5 |
#define MFX_SURFACE_PLANAR_422_8 6 |
#define MFX_SURFACE_MONOCHROME 12 |
#define MPEG_I_PICTURE 1 |
#define MPEG_P_PICTURE 2 |
#define MPEG_B_PICTURE 3 |
#define MPEG_TOP_FIELD 1 |
#define MPEG_BOTTOM_FIELD 2 |
#define MPEG_FRAME 3 |
#define SUBSAMPLE_YUV400 0 |
#define SUBSAMPLE_YUV420 1 |
#define SUBSAMPLE_YUV422H 2 |
#define SUBSAMPLE_YUV422V 3 |
#define SUBSAMPLE_YUV444 4 |
#define SUBSAMPLE_YUV411 5 |
#define URB_SIZE(intel) (IS_GEN7(intel->device_id) ? 4096 : \ |
IS_GEN6(intel->device_id) ? 1024 : \ |
IS_IRONLAKE(intel->device_id) ? 1024 : \ |
IS_G4X(intel->device_id) ? 384 : 256) |
#endif /* _I965_DEFINES_H_ */ |
/drivers/video/i965/i965_drv_video.c |
---|
0,0 → 1,2861 |
/* |
* Copyright © 2009 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* Zou Nan hai <nanhai.zou@intel.com> |
* |
*/ |
#include "sysdeps.h" |
#ifdef HAVE_VA_X11 |
# include "i965_output_dri.h" |
#endif |
#ifdef HAVE_VA_WAYLAND |
# include "i965_output_wayland.h" |
#endif |
#include "intel_driver.h" |
#include "intel_memman.h" |
#include "intel_batchbuffer.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_decoder.h" |
#include "i965_encoder.h" |
#define VA_DRIVER_INIT_FUNC __vaDriverInit_0_32 |
#define INTEL_DRIVER_MAJOR_VERSION 1 |
#define INTEL_DRIVER_MINOR_VERSION 0 |
#define INTEL_DRIVER_MICRO_VERSION 20 |
#define INTEL_DRIVER_PRE_VERSION 1 |
#define CONFIG_ID_OFFSET 0x01000000 |
#define CONTEXT_ID_OFFSET 0x02000000 |
#define SURFACE_ID_OFFSET 0x04000000 |
#define BUFFER_ID_OFFSET 0x08000000 |
#define IMAGE_ID_OFFSET 0x0a000000 |
#define SUBPIC_ID_OFFSET 0x10000000 |
#define HAS_MPEG2(ctx) (IS_G4X((ctx)->intel.device_id) || \ |
IS_IRONLAKE((ctx)->intel.device_id) || \ |
((IS_GEN6((ctx)->intel.device_id) || \ |
IS_GEN7((ctx)->intel.device_id)) && \ |
(ctx)->intel.has_bsd)) |
#define HAS_H264(ctx) ((IS_GEN7((ctx)->intel.device_id) || \ |
IS_GEN6((ctx)->intel.device_id) || \ |
IS_IRONLAKE((ctx)->intel.device_id)) && \ |
(ctx)->intel.has_bsd) |
#define HAS_VC1(ctx) ((IS_GEN7((ctx)->intel.device_id) || \ |
IS_GEN6((ctx)->intel.device_id)) && \ |
(ctx)->intel.has_bsd) |
#define HAS_TILED_SURFACE(ctx) ((IS_GEN7((ctx)->intel.device_id) || \ |
IS_GEN6((ctx)->intel.device_id)) && \ |
(ctx)->render_state.interleaved_uv) |
#define HAS_ENCODER(ctx) ((IS_GEN7((ctx)->intel.device_id) || \ |
IS_GEN6((ctx)->intel.device_id)) && \ |
(ctx)->intel.has_bsd) |
#define HAS_JPEG(ctx) (IS_GEN7((ctx)->intel.device_id) && \ |
(ctx)->intel.has_bsd) |
#define HAS_ACCELERATED_GETIMAGE(ctx) (IS_GEN6((ctx)->intel.device_id) || \ |
IS_GEN7((ctx)->intel.device_id)) |
#define HAS_ACCELERATED_PUTIMAGE(ctx) HAS_VPP(ctx) |
#if VA_CHECK_VERSION(0,33,0) |
/* Check whether we are rendering to X11 (VA/X11 or VA/GLX API) */ |
#define IS_VA_X11(ctx) \ |
(((ctx)->display_type & VA_DISPLAY_MAJOR_MASK) == VA_DISPLAY_X11) |
/* Check whether we are rendering to Wayland */ |
#define IS_VA_WAYLAND(ctx) \ |
(((ctx)->display_type & VA_DISPLAY_MAJOR_MASK) == VA_DISPLAY_WAYLAND) |
#else |
/* Previous VA-API versions only supported VA/X11 (and VA/GLX) API */ |
#define IS_VA_X11(ctx) 1 |
#define IS_VA_WAYLAND(ctx) 0 |
#endif |
enum { |
I965_SURFACETYPE_RGBA = 1, |
I965_SURFACETYPE_YUV, |
I965_SURFACETYPE_INDEXED |
}; |
/* List of supported display attributes */ |
static const VADisplayAttribute i965_display_attributes[] = { |
{ |
VADisplayAttribRotation, |
0, 3, VA_ROTATION_NONE, |
VA_DISPLAY_ATTRIB_GETTABLE|VA_DISPLAY_ATTRIB_SETTABLE |
}, |
}; |
/* List of supported image formats */ |
typedef struct { |
unsigned int type; |
VAImageFormat va_format; |
} i965_image_format_map_t; |
static const i965_image_format_map_t |
i965_image_formats_map[I965_MAX_IMAGE_FORMATS + 1] = { |
{ I965_SURFACETYPE_YUV, |
{ VA_FOURCC('Y','V','1','2'), VA_LSB_FIRST, 12, } }, |
{ I965_SURFACETYPE_YUV, |
{ VA_FOURCC('I','4','2','0'), VA_LSB_FIRST, 12, } }, |
{ I965_SURFACETYPE_YUV, |
{ VA_FOURCC('N','V','1','2'), VA_LSB_FIRST, 12, } }, |
}; |
/* List of supported subpicture formats */ |
typedef struct { |
unsigned int type; |
unsigned int format; |
VAImageFormat va_format; |
unsigned int va_flags; |
} i965_subpic_format_map_t; |
#define COMMON_SUBPICTURE_FLAGS \ |
(VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD| \ |
VA_SUBPICTURE_GLOBAL_ALPHA) |
static const i965_subpic_format_map_t |
i965_subpic_formats_map[I965_MAX_SUBPIC_FORMATS + 1] = { |
{ I965_SURFACETYPE_INDEXED, I965_SURFACEFORMAT_P4A4_UNORM, |
{ VA_FOURCC('I','A','4','4'), VA_MSB_FIRST, 8, }, |
COMMON_SUBPICTURE_FLAGS }, |
{ I965_SURFACETYPE_INDEXED, I965_SURFACEFORMAT_A4P4_UNORM, |
{ VA_FOURCC('A','I','4','4'), VA_MSB_FIRST, 8, }, |
COMMON_SUBPICTURE_FLAGS }, |
{ I965_SURFACETYPE_INDEXED, I965_SURFACEFORMAT_P8A8_UNORM, |
{ VA_FOURCC('I','A','8','8'), VA_MSB_FIRST, 16, }, |
COMMON_SUBPICTURE_FLAGS }, |
{ I965_SURFACETYPE_INDEXED, I965_SURFACEFORMAT_A8P8_UNORM, |
{ VA_FOURCC('A','I','8','8'), VA_MSB_FIRST, 16, }, |
COMMON_SUBPICTURE_FLAGS }, |
{ I965_SURFACETYPE_RGBA, I965_SURFACEFORMAT_B8G8R8A8_UNORM, |
{ VA_FOURCC('B','G','R','A'), VA_LSB_FIRST, 32, |
32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 }, |
COMMON_SUBPICTURE_FLAGS }, |
{ I965_SURFACETYPE_RGBA, I965_SURFACEFORMAT_R8G8B8A8_UNORM, |
{ VA_FOURCC('R','G','B','A'), VA_LSB_FIRST, 32, |
32, 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 }, |
COMMON_SUBPICTURE_FLAGS }, |
}; |
static const i965_subpic_format_map_t * |
get_subpic_format(const VAImageFormat *va_format) |
{ |
unsigned int i; |
for (i = 0; i965_subpic_formats_map[i].type != 0; i++) { |
const i965_subpic_format_map_t * const m = &i965_subpic_formats_map[i]; |
if (m->va_format.fourcc == va_format->fourcc && |
(m->type == I965_SURFACETYPE_RGBA ? |
(m->va_format.byte_order == va_format->byte_order && |
m->va_format.red_mask == va_format->red_mask && |
m->va_format.green_mask == va_format->green_mask && |
m->va_format.blue_mask == va_format->blue_mask && |
m->va_format.alpha_mask == va_format->alpha_mask) : 1)) |
return m; |
} |
return NULL; |
} |
extern struct hw_context *g4x_dec_hw_context_init(VADriverContextP, VAProfile); |
static struct hw_codec_info g4x_hw_codec_info = { |
.dec_hw_context_init = g4x_dec_hw_context_init, |
.enc_hw_context_init = NULL, |
.max_width = 2048, |
.max_height = 2048, |
}; |
extern struct hw_context *ironlake_dec_hw_context_init(VADriverContextP, VAProfile); |
static struct hw_codec_info ironlake_hw_codec_info = { |
.dec_hw_context_init = ironlake_dec_hw_context_init, |
.enc_hw_context_init = NULL, |
.max_width = 2048, |
.max_height = 2048, |
}; |
extern struct hw_context *gen6_dec_hw_context_init(VADriverContextP, VAProfile); |
extern struct hw_context *gen6_enc_hw_context_init(VADriverContextP, VAProfile); |
static struct hw_codec_info gen6_hw_codec_info = { |
.dec_hw_context_init = gen6_dec_hw_context_init, |
.enc_hw_context_init = gen6_enc_hw_context_init, |
.max_width = 2048, |
.max_height = 2048, |
}; |
extern struct hw_context *gen7_dec_hw_context_init(VADriverContextP, VAProfile); |
static struct hw_codec_info gen7_hw_codec_info = { |
.dec_hw_context_init = gen7_dec_hw_context_init, |
.enc_hw_context_init = gen6_enc_hw_context_init, |
.max_width = 4096, |
.max_height = 4096, |
}; |
static struct hw_codec_info gen75_hw_codec_info = { |
.dec_hw_context_init = gen75_dec_hw_context_init, |
.enc_hw_context_init = gen75_enc_hw_context_init, |
.max_width = 4096, |
.max_height = 4096, |
}; |
VAStatus |
i965_QueryConfigProfiles(VADriverContextP ctx, |
VAProfile *profile_list, /* out */ |
int *num_profiles) /* out */ |
{ |
struct i965_driver_data * const i965 = i965_driver_data(ctx); |
int i = 0; |
if (HAS_MPEG2(i965)) { |
profile_list[i++] = VAProfileMPEG2Simple; |
profile_list[i++] = VAProfileMPEG2Main; |
} |
if (HAS_H264(i965)) { |
profile_list[i++] = VAProfileH264Baseline; |
profile_list[i++] = VAProfileH264Main; |
profile_list[i++] = VAProfileH264High; |
} |
if (HAS_VC1(i965)) { |
profile_list[i++] = VAProfileVC1Simple; |
profile_list[i++] = VAProfileVC1Main; |
profile_list[i++] = VAProfileVC1Advanced; |
} |
#ifdef HAVE_VA_JPEG_DECODE |
if (HAS_JPEG(i965)) { |
profile_list[i++] = VAProfileJPEGBaseline; |
} |
#endif |
/* If the assert fails then I965_MAX_PROFILES needs to be bigger */ |
assert(i <= I965_MAX_PROFILES); |
*num_profiles = i; |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_QueryConfigEntrypoints(VADriverContextP ctx, |
VAProfile profile, |
VAEntrypoint *entrypoint_list, /* out */ |
int *num_entrypoints) /* out */ |
{ |
struct i965_driver_data * const i965 = i965_driver_data(ctx); |
int n = 0; |
printf("%s profile %d\n", __FUNCTION__, profile); |
printf("devid %x gen6=%d has264=%d bsd=%d\n", |
i965->intel.device_id, IS_GEN6(i965->intel.device_id), |
HAS_H264(i965), i965->intel.has_bsd); |
switch (profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
if (HAS_MPEG2(i965)) |
entrypoint_list[n++] = VAEntrypointVLD; |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
if (HAS_H264(i965)) |
entrypoint_list[n++] = VAEntrypointVLD; |
if (HAS_ENCODER(i965)) |
entrypoint_list[n++] = VAEntrypointEncSlice; |
break; |
case VAProfileVC1Simple: |
case VAProfileVC1Main: |
case VAProfileVC1Advanced: |
if (HAS_VC1(i965)) |
entrypoint_list[n++] = VAEntrypointVLD; |
break; |
case VAProfileJPEGBaseline: |
if (HAS_JPEG(i965)) |
entrypoint_list[n++] = VAEntrypointVLD; |
break; |
default: |
break; |
} |
/* If the assert fails then I965_MAX_ENTRYPOINTS needs to be bigger */ |
assert(n <= I965_MAX_ENTRYPOINTS); |
*num_entrypoints = n; |
return n > 0 ? VA_STATUS_SUCCESS : VA_STATUS_ERROR_UNSUPPORTED_PROFILE; |
} |
VAStatus |
i965_GetConfigAttributes(VADriverContextP ctx, |
VAProfile profile, |
VAEntrypoint entrypoint, |
VAConfigAttrib *attrib_list, /* in/out */ |
int num_attribs) |
{ |
int i; |
/* Other attributes don't seem to be defined */ |
/* What to do if we don't know the attribute? */ |
for (i = 0; i < num_attribs; i++) { |
switch (attrib_list[i].type) { |
case VAConfigAttribRTFormat: |
attrib_list[i].value = VA_RT_FORMAT_YUV420; |
break; |
case VAConfigAttribRateControl: |
attrib_list[i].value = VA_RC_VBR; |
break; |
default: |
/* Do nothing */ |
attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED; |
break; |
} |
} |
return VA_STATUS_SUCCESS; |
} |
static void |
i965_destroy_config(struct object_heap *heap, struct object_base *obj) |
{ |
object_heap_free(heap, obj); |
} |
static VAStatus |
i965_update_attribute(struct object_config *obj_config, VAConfigAttrib *attrib) |
{ |
int i; |
/* Check existing attrbiutes */ |
for (i = 0; obj_config->num_attribs < i; i++) { |
if (obj_config->attrib_list[i].type == attrib->type) { |
/* Update existing attribute */ |
obj_config->attrib_list[i].value = attrib->value; |
return VA_STATUS_SUCCESS; |
} |
} |
if (obj_config->num_attribs < I965_MAX_CONFIG_ATTRIBUTES) { |
i = obj_config->num_attribs; |
obj_config->attrib_list[i].type = attrib->type; |
obj_config->attrib_list[i].value = attrib->value; |
obj_config->num_attribs++; |
return VA_STATUS_SUCCESS; |
} |
return VA_STATUS_ERROR_MAX_NUM_EXCEEDED; |
} |
VAStatus |
i965_CreateConfig(VADriverContextP ctx, |
VAProfile profile, |
VAEntrypoint entrypoint, |
VAConfigAttrib *attrib_list, |
int num_attribs, |
VAConfigID *config_id) /* out */ |
{ |
struct i965_driver_data * const i965 = i965_driver_data(ctx); |
struct object_config *obj_config; |
int configID; |
int i; |
VAStatus vaStatus; |
printf("%s\n, profile %d", __FUNCTION__, profile ); |
/* Validate profile & entrypoint */ |
switch (profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
if (HAS_MPEG2(i965) && VAEntrypointVLD == entrypoint) { |
vaStatus = VA_STATUS_SUCCESS; |
} else { |
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; |
} |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
if ((HAS_H264(i965) && VAEntrypointVLD == entrypoint) || |
(HAS_ENCODER(i965) && VAEntrypointEncSlice == entrypoint)) { |
vaStatus = VA_STATUS_SUCCESS; |
} else { |
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; |
} |
break; |
case VAProfileVC1Simple: |
case VAProfileVC1Main: |
case VAProfileVC1Advanced: |
if (HAS_VC1(i965) && VAEntrypointVLD == entrypoint) { |
vaStatus = VA_STATUS_SUCCESS; |
} else { |
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; |
} |
break; |
case VAProfileJPEGBaseline: |
if (HAS_JPEG(i965) && VAEntrypointVLD == entrypoint) { |
vaStatus = VA_STATUS_SUCCESS; |
} else { |
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT; |
} |
break; |
default: |
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; |
break; |
} |
if (VA_STATUS_SUCCESS != vaStatus) { |
return vaStatus; |
} |
configID = NEW_CONFIG_ID(); |
obj_config = CONFIG(configID); |
if (NULL == obj_config) { |
vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED; |
return vaStatus; |
} |
obj_config->profile = profile; |
obj_config->entrypoint = entrypoint; |
obj_config->attrib_list[0].type = VAConfigAttribRTFormat; |
obj_config->attrib_list[0].value = VA_RT_FORMAT_YUV420; |
obj_config->num_attribs = 1; |
for(i = 0; i < num_attribs; i++) { |
vaStatus = i965_update_attribute(obj_config, &(attrib_list[i])); |
if (VA_STATUS_SUCCESS != vaStatus) { |
break; |
} |
} |
/* Error recovery */ |
if (VA_STATUS_SUCCESS != vaStatus) { |
i965_destroy_config(&i965->config_heap, (struct object_base *)obj_config); |
} else { |
*config_id = configID; |
} |
return vaStatus; |
} |
VAStatus |
i965_DestroyConfig(VADriverContextP ctx, VAConfigID config_id) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_config *obj_config = CONFIG(config_id); |
VAStatus vaStatus; |
if (NULL == obj_config) { |
vaStatus = VA_STATUS_ERROR_INVALID_CONFIG; |
return vaStatus; |
} |
i965_destroy_config(&i965->config_heap, (struct object_base *)obj_config); |
return VA_STATUS_SUCCESS; |
} |
VAStatus i965_QueryConfigAttributes(VADriverContextP ctx, |
VAConfigID config_id, |
VAProfile *profile, /* out */ |
VAEntrypoint *entrypoint, /* out */ |
VAConfigAttrib *attrib_list, /* out */ |
int *num_attribs) /* out */ |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_config *obj_config = CONFIG(config_id); |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
int i; |
assert(obj_config); |
*profile = obj_config->profile; |
*entrypoint = obj_config->entrypoint; |
*num_attribs = obj_config->num_attribs; |
for(i = 0; i < obj_config->num_attribs; i++) { |
attrib_list[i] = obj_config->attrib_list[i]; |
} |
return vaStatus; |
} |
static void |
i965_destroy_surface(struct object_heap *heap, struct object_base *obj) |
{ |
struct object_surface *obj_surface = (struct object_surface *)obj; |
dri_bo_unreference(obj_surface->bo); |
obj_surface->bo = NULL; |
if (obj_surface->free_private_data != NULL) { |
obj_surface->free_private_data(&obj_surface->private_data); |
obj_surface->private_data = NULL; |
} |
object_heap_free(heap, obj); |
} |
VAStatus |
i965_CreateSurfaces(VADriverContextP ctx, |
int width, |
int height, |
int format, |
int num_surfaces, |
VASurfaceID *surfaces) /* out */ |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i,j; |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
/* We only support one format */ |
if (VA_RT_FORMAT_YUV420 != format) { |
return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT; |
} |
for (i = 0; i < num_surfaces; i++) { |
int surfaceID = NEW_SURFACE_ID(); |
struct object_surface *obj_surface = SURFACE(surfaceID); |
if (NULL == obj_surface) { |
vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED; |
break; |
} |
surfaces[i] = surfaceID; |
obj_surface->status = VASurfaceReady; |
obj_surface->orig_width = width; |
obj_surface->orig_height = height; |
if (IS_G4X(i965->intel.device_id) || IS_IRONLAKE(i965->intel.device_id)) { |
obj_surface->width = ALIGN(width, 16); |
obj_surface->height = ALIGN(height, 16); |
} else { |
obj_surface->width = ALIGN(width, 128); |
obj_surface->height = ALIGN(height, 32); |
} |
obj_surface->subpic_render_idx = 0; |
for(j = 0; j < I965_MAX_SUBPIC_SUM; j++){ |
obj_surface->subpic[j] = VA_INVALID_ID; |
} |
obj_surface->flags = SURFACE_REFERENCED; |
obj_surface->fourcc = 0; |
obj_surface->bo = NULL; |
obj_surface->locked_image_id = VA_INVALID_ID; |
obj_surface->private_data = NULL; |
obj_surface->free_private_data = NULL; |
obj_surface->subsampling = SUBSAMPLE_YUV420; |
} |
/* Error recovery */ |
if (VA_STATUS_SUCCESS != vaStatus) { |
/* surfaces[i-1] was the last successful allocation */ |
for (; i--; ) { |
struct object_surface *obj_surface = SURFACE(surfaces[i]); |
surfaces[i] = VA_INVALID_SURFACE; |
assert(obj_surface); |
i965_destroy_surface(&i965->surface_heap, (struct object_base *)obj_surface); |
} |
} |
return vaStatus; |
} |
VAStatus |
i965_DestroySurfaces(VADriverContextP ctx, |
VASurfaceID *surface_list, |
int num_surfaces) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i; |
for (i = num_surfaces; i--; ) { |
struct object_surface *obj_surface = SURFACE(surface_list[i]); |
assert(obj_surface); |
i965_destroy_surface(&i965->surface_heap, (struct object_base *)obj_surface); |
} |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_QueryImageFormats(VADriverContextP ctx, |
VAImageFormat *format_list, /* out */ |
int *num_formats) /* out */ |
{ |
int n; |
for (n = 0; i965_image_formats_map[n].va_format.fourcc != 0; n++) { |
const i965_image_format_map_t * const m = &i965_image_formats_map[n]; |
if (format_list) |
format_list[n] = m->va_format; |
} |
if (num_formats) |
*num_formats = n; |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_PutImage(VADriverContextP ctx, |
VASurfaceID surface, |
VAImageID image, |
int src_x, |
int src_y, |
unsigned int src_width, |
unsigned int src_height, |
int dest_x, |
int dest_y, |
unsigned int dest_width, |
unsigned int dest_height) |
{ |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_QuerySubpictureFormats(VADriverContextP ctx, |
VAImageFormat *format_list, /* out */ |
unsigned int *flags, /* out */ |
unsigned int *num_formats) /* out */ |
{ |
int n; |
for (n = 0; i965_subpic_formats_map[n].va_format.fourcc != 0; n++) { |
const i965_subpic_format_map_t * const m = &i965_subpic_formats_map[n]; |
if (format_list) |
format_list[n] = m->va_format; |
if (flags) |
flags[n] = m->va_flags; |
} |
if (num_formats) |
*num_formats = n; |
return VA_STATUS_SUCCESS; |
} |
static void |
i965_destroy_subpic(struct object_heap *heap, struct object_base *obj) |
{ |
// struct object_subpic *obj_subpic = (struct object_subpic *)obj; |
object_heap_free(heap, obj); |
} |
VAStatus |
i965_CreateSubpicture(VADriverContextP ctx, |
VAImageID image, |
VASubpictureID *subpicture) /* out */ |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
VASubpictureID subpicID = NEW_SUBPIC_ID() |
struct object_subpic *obj_subpic = SUBPIC(subpicID); |
if (!obj_subpic) |
return VA_STATUS_ERROR_ALLOCATION_FAILED; |
struct object_image *obj_image = IMAGE(image); |
if (!obj_image) |
return VA_STATUS_ERROR_INVALID_IMAGE; |
const i965_subpic_format_map_t * const m = get_subpic_format(&obj_image->image.format); |
if (!m) |
return VA_STATUS_ERROR_UNKNOWN; /* XXX: VA_STATUS_ERROR_UNSUPPORTED_FORMAT? */ |
*subpicture = subpicID; |
obj_subpic->image = image; |
obj_subpic->format = m->format; |
obj_subpic->width = obj_image->image.width; |
obj_subpic->height = obj_image->image.height; |
obj_subpic->pitch = obj_image->image.pitches[0]; |
obj_subpic->bo = obj_image->bo; |
obj_subpic->global_alpha = 1.0; |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_DestroySubpicture(VADriverContextP ctx, |
VASubpictureID subpicture) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_subpic *obj_subpic = SUBPIC(subpicture); |
i965_destroy_subpic(&i965->subpic_heap, (struct object_base *)obj_subpic); |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_SetSubpictureImage(VADriverContextP ctx, |
VASubpictureID subpicture, |
VAImageID image) |
{ |
/* TODO */ |
return VA_STATUS_ERROR_UNIMPLEMENTED; |
} |
VAStatus |
i965_SetSubpictureChromakey(VADriverContextP ctx, |
VASubpictureID subpicture, |
unsigned int chromakey_min, |
unsigned int chromakey_max, |
unsigned int chromakey_mask) |
{ |
/* TODO */ |
return VA_STATUS_ERROR_UNIMPLEMENTED; |
} |
VAStatus |
i965_SetSubpictureGlobalAlpha(VADriverContextP ctx, |
VASubpictureID subpicture, |
float global_alpha) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_subpic *obj_subpic = SUBPIC(subpicture); |
if(global_alpha > 1.0 || global_alpha < 0.0){ |
return VA_STATUS_ERROR_INVALID_PARAMETER; |
} |
obj_subpic->global_alpha = global_alpha; |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_AssociateSubpicture(VADriverContextP ctx, |
VASubpictureID subpicture, |
VASurfaceID *target_surfaces, |
int num_surfaces, |
short src_x, /* upper left offset in subpicture */ |
short src_y, |
unsigned short src_width, |
unsigned short src_height, |
short dest_x, /* upper left offset in surface */ |
short dest_y, |
unsigned short dest_width, |
unsigned short dest_height, |
/* |
* whether to enable chroma-keying or global-alpha |
* see VA_SUBPICTURE_XXX values |
*/ |
unsigned int flags) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_subpic *obj_subpic = SUBPIC(subpicture); |
int i, j; |
obj_subpic->src_rect.x = src_x; |
obj_subpic->src_rect.y = src_y; |
obj_subpic->src_rect.width = src_width; |
obj_subpic->src_rect.height = src_height; |
obj_subpic->dst_rect.x = dest_x; |
obj_subpic->dst_rect.y = dest_y; |
obj_subpic->dst_rect.width = dest_width; |
obj_subpic->dst_rect.height = dest_height; |
obj_subpic->flags = flags; |
for (i = 0; i < num_surfaces; i++) { |
struct object_surface *obj_surface = SURFACE(target_surfaces[i]); |
if (!obj_surface) |
return VA_STATUS_ERROR_INVALID_SURFACE; |
for(j = 0; j < I965_MAX_SUBPIC_SUM; j ++){ |
if(obj_surface->subpic[j] == VA_INVALID_ID){ |
obj_surface->subpic[j] = subpicture; |
break; |
} |
} |
if(j == I965_MAX_SUBPIC_SUM){ |
return VA_STATUS_ERROR_MAX_NUM_EXCEEDED; |
} |
} |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_DeassociateSubpicture(VADriverContextP ctx, |
VASubpictureID subpicture, |
VASurfaceID *target_surfaces, |
int num_surfaces) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i, j; |
for (i = 0; i < num_surfaces; i++) { |
struct object_surface *obj_surface = SURFACE(target_surfaces[i]); |
if (!obj_surface) |
return VA_STATUS_ERROR_INVALID_SURFACE; |
for(j = 0; j < I965_MAX_SUBPIC_SUM; j ++){ |
if(obj_surface->subpic[j] == subpicture){ |
obj_surface->subpic[j] = VA_INVALID_ID; |
break; |
} |
} |
if(j == I965_MAX_SUBPIC_SUM){ |
return VA_STATUS_ERROR_MAX_NUM_EXCEEDED; |
} |
} |
return VA_STATUS_SUCCESS; |
} |
void |
i965_reference_buffer_store(struct buffer_store **ptr, |
struct buffer_store *buffer_store) |
{ |
assert(*ptr == NULL); |
if (buffer_store) { |
buffer_store->ref_count++; |
*ptr = buffer_store; |
} |
} |
void |
i965_release_buffer_store(struct buffer_store **ptr) |
{ |
struct buffer_store *buffer_store = *ptr; |
if (buffer_store == NULL) |
return; |
assert(buffer_store->bo || buffer_store->buffer); |
assert(!(buffer_store->bo && buffer_store->buffer)); |
buffer_store->ref_count--; |
if (buffer_store->ref_count == 0) { |
dri_bo_unreference(buffer_store->bo); |
free(buffer_store->buffer); |
buffer_store->bo = NULL; |
buffer_store->buffer = NULL; |
free(buffer_store); |
} |
*ptr = NULL; |
} |
static void |
i965_destroy_context(struct object_heap *heap, struct object_base *obj) |
{ |
struct object_context *obj_context = (struct object_context *)obj; |
int i; |
if (obj_context->hw_context) { |
obj_context->hw_context->destroy(obj_context->hw_context); |
obj_context->hw_context = NULL; |
} |
if (obj_context->codec_type == CODEC_ENC) { |
assert(obj_context->codec_state.encode.num_slice_params <= obj_context->codec_state.encode.max_slice_params); |
i965_release_buffer_store(&obj_context->codec_state.encode.pic_param); |
i965_release_buffer_store(&obj_context->codec_state.encode.seq_param); |
for (i = 0; i < obj_context->codec_state.encode.num_slice_params; i++) |
i965_release_buffer_store(&obj_context->codec_state.encode.slice_params[i]); |
free(obj_context->codec_state.encode.slice_params); |
} else { |
assert(obj_context->codec_state.decode.num_slice_params <= obj_context->codec_state.decode.max_slice_params); |
assert(obj_context->codec_state.decode.num_slice_datas <= obj_context->codec_state.decode.max_slice_datas); |
i965_release_buffer_store(&obj_context->codec_state.decode.pic_param); |
i965_release_buffer_store(&obj_context->codec_state.decode.iq_matrix); |
i965_release_buffer_store(&obj_context->codec_state.decode.bit_plane); |
for (i = 0; i < obj_context->codec_state.decode.num_slice_params; i++) |
i965_release_buffer_store(&obj_context->codec_state.decode.slice_params[i]); |
for (i = 0; i < obj_context->codec_state.decode.num_slice_datas; i++) |
i965_release_buffer_store(&obj_context->codec_state.decode.slice_datas[i]); |
free(obj_context->codec_state.decode.slice_params); |
free(obj_context->codec_state.decode.slice_datas); |
} |
free(obj_context->render_targets); |
object_heap_free(heap, obj); |
} |
VAStatus |
i965_CreateContext(VADriverContextP ctx, |
VAConfigID config_id, |
int picture_width, |
int picture_height, |
int flag, |
VASurfaceID *render_targets, |
int num_render_targets, |
VAContextID *context) /* out */ |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct object_config *obj_config = CONFIG(config_id); |
struct object_context *obj_context = NULL; |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
int contextID; |
int i; |
if (NULL == obj_config) { |
vaStatus = VA_STATUS_ERROR_INVALID_CONFIG; |
return vaStatus; |
} |
if (picture_width > i965->codec_info->max_width || |
picture_height > i965->codec_info->max_height) { |
vaStatus = VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED; |
return vaStatus; |
} |
/* Validate flag */ |
/* Validate picture dimensions */ |
contextID = NEW_CONTEXT_ID(); |
obj_context = CONTEXT(contextID); |
if (NULL == obj_context) { |
vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED; |
return vaStatus; |
} |
render_state->inited = 1; |
switch (obj_config->profile) { |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
if (!HAS_H264(i965)) |
return VA_STATUS_ERROR_UNSUPPORTED_PROFILE; |
render_state->interleaved_uv = 1; |
break; |
default: |
render_state->interleaved_uv = !!(IS_GEN6(i965->intel.device_id) || IS_GEN7(i965->intel.device_id)); |
break; |
} |
*context = contextID; |
obj_context->flags = flag; |
obj_context->context_id = contextID; |
obj_context->config_id = config_id; |
obj_context->picture_width = picture_width; |
obj_context->picture_height = picture_height; |
obj_context->num_render_targets = num_render_targets; |
obj_context->render_targets = |
(VASurfaceID *)calloc(num_render_targets, sizeof(VASurfaceID)); |
obj_context->hw_context = NULL; |
for(i = 0; i < num_render_targets; i++) { |
if (NULL == SURFACE(render_targets[i])) { |
vaStatus = VA_STATUS_ERROR_INVALID_SURFACE; |
break; |
} |
obj_context->render_targets[i] = render_targets[i]; |
} |
if (VA_STATUS_SUCCESS == vaStatus) { |
if (VAEntrypointEncSlice == obj_config->entrypoint ) { /*encode routin only*/ |
obj_context->codec_type = CODEC_ENC; |
memset(&obj_context->codec_state.encode, 0, sizeof(obj_context->codec_state.encode)); |
obj_context->codec_state.encode.current_render_target = VA_INVALID_ID; |
obj_context->codec_state.encode.max_slice_params = NUM_SLICES; |
obj_context->codec_state.encode.slice_params = calloc(obj_context->codec_state.encode.max_slice_params, |
sizeof(*obj_context->codec_state.encode.slice_params)); |
assert(i965->codec_info->enc_hw_context_init); |
obj_context->hw_context = i965->codec_info->enc_hw_context_init(ctx, obj_config->profile); |
} else { |
obj_context->codec_type = CODEC_DEC; |
memset(&obj_context->codec_state.decode, 0, sizeof(obj_context->codec_state.decode)); |
obj_context->codec_state.decode.current_render_target = -1; |
obj_context->codec_state.decode.max_slice_params = NUM_SLICES; |
obj_context->codec_state.decode.max_slice_datas = NUM_SLICES; |
obj_context->codec_state.decode.slice_params = calloc(obj_context->codec_state.decode.max_slice_params, |
sizeof(*obj_context->codec_state.decode.slice_params)); |
obj_context->codec_state.decode.slice_datas = calloc(obj_context->codec_state.decode.max_slice_datas, |
sizeof(*obj_context->codec_state.decode.slice_datas)); |
assert(i965->codec_info->dec_hw_context_init); |
obj_context->hw_context = i965->codec_info->dec_hw_context_init(ctx, obj_config->profile); |
} |
} |
/* Error recovery */ |
if (VA_STATUS_SUCCESS != vaStatus) { |
i965_destroy_context(&i965->context_heap, (struct object_base *)obj_context); |
} |
return vaStatus; |
} |
VAStatus |
i965_DestroyContext(VADriverContextP ctx, VAContextID context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_context *obj_context = CONTEXT(context); |
assert(obj_context); |
i965_destroy_context(&i965->context_heap, (struct object_base *)obj_context); |
return VA_STATUS_SUCCESS; |
} |
static void |
i965_destroy_buffer(struct object_heap *heap, struct object_base *obj) |
{ |
struct object_buffer *obj_buffer = (struct object_buffer *)obj; |
assert(obj_buffer->buffer_store); |
i965_release_buffer_store(&obj_buffer->buffer_store); |
object_heap_free(heap, obj); |
} |
static VAStatus |
i965_create_buffer_internal(VADriverContextP ctx, |
VAContextID context, |
VABufferType type, |
unsigned int size, |
unsigned int num_elements, |
void *data, |
dri_bo *store_bo, |
VABufferID *buf_id) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_buffer *obj_buffer = NULL; |
struct buffer_store *buffer_store = NULL; |
int bufferID; |
/* Validate type */ |
switch (type) { |
case VAPictureParameterBufferType: |
case VAIQMatrixBufferType: |
case VABitPlaneBufferType: |
case VASliceGroupMapBufferType: |
case VASliceParameterBufferType: |
case VASliceDataBufferType: |
case VAMacroblockParameterBufferType: |
case VAResidualDataBufferType: |
case VADeblockingParameterBufferType: |
case VAImageBufferType: |
case VAEncCodedBufferType: |
case VAEncSequenceParameterBufferType: |
case VAEncPictureParameterBufferType: |
case VAEncSliceParameterBufferType: |
#ifdef HAVE_VA_JPEG_DECODE |
case VAHuffmanTableBufferType: |
#endif |
/* Ok */ |
break; |
default: |
return VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE; |
} |
bufferID = NEW_BUFFER_ID(); |
obj_buffer = BUFFER(bufferID); |
if (NULL == obj_buffer) { |
return VA_STATUS_ERROR_ALLOCATION_FAILED; |
} |
if (type == VAEncCodedBufferType) { |
size += ALIGN(sizeof(VACodedBufferSegment), 64); |
} |
obj_buffer->max_num_elements = num_elements; |
obj_buffer->num_elements = num_elements; |
obj_buffer->size_element = size; |
obj_buffer->type = type; |
obj_buffer->buffer_store = NULL; |
buffer_store = calloc(1, sizeof(struct buffer_store)); |
assert(buffer_store); |
buffer_store->ref_count = 1; |
if (store_bo != NULL) { |
buffer_store->bo = store_bo; |
dri_bo_reference(buffer_store->bo); |
if (data) |
dri_bo_subdata(buffer_store->bo, 0, size * num_elements, data); |
} else if (type == VASliceDataBufferType || type == VAImageBufferType || type == VAEncCodedBufferType) { |
buffer_store->bo = dri_bo_alloc(i965->intel.bufmgr, |
"Buffer", |
size * num_elements, 64); |
assert(buffer_store->bo); |
if (type == VAEncCodedBufferType) { |
VACodedBufferSegment *coded_buffer_segment; |
dri_bo_map(buffer_store->bo, 1); |
coded_buffer_segment = (VACodedBufferSegment *)buffer_store->bo->virtual; |
coded_buffer_segment->size = size - ALIGN(sizeof(VACodedBufferSegment), 64); |
coded_buffer_segment->bit_offset = 0; |
coded_buffer_segment->status = 0; |
coded_buffer_segment->buf = NULL; |
coded_buffer_segment->next = NULL; |
dri_bo_unmap(buffer_store->bo); |
} else if (data) { |
dri_bo_subdata(buffer_store->bo, 0, size * num_elements, data); |
} |
} else { |
buffer_store->buffer = malloc(size * num_elements); |
assert(buffer_store->buffer); |
if (data) |
memcpy(buffer_store->buffer, data, size * num_elements); |
} |
buffer_store->num_elements = obj_buffer->num_elements; |
i965_reference_buffer_store(&obj_buffer->buffer_store, buffer_store); |
i965_release_buffer_store(&buffer_store); |
*buf_id = bufferID; |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_CreateBuffer(VADriverContextP ctx, |
VAContextID context, /* in */ |
VABufferType type, /* in */ |
unsigned int size, /* in */ |
unsigned int num_elements, /* in */ |
void *data, /* in */ |
VABufferID *buf_id) /* out */ |
{ |
return i965_create_buffer_internal(ctx, context, type, size, num_elements, data, NULL, buf_id); |
} |
VAStatus |
i965_BufferSetNumElements(VADriverContextP ctx, |
VABufferID buf_id, /* in */ |
unsigned int num_elements) /* in */ |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_buffer *obj_buffer = BUFFER(buf_id); |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
assert(obj_buffer); |
if ((num_elements < 0) || |
(num_elements > obj_buffer->max_num_elements)) { |
vaStatus = VA_STATUS_ERROR_UNKNOWN; |
} else { |
obj_buffer->num_elements = num_elements; |
if (obj_buffer->buffer_store != NULL) { |
obj_buffer->buffer_store->num_elements = num_elements; |
} |
} |
return vaStatus; |
} |
VAStatus |
i965_MapBuffer(VADriverContextP ctx, |
VABufferID buf_id, /* in */ |
void **pbuf) /* out */ |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_buffer *obj_buffer = BUFFER(buf_id); |
VAStatus vaStatus = VA_STATUS_ERROR_UNKNOWN; |
assert(obj_buffer && obj_buffer->buffer_store); |
assert(obj_buffer->buffer_store->bo || obj_buffer->buffer_store->buffer); |
assert(!(obj_buffer->buffer_store->bo && obj_buffer->buffer_store->buffer)); |
if (NULL != obj_buffer->buffer_store->bo) { |
unsigned int tiling, swizzle; |
dri_bo_get_tiling(obj_buffer->buffer_store->bo, &tiling, &swizzle); |
if (tiling != I915_TILING_NONE) |
drm_intel_gem_bo_map_gtt(obj_buffer->buffer_store->bo); |
else |
dri_bo_map(obj_buffer->buffer_store->bo, 1); |
assert(obj_buffer->buffer_store->bo->virtual); |
*pbuf = obj_buffer->buffer_store->bo->virtual; |
if (obj_buffer->type == VAEncCodedBufferType) { |
VACodedBufferSegment *coded_buffer_segment = (VACodedBufferSegment *)(obj_buffer->buffer_store->bo->virtual); |
coded_buffer_segment->buf = (unsigned char *)(obj_buffer->buffer_store->bo->virtual) + ALIGN(sizeof(VACodedBufferSegment), 64); |
} |
vaStatus = VA_STATUS_SUCCESS; |
} else if (NULL != obj_buffer->buffer_store->buffer) { |
*pbuf = obj_buffer->buffer_store->buffer; |
vaStatus = VA_STATUS_SUCCESS; |
} |
return vaStatus; |
} |
VAStatus |
i965_UnmapBuffer(VADriverContextP ctx, VABufferID buf_id) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_buffer *obj_buffer = BUFFER(buf_id); |
VAStatus vaStatus = VA_STATUS_ERROR_UNKNOWN; |
assert(obj_buffer && obj_buffer->buffer_store); |
assert(obj_buffer->buffer_store->bo || obj_buffer->buffer_store->buffer); |
assert(!(obj_buffer->buffer_store->bo && obj_buffer->buffer_store->buffer)); |
if (NULL != obj_buffer->buffer_store->bo) { |
unsigned int tiling, swizzle; |
dri_bo_get_tiling(obj_buffer->buffer_store->bo, &tiling, &swizzle); |
if (tiling != I915_TILING_NONE) |
drm_intel_gem_bo_unmap_gtt(obj_buffer->buffer_store->bo); |
else |
dri_bo_unmap(obj_buffer->buffer_store->bo); |
vaStatus = VA_STATUS_SUCCESS; |
} else if (NULL != obj_buffer->buffer_store->buffer) { |
/* Do nothing */ |
vaStatus = VA_STATUS_SUCCESS; |
} |
return vaStatus; |
} |
VAStatus |
i965_DestroyBuffer(VADriverContextP ctx, VABufferID buffer_id) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_buffer *obj_buffer = BUFFER(buffer_id); |
assert(obj_buffer); |
i965_destroy_buffer(&i965->buffer_heap, (struct object_base *)obj_buffer); |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_BeginPicture(VADriverContextP ctx, |
VAContextID context, |
VASurfaceID render_target) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_context *obj_context = CONTEXT(context); |
struct object_surface *obj_surface = SURFACE(render_target); |
struct object_config *obj_config; |
VAContextID config; |
VAStatus vaStatus; |
int i; |
assert(obj_context); |
assert(obj_surface); |
config = obj_context->config_id; |
obj_config = CONFIG(config); |
assert(obj_config); |
switch (obj_config->profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
vaStatus = VA_STATUS_SUCCESS; |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
vaStatus = VA_STATUS_SUCCESS; |
break; |
case VAProfileVC1Simple: |
case VAProfileVC1Main: |
case VAProfileVC1Advanced: |
vaStatus = VA_STATUS_SUCCESS; |
break; |
case VAProfileJPEGBaseline: |
vaStatus = VA_STATUS_SUCCESS; |
break; |
default: |
assert(0); |
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE; |
break; |
} |
if (obj_context->codec_type == CODEC_ENC) { |
i965_release_buffer_store(&obj_context->codec_state.encode.pic_param); |
i965_release_buffer_store(&obj_context->codec_state.encode.seq_param); |
for (i = 0; i < obj_context->codec_state.encode.num_slice_params; i++) { |
i965_release_buffer_store(&obj_context->codec_state.encode.slice_params[i]); |
} |
obj_context->codec_state.encode.num_slice_params = 0; |
obj_context->codec_state.encode.current_render_target = render_target; /*This is input new frame*/ |
} else { |
obj_context->codec_state.decode.current_render_target = render_target; |
i965_release_buffer_store(&obj_context->codec_state.decode.pic_param); |
i965_release_buffer_store(&obj_context->codec_state.decode.iq_matrix); |
i965_release_buffer_store(&obj_context->codec_state.decode.bit_plane); |
i965_release_buffer_store(&obj_context->codec_state.decode.huffman_table); |
for (i = 0; i < obj_context->codec_state.decode.num_slice_params; i++) { |
i965_release_buffer_store(&obj_context->codec_state.decode.slice_params[i]); |
i965_release_buffer_store(&obj_context->codec_state.decode.slice_datas[i]); |
} |
obj_context->codec_state.decode.num_slice_params = 0; |
obj_context->codec_state.decode.num_slice_datas = 0; |
} |
return vaStatus; |
} |
#define I965_RENDER_BUFFER(category, name) i965_render_##category##_##name##_buffer(ctx, obj_context, obj_buffer) |
#define DEF_RENDER_SINGLE_BUFFER_FUNC(category, name, member) \ |
static VAStatus \ |
i965_render_##category##_##name##_buffer(VADriverContextP ctx, \ |
struct object_context *obj_context, \ |
struct object_buffer *obj_buffer) \ |
{ \ |
struct category##_state *category = &obj_context->codec_state.category; \ |
assert(obj_buffer->buffer_store->bo == NULL); \ |
assert(obj_buffer->buffer_store->buffer); \ |
i965_release_buffer_store(&category->member); \ |
i965_reference_buffer_store(&category->member, obj_buffer->buffer_store); \ |
return VA_STATUS_SUCCESS; \ |
} |
#define DEF_RENDER_MULTI_BUFFER_FUNC(category, name, member) \ |
static VAStatus \ |
i965_render_##category##_##name##_buffer(VADriverContextP ctx, \ |
struct object_context *obj_context, \ |
struct object_buffer *obj_buffer) \ |
{ \ |
struct category##_state *category = &obj_context->codec_state.category; \ |
if (category->num_##member == category->max_##member) { \ |
category->member = realloc(category->member, (category->max_##member + NUM_SLICES) * sizeof(*category->member)); \ |
memset(category->member + category->max_##member, 0, NUM_SLICES * sizeof(*category->member)); \ |
category->max_##member += NUM_SLICES; \ |
} \ |
i965_release_buffer_store(&category->member[category->num_##member]); \ |
i965_reference_buffer_store(&category->member[category->num_##member], obj_buffer->buffer_store); \ |
category->num_##member++; \ |
return VA_STATUS_SUCCESS; \ |
} |
#define I965_RENDER_DECODE_BUFFER(name) I965_RENDER_BUFFER(decode, name) |
#define DEF_RENDER_DECODE_SINGLE_BUFFER_FUNC(name, member) DEF_RENDER_SINGLE_BUFFER_FUNC(decode, name, member) |
DEF_RENDER_DECODE_SINGLE_BUFFER_FUNC(picture_parameter, pic_param) |
DEF_RENDER_DECODE_SINGLE_BUFFER_FUNC(iq_matrix, iq_matrix) |
DEF_RENDER_DECODE_SINGLE_BUFFER_FUNC(bit_plane, bit_plane) |
DEF_RENDER_DECODE_SINGLE_BUFFER_FUNC(huffman_table, huffman_table) |
#define DEF_RENDER_DECODE_MULTI_BUFFER_FUNC(name, member) DEF_RENDER_MULTI_BUFFER_FUNC(decode, name, member) |
DEF_RENDER_DECODE_MULTI_BUFFER_FUNC(slice_parameter, slice_params) |
DEF_RENDER_DECODE_MULTI_BUFFER_FUNC(slice_data, slice_datas) |
static VAStatus |
i965_decoder_render_picture(VADriverContextP ctx, |
VAContextID context, |
VABufferID *buffers, |
int num_buffers) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_context *obj_context = CONTEXT(context); |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
int i; |
for (i = 0; i < num_buffers && vaStatus == VA_STATUS_SUCCESS; i++) { |
struct object_buffer *obj_buffer = BUFFER(buffers[i]); |
assert(obj_buffer); |
switch (obj_buffer->type) { |
case VAPictureParameterBufferType: |
vaStatus = I965_RENDER_DECODE_BUFFER(picture_parameter); |
break; |
case VAIQMatrixBufferType: |
vaStatus = I965_RENDER_DECODE_BUFFER(iq_matrix); |
break; |
case VABitPlaneBufferType: |
vaStatus = I965_RENDER_DECODE_BUFFER(bit_plane); |
break; |
case VASliceParameterBufferType: |
vaStatus = I965_RENDER_DECODE_BUFFER(slice_parameter); |
break; |
case VASliceDataBufferType: |
vaStatus = I965_RENDER_DECODE_BUFFER(slice_data); |
break; |
#ifdef HAVE_VA_JPEG_DECODE |
case VAHuffmanTableBufferType: |
vaStatus = I965_RENDER_DECODE_BUFFER(huffman_table); |
break; |
#endif |
default: |
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE; |
break; |
} |
} |
return vaStatus; |
} |
#define I965_RENDER_ENCODE_BUFFER(name) I965_RENDER_BUFFER(encode, name) |
#define DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(name, member) DEF_RENDER_SINGLE_BUFFER_FUNC(encode, name, member) |
DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(sequence_parameter, seq_param) |
DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(picture_parameter, pic_param) |
DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(picture_control, pic_control) |
DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(qmatrix, q_matrix) |
DEF_RENDER_ENCODE_SINGLE_BUFFER_FUNC(iqmatrix, iq_matrix) |
#define DEF_RENDER_ENCODE_MULTI_BUFFER_FUNC(name, member) DEF_RENDER_MULTI_BUFFER_FUNC(encode, name, member) |
DEF_RENDER_ENCODE_MULTI_BUFFER_FUNC(slice_parameter, slice_params) |
static VAStatus |
i965_encoder_render_picture(VADriverContextP ctx, |
VAContextID context, |
VABufferID *buffers, |
int num_buffers) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_context *obj_context = CONTEXT(context); |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
int i; |
for (i = 0; i < num_buffers && vaStatus == VA_STATUS_SUCCESS; i++) { |
struct object_buffer *obj_buffer = BUFFER(buffers[i]); |
assert(obj_buffer); |
switch (obj_buffer->type) { |
case VAEncSequenceParameterBufferType: |
vaStatus = I965_RENDER_ENCODE_BUFFER(sequence_parameter); |
break; |
case VAEncPictureParameterBufferType: |
vaStatus = I965_RENDER_ENCODE_BUFFER(picture_parameter); |
break; |
case VAEncSliceParameterBufferType: |
vaStatus = I965_RENDER_ENCODE_BUFFER(slice_parameter); |
break; |
case VAPictureParameterBufferType: |
vaStatus = I965_RENDER_ENCODE_BUFFER(picture_control); |
break; |
case VAQMatrixBufferType: |
vaStatus = I965_RENDER_ENCODE_BUFFER(qmatrix); |
break; |
case VAIQMatrixBufferType: |
vaStatus = I965_RENDER_ENCODE_BUFFER(iqmatrix); |
break; |
default: |
vaStatus = VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE; |
break; |
} |
} |
return vaStatus; |
} |
VAStatus |
i965_RenderPicture(VADriverContextP ctx, |
VAContextID context, |
VABufferID *buffers, |
int num_buffers) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_context *obj_context; |
struct object_config *obj_config; |
VAContextID config; |
VAStatus vaStatus = VA_STATUS_ERROR_UNKNOWN; |
obj_context = CONTEXT(context); |
assert(obj_context); |
config = obj_context->config_id; |
obj_config = CONFIG(config); |
assert(obj_config); |
if (VAEntrypointEncSlice == obj_config->entrypoint ){ |
vaStatus = i965_encoder_render_picture(ctx, context, buffers, num_buffers); |
} else { |
vaStatus = i965_decoder_render_picture(ctx, context, buffers, num_buffers); |
} |
return vaStatus; |
} |
VAStatus |
i965_EndPicture(VADriverContextP ctx, VAContextID context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_context *obj_context = CONTEXT(context); |
struct object_config *obj_config; |
VAContextID config; |
assert(obj_context); |
config = obj_context->config_id; |
obj_config = CONFIG(config); |
assert(obj_config); |
if (obj_context->codec_type == CODEC_ENC) { |
assert(VAEntrypointEncSlice == obj_config->entrypoint); |
assert(obj_context->codec_state.encode.pic_param); |
assert(obj_context->codec_state.encode.seq_param); |
assert(obj_context->codec_state.encode.num_slice_params >= 1); |
} else { |
assert(obj_context->codec_state.decode.pic_param); |
assert(obj_context->codec_state.decode.num_slice_params >= 1); |
assert(obj_context->codec_state.decode.num_slice_datas >= 1); |
assert(obj_context->codec_state.decode.num_slice_params == obj_context->codec_state.decode.num_slice_datas); |
} |
assert(obj_context->hw_context->run); |
obj_context->hw_context->run(ctx, obj_config->profile, &obj_context->codec_state, obj_context->hw_context); |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_SyncSurface(VADriverContextP ctx, |
VASurfaceID render_target) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(render_target); |
assert(obj_surface); |
if(obj_surface->bo) |
drm_intel_bo_wait_rendering(obj_surface->bo); |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_QuerySurfaceStatus(VADriverContextP ctx, |
VASurfaceID render_target, |
VASurfaceStatus *status) /* out */ |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(render_target); |
assert(obj_surface); |
if (obj_surface->bo) { |
// if (drm_intel_bo_busy(obj_surface->bo)){ |
// *status = VASurfaceRendering; |
// } |
// else { |
*status = VASurfaceReady; |
// } |
} else { |
*status = VASurfaceReady; |
} |
return VA_STATUS_SUCCESS; |
} |
static VADisplayAttribute * |
get_display_attribute(VADriverContextP ctx, VADisplayAttribType type) |
{ |
struct i965_driver_data * const i965 = i965_driver_data(ctx); |
unsigned int i; |
if (!i965->display_attributes) |
return NULL; |
for (i = 0; i < i965->num_display_attributes; i++) { |
if (i965->display_attributes[i].type == type) |
return &i965->display_attributes[i]; |
} |
return NULL; |
} |
static bool |
i965_display_attributes_init(VADriverContextP ctx) |
{ |
struct i965_driver_data * const i965 = i965_driver_data(ctx); |
printf("%s\n", __FUNCTION__); |
i965->num_display_attributes = ARRAY_ELEMS(i965_display_attributes); |
i965->display_attributes = malloc( |
i965->num_display_attributes * sizeof(i965->display_attributes[0])); |
if (!i965->display_attributes) |
return false; |
memcpy( |
i965->display_attributes, |
i965_display_attributes, |
sizeof(i965_display_attributes) |
); |
i965->rotation_attrib = get_display_attribute(ctx, VADisplayAttribRotation); |
if (!i965->rotation_attrib) |
return false; |
return true; |
} |
static void |
i965_display_attributes_terminate(VADriverContextP ctx) |
{ |
struct i965_driver_data * const i965 = i965_driver_data(ctx); |
if (i965->display_attributes) { |
free(i965->display_attributes); |
i965->display_attributes = NULL; |
i965->num_display_attributes = 0; |
} |
} |
/* |
* Query display attributes |
* The caller must provide a "attr_list" array that can hold at |
* least vaMaxNumDisplayAttributes() entries. The actual number of attributes |
* returned in "attr_list" is returned in "num_attributes". |
*/ |
VAStatus |
i965_QueryDisplayAttributes( |
VADriverContextP ctx, |
VADisplayAttribute *attribs, /* out */ |
int *num_attribs_ptr /* out */ |
) |
{ |
const int num_attribs = ARRAY_ELEMS(i965_display_attributes); |
if (attribs && num_attribs > 0) |
memcpy(attribs, i965_display_attributes, sizeof(i965_display_attributes)); |
if (num_attribs_ptr) |
*num_attribs_ptr = num_attribs; |
return VA_STATUS_SUCCESS; |
} |
/* |
* Get display attributes |
* This function returns the current attribute values in "attr_list". |
* Only attributes returned with VA_DISPLAY_ATTRIB_GETTABLE set in the "flags" field |
* from vaQueryDisplayAttributes() can have their values retrieved. |
*/ |
VAStatus |
i965_GetDisplayAttributes( |
VADriverContextP ctx, |
VADisplayAttribute *attribs, /* inout */ |
int num_attribs /* in */ |
) |
{ |
int i; |
for (i = 0; i < num_attribs; i++) { |
VADisplayAttribute *src_attrib, * const dst_attrib = &attribs[i]; |
src_attrib = get_display_attribute(ctx, dst_attrib->type); |
if (src_attrib && (src_attrib->flags & VA_DISPLAY_ATTRIB_GETTABLE)) { |
dst_attrib->min_value = src_attrib->min_value; |
dst_attrib->max_value = src_attrib->max_value; |
dst_attrib->value = src_attrib->value; |
} |
else |
dst_attrib->flags = VA_DISPLAY_ATTRIB_NOT_SUPPORTED; |
} |
return VA_STATUS_SUCCESS; |
} |
/* |
* Set display attributes |
* Only attributes returned with VA_DISPLAY_ATTRIB_SETTABLE set in the "flags" field |
* from vaQueryDisplayAttributes() can be set. If the attribute is not settable or |
* the value is out of range, the function returns VA_STATUS_ERROR_ATTR_NOT_SUPPORTED |
*/ |
VAStatus |
i965_SetDisplayAttributes( |
VADriverContextP ctx, |
VADisplayAttribute *attribs, /* in */ |
int num_attribs /* in */ |
) |
{ |
int i; |
for (i = 0; i < num_attribs; i++) { |
VADisplayAttribute *dst_attrib, * const src_attrib = &attribs[i]; |
dst_attrib = get_display_attribute(ctx, src_attrib->type); |
if (!dst_attrib) |
return VA_STATUS_ERROR_ATTR_NOT_SUPPORTED; |
if (!(dst_attrib->flags & VA_DISPLAY_ATTRIB_SETTABLE)) |
continue; |
if (src_attrib->value < dst_attrib->min_value || |
src_attrib->value > dst_attrib->max_value) |
return VA_STATUS_ERROR_INVALID_PARAMETER; |
dst_attrib->value = src_attrib->value; |
/* XXX: track modified attributes through timestamps */ |
} |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_DbgCopySurfaceToBuffer(VADriverContextP ctx, |
VASurfaceID surface, |
void **buffer, /* out */ |
unsigned int *stride) /* out */ |
{ |
/* TODO */ |
return VA_STATUS_ERROR_UNIMPLEMENTED; |
} |
static VAStatus |
i965_Init(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
printf("%s context %p\n", __FUNCTION__, ctx); |
if (intel_driver_init(ctx) == False) |
return VA_STATUS_ERROR_UNKNOWN; |
printf("set codec info\n"); |
if (IS_HASWELL(i965->intel.device_id)) |
i965->codec_info = &gen75_hw_codec_info; |
else if (IS_G4X(i965->intel.device_id)) |
i965->codec_info = &g4x_hw_codec_info; |
else if (IS_IRONLAKE(i965->intel.device_id)) |
i965->codec_info = &ironlake_hw_codec_info; |
else if (IS_GEN6(i965->intel.device_id)) |
i965->codec_info = &gen6_hw_codec_info; |
else if (IS_GEN7(i965->intel.device_id)) |
i965->codec_info = &gen7_hw_codec_info; |
else |
return VA_STATUS_ERROR_UNKNOWN; |
printf("codec info %p\n", i965->codec_info); |
i965->batch = intel_batchbuffer_new(&i965->intel, I915_EXEC_RENDER, 0); |
if (!i965_display_attributes_init(ctx)) |
return VA_STATUS_ERROR_UNKNOWN; |
if (i965_post_processing_init(ctx) == False) |
return VA_STATUS_ERROR_UNKNOWN; |
if (i965_render_init(ctx) == False) |
return VA_STATUS_ERROR_UNKNOWN; |
#ifdef HAVE_VA_WAYLAND |
if (IS_VA_WAYLAND(ctx) && !i965_output_wayland_init(ctx)) |
return VA_STATUS_ERROR_UNKNOWN; |
#endif |
#ifdef HAVE_VA_X11 |
if (IS_VA_X11(ctx) && !i965_output_dri_init(ctx)) |
return VA_STATUS_ERROR_UNKNOWN; |
#endif |
_i965InitMutex(&i965->render_mutex); |
printf("device_id=%x has_exec2=%d has_bsd=%d has_blt=%d\n", |
i965->intel.device_id, i965->intel.has_exec2, |
i965->intel.has_bsd, i965->intel.has_blt); |
printf("%s done\n", __FUNCTION__); |
return VA_STATUS_SUCCESS; |
} |
static void |
i965_destroy_heap(struct object_heap *heap, |
void (*func)(struct object_heap *heap, struct object_base *object)) |
{ |
struct object_base *object; |
object_heap_iterator iter; |
object = object_heap_first(heap, &iter); |
while (object) { |
if (func) |
func(heap, object); |
object = object_heap_next(heap, &iter); |
} |
object_heap_destroy(heap); |
} |
VAStatus |
i965_DestroyImage(VADriverContextP ctx, VAImageID image); |
VAStatus |
i965_CreateImage(VADriverContextP ctx, |
VAImageFormat *format, |
int width, |
int height, |
VAImage *out_image) /* out */ |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_image *obj_image; |
VAStatus va_status = VA_STATUS_ERROR_OPERATION_FAILED; |
VAImageID image_id; |
unsigned int width2, height2, size2, size; |
out_image->image_id = VA_INVALID_ID; |
out_image->buf = VA_INVALID_ID; |
image_id = NEW_IMAGE_ID(); |
if (image_id == VA_INVALID_ID) |
return VA_STATUS_ERROR_ALLOCATION_FAILED; |
obj_image = IMAGE(image_id); |
if (!obj_image) |
return VA_STATUS_ERROR_ALLOCATION_FAILED; |
obj_image->bo = NULL; |
obj_image->palette = NULL; |
obj_image->derived_surface = VA_INVALID_ID; |
VAImage * const image = &obj_image->image; |
image->image_id = image_id; |
image->buf = VA_INVALID_ID; |
size = width * height; |
width2 = (width + 1) / 2; |
height2 = (height + 1) / 2; |
size2 = width2 * height2; |
image->num_palette_entries = 0; |
image->entry_bytes = 0; |
memset(image->component_order, 0, sizeof(image->component_order)); |
switch (format->fourcc) { |
case VA_FOURCC('I','A','4','4'): |
case VA_FOURCC('A','I','4','4'): |
image->num_planes = 1; |
image->pitches[0] = width; |
image->offsets[0] = 0; |
image->data_size = image->offsets[0] + image->pitches[0] * height; |
image->num_palette_entries = 16; |
image->entry_bytes = 3; |
image->component_order[0] = 'R'; |
image->component_order[1] = 'G'; |
image->component_order[2] = 'B'; |
break; |
case VA_FOURCC('I','A','8','8'): |
case VA_FOURCC('A','I','8','8'): |
image->num_planes = 1; |
image->pitches[0] = width * 2; |
image->offsets[0] = 0; |
image->data_size = image->offsets[0] + image->pitches[0] * height; |
image->num_palette_entries = 256; |
image->entry_bytes = 3; |
image->component_order[0] = 'R'; |
image->component_order[1] = 'G'; |
image->component_order[2] = 'B'; |
break; |
case VA_FOURCC('A','R','G','B'): |
case VA_FOURCC('A','B','G','R'): |
case VA_FOURCC('B','G','R','A'): |
case VA_FOURCC('R','G','B','A'): |
image->num_planes = 1; |
image->pitches[0] = width * 4; |
image->offsets[0] = 0; |
image->data_size = image->offsets[0] + image->pitches[0] * height; |
break; |
case VA_FOURCC('Y','V','1','2'): |
image->num_planes = 3; |
image->pitches[0] = width; |
image->offsets[0] = 0; |
image->pitches[1] = width2; |
image->offsets[1] = size + size2; |
image->pitches[2] = width2; |
image->offsets[2] = size; |
image->data_size = size + 2 * size2; |
break; |
case VA_FOURCC('I','4','2','0'): |
image->num_planes = 3; |
image->pitches[0] = width; |
image->offsets[0] = 0; |
image->pitches[1] = width2; |
image->offsets[1] = size; |
image->pitches[2] = width2; |
image->offsets[2] = size + size2; |
image->data_size = size + 2 * size2; |
break; |
case VA_FOURCC('N','V','1','2'): |
image->num_planes = 2; |
image->pitches[0] = width; |
image->offsets[0] = 0; |
image->pitches[1] = width; |
image->offsets[1] = size; |
image->data_size = size + 2 * size2; |
break; |
default: |
goto error; |
} |
va_status = i965_CreateBuffer(ctx, 0, VAImageBufferType, |
image->data_size, 1, NULL, &image->buf); |
if (va_status != VA_STATUS_SUCCESS) |
goto error; |
obj_image->bo = BUFFER(image->buf)->buffer_store->bo; |
dri_bo_reference(obj_image->bo); |
if (image->num_palette_entries > 0 && image->entry_bytes > 0) { |
obj_image->palette = malloc(image->num_palette_entries * sizeof(*obj_image->palette)); |
if (!obj_image->palette) |
goto error; |
} |
image->image_id = image_id; |
image->format = *format; |
image->width = width; |
image->height = height; |
*out_image = *image; |
return VA_STATUS_SUCCESS; |
error: |
i965_DestroyImage(ctx, image_id); |
return va_status; |
} |
void |
i965_check_alloc_surface_bo(VADriverContextP ctx, |
struct object_surface *obj_surface, |
int tiled, |
unsigned int fourcc, |
unsigned int subsampling) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int region_width, region_height; |
if (obj_surface->bo) { |
assert(obj_surface->fourcc); |
assert(obj_surface->fourcc == fourcc); |
assert(obj_surface->subsampling == subsampling); |
return; |
} |
obj_surface->x_cb_offset = 0; /* X offset is always 0 */ |
obj_surface->x_cr_offset = 0; |
if (tiled) { |
assert(fourcc == VA_FOURCC('N', 'V', '1', '2') || |
fourcc == VA_FOURCC('I', 'M', 'C', '1') || |
fourcc == VA_FOURCC('I', 'M', 'C', '3')); |
obj_surface->width = ALIGN(obj_surface->orig_width, 128); |
obj_surface->height = ALIGN(obj_surface->orig_height, 32); |
obj_surface->cb_cr_pitch = obj_surface->width; |
region_width = obj_surface->width; |
region_height = obj_surface->height; |
if (fourcc == VA_FOURCC('N', 'V', '1', '2')) { |
assert(subsampling == SUBSAMPLE_YUV420); |
obj_surface->y_cb_offset = obj_surface->height; |
obj_surface->y_cr_offset = obj_surface->height; |
obj_surface->cb_cr_width = obj_surface->orig_width / 2; |
obj_surface->cb_cr_height = obj_surface->orig_height / 2; |
region_height = obj_surface->height + ALIGN(obj_surface->cb_cr_height, 32); |
} else if (fourcc == VA_FOURCC('I', 'M', 'C', '1') || |
fourcc == VA_FOURCC('I', 'M', 'C', '3')) { |
switch (subsampling) { |
case SUBSAMPLE_YUV400: |
obj_surface->cb_cr_width = 0; |
obj_surface->cb_cr_height = 0; |
break; |
case SUBSAMPLE_YUV420: |
obj_surface->cb_cr_width = obj_surface->orig_width / 2; |
obj_surface->cb_cr_height = obj_surface->orig_height / 2; |
break; |
case SUBSAMPLE_YUV422H: |
obj_surface->cb_cr_width = obj_surface->orig_width / 2; |
obj_surface->cb_cr_height = obj_surface->orig_height; |
break; |
case SUBSAMPLE_YUV422V: |
obj_surface->cb_cr_width = obj_surface->orig_width; |
obj_surface->cb_cr_height = obj_surface->orig_height / 2; |
break; |
case SUBSAMPLE_YUV444: |
obj_surface->cb_cr_width = obj_surface->orig_width; |
obj_surface->cb_cr_height = obj_surface->orig_height; |
break; |
case SUBSAMPLE_YUV411: |
obj_surface->cb_cr_width = obj_surface->orig_width / 4; |
obj_surface->cb_cr_height = obj_surface->orig_height; |
break; |
default: |
assert(0); |
break; |
} |
region_height = obj_surface->height + ALIGN(obj_surface->cb_cr_height, 32) * 2; |
if (fourcc == VA_FOURCC('I', 'M', 'C', '1')) { |
obj_surface->y_cr_offset = obj_surface->height; |
obj_surface->y_cb_offset = obj_surface->y_cr_offset + ALIGN(obj_surface->cb_cr_height, 32); |
} else { |
obj_surface->y_cb_offset = obj_surface->height; |
obj_surface->y_cr_offset = obj_surface->y_cb_offset + ALIGN(obj_surface->cb_cr_height, 32); |
} |
} |
} else { |
assert(fourcc != VA_FOURCC('I', 'M', 'C', '1') && |
fourcc != VA_FOURCC('I', 'M', 'C', '3')); |
assert(subsampling == SUBSAMPLE_YUV420); |
region_width = obj_surface->width; |
region_height = obj_surface->height; |
switch (fourcc) { |
case VA_FOURCC('N', 'V', '1', '2'): |
obj_surface->y_cb_offset = obj_surface->height; |
obj_surface->y_cr_offset = obj_surface->height; |
obj_surface->cb_cr_width = obj_surface->orig_width / 2; |
obj_surface->cb_cr_height = obj_surface->orig_height / 2; |
obj_surface->cb_cr_pitch = obj_surface->width; |
region_height = obj_surface->height + obj_surface->height / 2; |
break; |
case VA_FOURCC('Y', 'V', '1', '2'): |
case VA_FOURCC('I', '4', '2', '0'): |
if (fourcc == VA_FOURCC('Y', 'V', '1', '2')) { |
obj_surface->y_cr_offset = obj_surface->height; |
obj_surface->y_cb_offset = obj_surface->height + obj_surface->height / 4; |
} else { |
obj_surface->y_cb_offset = obj_surface->height; |
obj_surface->y_cr_offset = obj_surface->height + obj_surface->height / 4; |
} |
obj_surface->cb_cr_width = obj_surface->orig_width / 2; |
obj_surface->cb_cr_height = obj_surface->orig_height / 2; |
obj_surface->cb_cr_pitch = obj_surface->width / 2; |
region_height = obj_surface->height + obj_surface->height / 2; |
break; |
default: |
assert(0); |
break; |
} |
} |
obj_surface->size = ALIGN(region_width * region_height, 0x1000); |
#if 0 |
if (tiled) { |
uint32_t tiling_mode = I915_TILING_Y; /* always uses Y-tiled format */ |
unsigned long pitch; |
obj_surface->bo = drm_intel_bo_alloc_tiled(i965->intel.bufmgr, |
"vaapi surface", |
region_width, |
region_height, |
1, |
&tiling_mode, |
&pitch, |
0); |
assert(tiling_mode == I915_TILING_Y); |
assert(pitch == obj_surface->width); |
} else { |
#endif |
obj_surface->bo = dri_bo_alloc(i965->intel.bufmgr, |
"vaapi surface", |
obj_surface->size, |
0x1000); |
// } |
obj_surface->fourcc = fourcc; |
obj_surface->subsampling = subsampling; |
assert(obj_surface->bo); |
} |
VAStatus i965_DeriveImage(VADriverContextP ctx, |
VASurfaceID surface, |
VAImage *out_image) /* out */ |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct object_image *obj_image; |
struct object_surface *obj_surface; |
VAImageID image_id; |
unsigned int w_pitch, h_pitch; |
VAStatus va_status; |
out_image->image_id = VA_INVALID_ID; |
obj_surface = SURFACE(surface); |
if (!obj_surface) |
return VA_STATUS_ERROR_INVALID_SURFACE; |
w_pitch = obj_surface->width; |
h_pitch = obj_surface->height; |
image_id = NEW_IMAGE_ID(); |
if (image_id == VA_INVALID_ID) |
return VA_STATUS_ERROR_ALLOCATION_FAILED; |
obj_image = IMAGE(image_id); |
if (!obj_image) |
return VA_STATUS_ERROR_ALLOCATION_FAILED; |
obj_image->bo = NULL; |
obj_image->palette = NULL; |
obj_image->derived_surface = VA_INVALID_ID; |
VAImage * const image = &obj_image->image; |
memset(image, 0, sizeof(*image)); |
image->image_id = image_id; |
image->buf = VA_INVALID_ID; |
image->num_palette_entries = 0; |
image->entry_bytes = 0; |
image->width = obj_surface->orig_width; |
image->height = obj_surface->orig_height; |
image->data_size = obj_surface->size; |
if (!render_state->inited) { |
image->format.fourcc = VA_FOURCC('Y','V','1','2'); |
image->format.byte_order = VA_LSB_FIRST; |
image->format.bits_per_pixel = 12; |
image->num_planes = 3; |
image->pitches[0] = w_pitch; |
image->offsets[0] = 0; |
image->pitches[1] = w_pitch / 2; |
image->offsets[1] = w_pitch * h_pitch; |
image->pitches[2] = w_pitch / 2; |
image->offsets[2] = w_pitch * h_pitch + (w_pitch / 2) * (h_pitch / 2); |
} else { |
if (render_state->interleaved_uv) { |
image->format.fourcc = VA_FOURCC('N','V','1','2'); |
image->format.byte_order = VA_LSB_FIRST; |
image->format.bits_per_pixel = 12; |
image->num_planes = 2; |
image->pitches[0] = w_pitch; |
image->offsets[0] = 0; |
image->pitches[1] = w_pitch; |
image->offsets[1] = w_pitch * h_pitch; |
} else { |
image->format.fourcc = VA_FOURCC('I','4','2','0'); |
image->format.byte_order = VA_LSB_FIRST; |
image->format.bits_per_pixel = 12; |
image->num_planes = 3; |
image->pitches[0] = w_pitch; |
image->offsets[0] = 0; |
image->pitches[1] = w_pitch / 2; |
image->offsets[1] = w_pitch * h_pitch; |
image->pitches[2] = w_pitch / 2; |
image->offsets[2] = w_pitch * h_pitch + (w_pitch / 2) * (h_pitch / 2); |
} |
} |
i965_check_alloc_surface_bo(ctx, obj_surface, HAS_TILED_SURFACE(i965), image->format.fourcc, SUBSAMPLE_YUV420); |
va_status = i965_create_buffer_internal(ctx, 0, VAImageBufferType, |
obj_surface->size, 1, NULL, obj_surface->bo, &image->buf); |
if (va_status != VA_STATUS_SUCCESS) |
goto error; |
obj_image->bo = BUFFER(image->buf)->buffer_store->bo; |
dri_bo_reference(obj_image->bo); |
if (image->num_palette_entries > 0 && image->entry_bytes > 0) { |
obj_image->palette = malloc(image->num_palette_entries * sizeof(obj_image->palette)); |
if (!obj_image->palette) { |
va_status = VA_STATUS_ERROR_ALLOCATION_FAILED; |
goto error; |
} |
} |
*out_image = *image; |
obj_surface->flags |= SURFACE_DERIVED; |
obj_image->derived_surface = surface; |
return VA_STATUS_SUCCESS; |
error: |
i965_DestroyImage(ctx, image_id); |
return va_status; |
} |
static void |
i965_destroy_image(struct object_heap *heap, struct object_base *obj) |
{ |
object_heap_free(heap, obj); |
} |
VAStatus |
i965_DestroyImage(VADriverContextP ctx, VAImageID image) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_image *obj_image = IMAGE(image); |
struct object_surface *obj_surface; |
if (!obj_image) |
return VA_STATUS_SUCCESS; |
dri_bo_unreference(obj_image->bo); |
obj_image->bo = NULL; |
if (obj_image->image.buf != VA_INVALID_ID) { |
i965_DestroyBuffer(ctx, obj_image->image.buf); |
obj_image->image.buf = VA_INVALID_ID; |
} |
if (obj_image->palette) { |
free(obj_image->palette); |
obj_image->palette = NULL; |
} |
obj_surface = SURFACE(obj_image->derived_surface); |
if (obj_surface) { |
obj_surface->flags &= ~SURFACE_DERIVED; |
} |
i965_destroy_image(&i965->image_heap, (struct object_base *)obj_image); |
return VA_STATUS_SUCCESS; |
} |
/* |
* pointer to an array holding the palette data. The size of the array is |
* num_palette_entries * entry_bytes in size. The order of the components |
* in the palette is described by the component_order in VASubpicture struct |
*/ |
VAStatus |
i965_SetImagePalette(VADriverContextP ctx, |
VAImageID image, |
unsigned char *palette) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
unsigned int i; |
struct object_image *obj_image = IMAGE(image); |
if (!obj_image) |
return VA_STATUS_ERROR_INVALID_IMAGE; |
if (!obj_image->palette) |
return VA_STATUS_ERROR_ALLOCATION_FAILED; /* XXX: unpaletted/error */ |
for (i = 0; i < obj_image->image.num_palette_entries; i++) |
obj_image->palette[i] = (((unsigned int)palette[3*i + 0] << 16) | |
((unsigned int)palette[3*i + 1] << 8) | |
(unsigned int)palette[3*i + 2]); |
return VA_STATUS_SUCCESS; |
} |
static inline void |
memcpy_pic(uint8_t *dst, unsigned int dst_stride, |
const uint8_t *src, unsigned int src_stride, |
unsigned int len, unsigned int height) |
{ |
unsigned int i; |
for (i = 0; i < height; i++) { |
memcpy(dst, src, len); |
dst += dst_stride; |
src += src_stride; |
} |
} |
static void |
get_image_i420(struct object_image *obj_image, uint8_t *image_data, |
struct object_surface *obj_surface, |
const VARectangle *rect) |
{ |
uint8_t *dst[3], *src[3]; |
const int Y = 0; |
const int U = obj_image->image.format.fourcc == obj_surface->fourcc ? 1 : 2; |
const int V = obj_image->image.format.fourcc == obj_surface->fourcc ? 2 : 1; |
unsigned int tiling, swizzle; |
if (!obj_surface->bo) |
return; |
assert(obj_surface->fourcc); |
dri_bo_get_tiling(obj_surface->bo, &tiling, &swizzle); |
if (tiling != I915_TILING_NONE) |
drm_intel_gem_bo_map_gtt(obj_surface->bo); |
else |
dri_bo_map(obj_surface->bo, 0); |
if (!obj_surface->bo->virtual) |
return; |
/* Dest VA image has either I420 or YV12 format. |
Source VA surface alway has I420 format */ |
dst[Y] = image_data + obj_image->image.offsets[Y]; |
src[0] = (uint8_t *)obj_surface->bo->virtual; |
dst[U] = image_data + obj_image->image.offsets[U]; |
src[1] = src[0] + obj_surface->width * obj_surface->height; |
dst[V] = image_data + obj_image->image.offsets[V]; |
src[2] = src[1] + (obj_surface->width / 2) * (obj_surface->height / 2); |
/* Y plane */ |
dst[Y] += rect->y * obj_image->image.pitches[Y] + rect->x; |
src[0] += rect->y * obj_surface->width + rect->x; |
memcpy_pic(dst[Y], obj_image->image.pitches[Y], |
src[0], obj_surface->width, |
rect->width, rect->height); |
/* U plane */ |
dst[U] += (rect->y / 2) * obj_image->image.pitches[U] + rect->x / 2; |
src[1] += (rect->y / 2) * obj_surface->width / 2 + rect->x / 2; |
memcpy_pic(dst[U], obj_image->image.pitches[U], |
src[1], obj_surface->width / 2, |
rect->width / 2, rect->height / 2); |
/* V plane */ |
dst[V] += (rect->y / 2) * obj_image->image.pitches[V] + rect->x / 2; |
src[2] += (rect->y / 2) * obj_surface->width / 2 + rect->x / 2; |
memcpy_pic(dst[V], obj_image->image.pitches[V], |
src[2], obj_surface->width / 2, |
rect->width / 2, rect->height / 2); |
if (tiling != I915_TILING_NONE) |
drm_intel_gem_bo_unmap_gtt(obj_surface->bo); |
else |
dri_bo_unmap(obj_surface->bo); |
} |
static void |
get_image_nv12(struct object_image *obj_image, uint8_t *image_data, |
struct object_surface *obj_surface, |
const VARectangle *rect) |
{ |
uint8_t *dst[2], *src[2]; |
unsigned int tiling, swizzle; |
if (!obj_surface->bo) |
return; |
assert(obj_surface->fourcc); |
dri_bo_get_tiling(obj_surface->bo, &tiling, &swizzle); |
if (tiling != I915_TILING_NONE) |
drm_intel_gem_bo_map_gtt(obj_surface->bo); |
else |
dri_bo_map(obj_surface->bo, 0); |
if (!obj_surface->bo->virtual) |
return; |
/* Both dest VA image and source surface have NV12 format */ |
dst[0] = image_data + obj_image->image.offsets[0]; |
src[0] = (uint8_t *)obj_surface->bo->virtual; |
dst[1] = image_data + obj_image->image.offsets[1]; |
src[1] = src[0] + obj_surface->width * obj_surface->height; |
/* Y plane */ |
dst[0] += rect->y * obj_image->image.pitches[0] + rect->x; |
src[0] += rect->y * obj_surface->width + rect->x; |
memcpy_pic(dst[0], obj_image->image.pitches[0], |
src[0], obj_surface->width, |
rect->width, rect->height); |
/* UV plane */ |
dst[1] += (rect->y / 2) * obj_image->image.pitches[1] + (rect->x & -2); |
src[1] += (rect->y / 2) * obj_surface->width + (rect->x & -2); |
memcpy_pic(dst[1], obj_image->image.pitches[1], |
src[1], obj_surface->width, |
rect->width, rect->height / 2); |
if (tiling != I915_TILING_NONE) |
drm_intel_gem_bo_unmap_gtt(obj_surface->bo); |
else |
dri_bo_unmap(obj_surface->bo); |
} |
VAStatus |
i965_GetImage(VADriverContextP ctx, |
VASurfaceID surface, |
int x, /* coordinates of the upper left source pixel */ |
int y, |
unsigned int width, /* width and height of the region */ |
unsigned int height, |
VAImageID image) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct object_surface *obj_surface = SURFACE(surface); |
if (!obj_surface) |
return VA_STATUS_ERROR_INVALID_SURFACE; |
struct object_image *obj_image = IMAGE(image); |
if (!obj_image) |
return VA_STATUS_ERROR_INVALID_IMAGE; |
if (x < 0 || y < 0) |
return VA_STATUS_ERROR_INVALID_PARAMETER; |
if (x + width > obj_surface->orig_width || |
y + height > obj_surface->orig_height) |
return VA_STATUS_ERROR_INVALID_PARAMETER; |
if (x + width > obj_image->image.width || |
y + height > obj_image->image.height) |
return VA_STATUS_ERROR_INVALID_PARAMETER; |
VAStatus va_status; |
void *image_data = NULL; |
va_status = i965_MapBuffer(ctx, obj_image->image.buf, &image_data); |
if (va_status != VA_STATUS_SUCCESS) |
return va_status; |
VARectangle rect; |
rect.x = x; |
rect.y = y; |
rect.width = width; |
rect.height = height; |
switch (obj_image->image.format.fourcc) { |
case VA_FOURCC('Y','V','1','2'): |
case VA_FOURCC('I','4','2','0'): |
/* I420 is native format for MPEG-2 decoded surfaces */ |
if (render_state->interleaved_uv) |
goto operation_failed; |
get_image_i420(obj_image, image_data, obj_surface, &rect); |
break; |
case VA_FOURCC('N','V','1','2'): |
/* NV12 is native format for H.264 decoded surfaces */ |
if (!render_state->interleaved_uv) |
goto operation_failed; |
get_image_nv12(obj_image, image_data, obj_surface, &rect); |
break; |
default: |
operation_failed: |
va_status = VA_STATUS_ERROR_OPERATION_FAILED; |
break; |
} |
i965_UnmapBuffer(ctx, obj_image->image.buf); |
return va_status; |
} |
VAStatus |
i965_PutSurface(VADriverContextP ctx, |
VASurfaceID surface, |
void *draw, /* X Drawable */ |
short srcx, |
short srcy, |
unsigned short srcw, |
unsigned short srch, |
short destx, |
short desty, |
unsigned short destw, |
unsigned short desth, |
VARectangle *cliprects, /* client supplied clip list */ |
unsigned int number_cliprects, /* number of clip rects in the clip list */ |
unsigned int flags) /* de-interlacing flags */ |
{ |
#ifdef HAVE_VA_X11 |
if (IS_VA_X11(ctx)) { |
VARectangle src_rect, dst_rect; |
src_rect.x = srcx; |
src_rect.y = srcy; |
src_rect.width = srcw; |
src_rect.height = srch; |
dst_rect.x = destx; |
dst_rect.y = desty; |
dst_rect.width = destw; |
dst_rect.height = desth; |
return i965_put_surface_dri(ctx, surface, draw, &src_rect, &dst_rect, |
cliprects, number_cliprects, flags); |
} |
#endif |
return VA_STATUS_ERROR_UNIMPLEMENTED; |
} |
VAStatus |
i965_Terminate(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
if (i965->batch) |
intel_batchbuffer_free(i965->batch); |
_i965DestroyMutex(&i965->render_mutex); |
#ifdef HAVE_VA_X11 |
if (IS_VA_X11(ctx)) |
i965_output_dri_terminate(ctx); |
#endif |
#ifdef HAVE_VA_WAYLAND |
if (IS_VA_WAYLAND(ctx)) |
i965_output_wayland_terminate(ctx); |
#endif |
if (i965_render_terminate(ctx) == False) |
return VA_STATUS_ERROR_UNKNOWN; |
if (i965_post_processing_terminate(ctx) == False) |
return VA_STATUS_ERROR_UNKNOWN; |
i965_display_attributes_terminate(ctx); |
i965_destroy_heap(&i965->buffer_heap, i965_destroy_buffer); |
i965_destroy_heap(&i965->image_heap, i965_destroy_image); |
i965_destroy_heap(&i965->subpic_heap, i965_destroy_subpic); |
i965_destroy_heap(&i965->surface_heap, i965_destroy_surface); |
i965_destroy_heap(&i965->context_heap, i965_destroy_context); |
i965_destroy_heap(&i965->config_heap, i965_destroy_config); |
if (intel_driver_terminate(ctx) == False) |
return VA_STATUS_ERROR_UNKNOWN; |
free(ctx->pDriverData); |
ctx->pDriverData = NULL; |
return VA_STATUS_SUCCESS; |
} |
static VAStatus |
i965_BufferInfo( |
VADriverContextP ctx, /* in */ |
VABufferID buf_id, /* in */ |
VABufferType *type, /* out */ |
unsigned int *size, /* out */ |
unsigned int *num_elements /* out */ |
) |
{ |
struct i965_driver_data *i965 = NULL; |
struct object_buffer *obj_buffer = NULL; |
i965 = i965_driver_data(ctx); |
obj_buffer = BUFFER(buf_id); |
*type = obj_buffer->type; |
*size = obj_buffer->size_element; |
*num_elements = obj_buffer->num_elements; |
return VA_STATUS_SUCCESS; |
} |
static VAStatus |
i965_LockSurface( |
VADriverContextP ctx, /* in */ |
VASurfaceID surface, /* in */ |
unsigned int *fourcc, /* out */ |
unsigned int *luma_stride, /* out */ |
unsigned int *chroma_u_stride, /* out */ |
unsigned int *chroma_v_stride, /* out */ |
unsigned int *luma_offset, /* out */ |
unsigned int *chroma_u_offset, /* out */ |
unsigned int *chroma_v_offset, /* out */ |
unsigned int *buffer_name, /* out */ |
void **buffer /* out */ |
) |
{ |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = NULL; |
VAImage tmpImage; |
assert(fourcc); |
assert(luma_stride); |
assert(chroma_u_stride); |
assert(chroma_v_stride); |
assert(luma_offset); |
assert(chroma_u_offset); |
assert(chroma_v_offset); |
assert(buffer_name); |
assert(buffer); |
tmpImage.image_id = VA_INVALID_ID; |
obj_surface = SURFACE(surface); |
if (obj_surface == NULL) { |
// Surface is absent. |
vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER; |
goto error; |
} |
// Lock functionality is absent now. |
if (obj_surface->locked_image_id != VA_INVALID_ID) { |
// Surface is locked already. |
vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER; |
goto error; |
} |
vaStatus = i965_DeriveImage( |
ctx, |
surface, |
&tmpImage); |
if (vaStatus != VA_STATUS_SUCCESS) { |
goto error; |
} |
obj_surface->locked_image_id = tmpImage.image_id; |
vaStatus = i965_MapBuffer( |
ctx, |
tmpImage.buf, |
buffer); |
if (vaStatus != VA_STATUS_SUCCESS) { |
goto error; |
} |
*fourcc = tmpImage.format.fourcc; |
*luma_offset = tmpImage.offsets[0]; |
*luma_stride = tmpImage.pitches[0]; |
*chroma_u_offset = tmpImage.offsets[1]; |
*chroma_u_stride = tmpImage.pitches[1]; |
*chroma_v_offset = tmpImage.offsets[2]; |
*chroma_v_stride = tmpImage.pitches[2]; |
*buffer_name = tmpImage.buf; |
error: |
if (vaStatus != VA_STATUS_SUCCESS) { |
buffer = NULL; |
} |
return vaStatus; |
} |
static VAStatus |
i965_UnlockSurface( |
VADriverContextP ctx, /* in */ |
VASurfaceID surface /* in */ |
) |
{ |
VAStatus vaStatus = VA_STATUS_SUCCESS; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_image *locked_img = NULL; |
struct object_surface *obj_surface = NULL; |
obj_surface = SURFACE(surface); |
if (obj_surface == NULL) { |
vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER; // Surface is absent |
return vaStatus; |
} |
if (obj_surface->locked_image_id == VA_INVALID_ID) { |
vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER; // Surface is not locked |
return vaStatus; |
} |
locked_img = IMAGE(obj_surface->locked_image_id); |
if (locked_img == NULL || (locked_img->image.image_id == VA_INVALID_ID)) { |
// Work image was deallocated before i965_UnlockSurface() |
vaStatus = VA_STATUS_ERROR_INVALID_PARAMETER; |
goto error; |
} |
vaStatus = i965_UnmapBuffer( |
ctx, |
locked_img->image.buf); |
if (vaStatus != VA_STATUS_SUCCESS) { |
goto error; |
} |
vaStatus = i965_DestroyImage( |
ctx, |
locked_img->image.image_id); |
if (vaStatus != VA_STATUS_SUCCESS) { |
goto error; |
} |
locked_img->image.image_id = VA_INVALID_ID; |
error: |
obj_surface->locked_image_id = VA_INVALID_ID; |
return vaStatus; |
} |
VAStatus DLL_EXPORT |
VA_DRIVER_INIT_FUNC(VADriverContextP ctx); |
VAStatus |
VA_DRIVER_INIT_FUNC( VADriverContextP ctx ) |
{ |
struct VADriverVTable * const vtable = ctx->vtable; |
struct i965_driver_data *i965; |
int result; |
printf("%s context %p\n", __FUNCTION__, ctx); |
ctx->version_major = VA_MAJOR_VERSION; |
ctx->version_minor = VA_MINOR_VERSION; |
ctx->max_profiles = I965_MAX_PROFILES; |
ctx->max_entrypoints = I965_MAX_ENTRYPOINTS; |
ctx->max_attributes = I965_MAX_CONFIG_ATTRIBUTES; |
ctx->max_image_formats = I965_MAX_IMAGE_FORMATS; |
ctx->max_subpic_formats = I965_MAX_SUBPIC_FORMATS; |
ctx->max_display_attributes = 1 + ARRAY_ELEMS(i965_display_attributes); |
vtable->vaTerminate = i965_Terminate; |
vtable->vaQueryConfigEntrypoints = i965_QueryConfigEntrypoints; |
vtable->vaQueryConfigProfiles = i965_QueryConfigProfiles; |
vtable->vaQueryConfigEntrypoints = i965_QueryConfigEntrypoints; |
vtable->vaQueryConfigAttributes = i965_QueryConfigAttributes; |
vtable->vaCreateConfig = i965_CreateConfig; |
vtable->vaDestroyConfig = i965_DestroyConfig; |
vtable->vaGetConfigAttributes = i965_GetConfigAttributes; |
vtable->vaCreateSurfaces = i965_CreateSurfaces; |
vtable->vaDestroySurfaces = i965_DestroySurfaces; |
vtable->vaCreateContext = i965_CreateContext; |
vtable->vaDestroyContext = i965_DestroyContext; |
vtable->vaCreateBuffer = i965_CreateBuffer; |
vtable->vaBufferSetNumElements = i965_BufferSetNumElements; |
vtable->vaMapBuffer = i965_MapBuffer; |
vtable->vaUnmapBuffer = i965_UnmapBuffer; |
vtable->vaDestroyBuffer = i965_DestroyBuffer; |
vtable->vaBeginPicture = i965_BeginPicture; |
vtable->vaRenderPicture = i965_RenderPicture; |
vtable->vaEndPicture = i965_EndPicture; |
vtable->vaSyncSurface = i965_SyncSurface; |
vtable->vaQuerySurfaceStatus = i965_QuerySurfaceStatus; |
vtable->vaPutSurface = i965_PutSurface; |
vtable->vaQueryImageFormats = i965_QueryImageFormats; |
vtable->vaCreateImage = i965_CreateImage; |
vtable->vaDeriveImage = i965_DeriveImage; |
vtable->vaDestroyImage = i965_DestroyImage; |
vtable->vaSetImagePalette = i965_SetImagePalette; |
vtable->vaGetImage = i965_GetImage; |
vtable->vaPutImage = i965_PutImage; |
vtable->vaQuerySubpictureFormats = i965_QuerySubpictureFormats; |
vtable->vaCreateSubpicture = i965_CreateSubpicture; |
vtable->vaDestroySubpicture = i965_DestroySubpicture; |
vtable->vaSetSubpictureImage = i965_SetSubpictureImage; |
vtable->vaSetSubpictureChromakey = i965_SetSubpictureChromakey; |
vtable->vaSetSubpictureGlobalAlpha = i965_SetSubpictureGlobalAlpha; |
vtable->vaAssociateSubpicture = i965_AssociateSubpicture; |
vtable->vaDeassociateSubpicture = i965_DeassociateSubpicture; |
vtable->vaQueryDisplayAttributes = i965_QueryDisplayAttributes; |
vtable->vaGetDisplayAttributes = i965_GetDisplayAttributes; |
vtable->vaSetDisplayAttributes = i965_SetDisplayAttributes; |
vtable->vaBufferInfo = i965_BufferInfo; |
vtable->vaLockSurface = i965_LockSurface; |
vtable->vaUnlockSurface = i965_UnlockSurface; |
// vtable->vaDbgCopySurfaceToBuffer = i965_DbgCopySurfaceToBuffer; |
i965 = (struct i965_driver_data *)calloc(1, sizeof(*i965)); |
assert(i965); |
ctx->pDriverData = (void *)i965; |
result = object_heap_init(&i965->config_heap, |
sizeof(struct object_config), |
CONFIG_ID_OFFSET); |
assert(result == 0); |
result = object_heap_init(&i965->context_heap, |
sizeof(struct object_context), |
CONTEXT_ID_OFFSET); |
assert(result == 0); |
result = object_heap_init(&i965->surface_heap, |
sizeof(struct object_surface), |
SURFACE_ID_OFFSET); |
assert(result == 0); |
result = object_heap_init(&i965->buffer_heap, |
sizeof(struct object_buffer), |
BUFFER_ID_OFFSET); |
assert(result == 0); |
result = object_heap_init(&i965->image_heap, |
sizeof(struct object_image), |
IMAGE_ID_OFFSET); |
assert(result == 0); |
result = object_heap_init(&i965->subpic_heap, |
sizeof(struct object_subpic), |
SUBPIC_ID_OFFSET); |
assert(result == 0); |
sprintf(i965->va_vendor, "%s %s driver - %d.%d.%d", |
INTEL_STR_DRIVER_VENDOR, |
INTEL_STR_DRIVER_NAME, |
INTEL_DRIVER_MAJOR_VERSION, |
INTEL_DRIVER_MINOR_VERSION, |
INTEL_DRIVER_MICRO_VERSION); |
if (INTEL_DRIVER_PRE_VERSION > 0) { |
const int len = strlen(i965->va_vendor); |
sprintf(&i965->va_vendor[len], ".pre%d", INTEL_DRIVER_PRE_VERSION); |
} |
ctx->str_vendor = i965->va_vendor; |
return i965_Init(ctx); |
} |
/drivers/video/i965/i965_drv_video.h |
---|
0,0 → 1,304 |
/* |
* Copyright © 2009 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* Zou Nan hai <nanhai.zou@intel.com> |
* |
*/ |
#ifndef _I965_DRV_VIDEO_H_ |
#define _I965_DRV_VIDEO_H_ |
#include <va/va.h> |
#include <va/va_backend.h> |
#include "i965_mutext.h" |
#include "object_heap.h" |
#include "intel_driver.h" |
#define I965_MAX_PROFILES 11 |
#define I965_MAX_ENTRYPOINTS 5 |
#define I965_MAX_CONFIG_ATTRIBUTES 10 |
#define I965_MAX_IMAGE_FORMATS 3 |
#define I965_MAX_SUBPIC_FORMATS 6 |
#define I965_MAX_SUBPIC_SUM 4 |
#define INTEL_STR_DRIVER_VENDOR "Intel" |
#define INTEL_STR_DRIVER_NAME "i965" |
#define I965_SURFACE_TYPE_IMAGE 0 |
#define I965_SURFACE_TYPE_SURFACE 1 |
#define I965_SURFACE_FLAG_FRAME 0x00000000 |
#define I965_SURFACE_FLAG_TOP_FIELD_FIRST 0x00000001 |
#define I965_SURFACE_FLAG_BOTTOM_FIELD_FIRST 0x00000002 |
struct i965_surface |
{ |
VAGenericID id; |
int type; |
int flags; |
}; |
struct i965_kernel |
{ |
char *name; |
int interface; |
const uint32_t (*bin)[4]; |
int size; |
dri_bo *bo; |
}; |
struct buffer_store |
{ |
unsigned char *buffer; |
dri_bo *bo; |
int ref_count; |
int num_elements; |
}; |
struct object_config |
{ |
struct object_base base; |
VAProfile profile; |
VAEntrypoint entrypoint; |
VAConfigAttrib attrib_list[I965_MAX_CONFIG_ATTRIBUTES]; |
int num_attribs; |
}; |
#define NUM_SLICES 10 |
struct decode_state |
{ |
struct buffer_store *pic_param; |
struct buffer_store **slice_params; |
struct buffer_store *iq_matrix; |
struct buffer_store *bit_plane; |
struct buffer_store *huffman_table; |
struct buffer_store **slice_datas; |
VASurfaceID current_render_target; |
int max_slice_params; |
int max_slice_datas; |
int num_slice_params; |
int num_slice_datas; |
}; |
struct encode_state |
{ |
struct buffer_store *seq_param; |
struct buffer_store *pic_param; |
struct buffer_store *pic_control; |
struct buffer_store *iq_matrix; |
struct buffer_store *q_matrix; |
struct buffer_store **slice_params; |
VASurfaceID current_render_target; |
int max_slice_params; |
int num_slice_params; |
}; |
#define CODEC_DEC 0 |
#define CODEC_ENC 1 |
union codec_state |
{ |
struct decode_state decode; |
struct encode_state encode; |
}; |
struct hw_context |
{ |
void (*run)(VADriverContextP ctx, |
VAProfile profile, |
union codec_state *codec_state, |
struct hw_context *hw_context); |
void (*destroy)(void *); |
struct intel_batchbuffer *batch; |
}; |
struct object_context |
{ |
struct object_base base; |
VAContextID context_id; |
VAConfigID config_id; |
VASurfaceID *render_targets; //input->encode, output->decode |
int num_render_targets; |
int picture_width; |
int picture_height; |
int flags; |
int codec_type; |
union codec_state codec_state; |
struct hw_context *hw_context; |
}; |
#define SURFACE_REFERENCED (1 << 0) |
#define SURFACE_DISPLAYED (1 << 1) |
#define SURFACE_DERIVED (1 << 2) |
#define SURFACE_REF_DIS_MASK ((SURFACE_REFERENCED) | \ |
(SURFACE_DISPLAYED)) |
#define SURFACE_ALL_MASK ((SURFACE_REFERENCED) | \ |
(SURFACE_DISPLAYED) | \ |
(SURFACE_DERIVED)) |
struct object_surface |
{ |
struct object_base base; |
VASurfaceStatus status; |
VASubpictureID subpic[I965_MAX_SUBPIC_SUM]; |
unsigned int subpic_render_idx; |
int width; |
int height; |
int size; |
int orig_width; |
int orig_height; |
int flags; |
unsigned int fourcc; |
dri_bo *bo; |
VAImageID locked_image_id; |
void (*free_private_data)(void **data); |
void *private_data; |
unsigned int subsampling; |
int x_cb_offset; |
int y_cb_offset; |
int x_cr_offset; |
int y_cr_offset; |
int cb_cr_width; |
int cb_cr_height; |
int cb_cr_pitch; |
}; |
struct object_buffer |
{ |
struct object_base base; |
struct buffer_store *buffer_store; |
int max_num_elements; |
int num_elements; |
int size_element; |
VABufferType type; |
}; |
struct object_image |
{ |
struct object_base base; |
VAImage image; |
dri_bo *bo; |
unsigned int *palette; |
VASurfaceID derived_surface; |
}; |
struct object_subpic |
{ |
struct object_base base; |
VAImageID image; |
VARectangle src_rect; |
VARectangle dst_rect; |
unsigned int format; |
int width; |
int height; |
int pitch; |
float global_alpha; |
dri_bo *bo; |
unsigned int flags; |
}; |
struct hw_codec_info |
{ |
struct hw_context *(*dec_hw_context_init)(VADriverContextP, VAProfile); |
struct hw_context *(*enc_hw_context_init)(VADriverContextP, VAProfile); |
int max_width; |
int max_height; |
}; |
#include "i965_render.h" |
struct i965_driver_data |
{ |
struct intel_driver_data intel; |
struct object_heap config_heap; |
struct object_heap context_heap; |
struct object_heap surface_heap; |
struct object_heap buffer_heap; |
struct object_heap image_heap; |
struct object_heap subpic_heap; |
struct hw_codec_info *codec_info; |
_I965Mutex render_mutex; |
struct intel_batchbuffer *batch; |
struct i965_render_state render_state; |
void *pp_context; |
char va_vendor[256]; |
VADisplayAttribute *display_attributes; |
unsigned int num_display_attributes; |
VADisplayAttribute *rotation_attrib; |
/* VA/DRI (X11) specific data */ |
struct va_dri_output *dri_output; |
/* VA/Wayland specific data */ |
struct va_wl_output *wl_output; |
}; |
#define NEW_CONFIG_ID() object_heap_allocate(&i965->config_heap); |
#define NEW_CONTEXT_ID() object_heap_allocate(&i965->context_heap); |
#define NEW_SURFACE_ID() object_heap_allocate(&i965->surface_heap); |
#define NEW_BUFFER_ID() object_heap_allocate(&i965->buffer_heap); |
#define NEW_IMAGE_ID() object_heap_allocate(&i965->image_heap); |
#define NEW_SUBPIC_ID() object_heap_allocate(&i965->subpic_heap); |
#define CONFIG(id) ((struct object_config *)object_heap_lookup(&i965->config_heap, id)) |
#define CONTEXT(id) ((struct object_context *)object_heap_lookup(&i965->context_heap, id)) |
#define SURFACE(id) ((struct object_surface *)object_heap_lookup(&i965->surface_heap, id)) |
#define BUFFER(id) ((struct object_buffer *)object_heap_lookup(&i965->buffer_heap, id)) |
#define IMAGE(id) ((struct object_image *)object_heap_lookup(&i965->image_heap, id)) |
#define SUBPIC(id) ((struct object_subpic *)object_heap_lookup(&i965->subpic_heap, id)) |
#define FOURCC_IA44 0x34344149 |
#define FOURCC_AI44 0x34344941 |
#define STRIDE(w) (((w) + 0xf) & ~0xf) |
#define SIZE_YUV420(w, h) (h * (STRIDE(w) + STRIDE(w >> 1))) |
static INLINE struct i965_driver_data * |
i965_driver_data(VADriverContextP ctx) |
{ |
return (struct i965_driver_data *)(ctx->pDriverData); |
} |
void |
i965_check_alloc_surface_bo(VADriverContextP ctx, |
struct object_surface *obj_surface, |
int tiled, |
unsigned int fourcc, |
unsigned int subsampling); |
extern VAStatus i965_MapBuffer(VADriverContextP ctx, |
VABufferID buf_id, /* in */ |
void **pbuf); /* out */ |
extern VAStatus i965_UnmapBuffer(VADriverContextP ctx, VABufferID buf_id); |
#endif /* _I965_DRV_VIDEO_H_ */ |
/drivers/video/i965/i965_encoder.c |
---|
0,0 → 1,126 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Zhou Chang <chang.zhou@intel.com> |
* |
*/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_encoder.h" |
#include "gen6_vme.h" |
#include "gen6_mfc.h" |
static void |
gen6_encoder_end_picture(VADriverContextP ctx, |
VAProfile profile, |
union codec_state *codec_state, |
struct hw_context *hw_context) |
{ |
struct gen6_encoder_context *gen6_encoder_context = (struct gen6_encoder_context *)hw_context; |
struct encode_state *encode_state = &codec_state->encode; |
VAStatus vaStatus; |
vaStatus = gen6_vme_pipeline(ctx, profile, encode_state, gen6_encoder_context); |
if (vaStatus == VA_STATUS_SUCCESS) |
gen6_mfc_pipeline(ctx, profile, encode_state, gen6_encoder_context); |
} |
static void |
gen6_encoder_context_destroy(void *hw_context) |
{ |
struct gen6_encoder_context *gen6_encoder_context = (struct gen6_encoder_context *)hw_context; |
gen6_mfc_context_destroy(&gen6_encoder_context->mfc_context); |
gen6_vme_context_destroy(&gen6_encoder_context->vme_context); |
intel_batchbuffer_free(gen6_encoder_context->base.batch); |
free(gen6_encoder_context); |
} |
struct hw_context * |
gen6_enc_hw_context_init(VADriverContextP ctx, VAProfile profile) |
{ |
struct intel_driver_data *intel = intel_driver_data(ctx); |
struct gen6_encoder_context *gen6_encoder_context = calloc(1, sizeof(struct gen6_encoder_context)); |
gen6_encoder_context->base.destroy = gen6_encoder_context_destroy; |
gen6_encoder_context->base.run = gen6_encoder_end_picture; |
gen6_encoder_context->base.batch = intel_batchbuffer_new(intel, I915_EXEC_RENDER, 0); |
gen6_vme_context_init(ctx, &gen6_encoder_context->vme_context); |
gen6_mfc_context_init(ctx, &gen6_encoder_context->mfc_context); |
return (struct hw_context *)gen6_encoder_context; |
} |
static void |
gen75_encoder_end_picture(VADriverContextP ctx, |
VAProfile profile, |
union codec_state *codec_state, |
struct hw_context *hw_context) |
{ |
struct gen6_encoder_context *gen6_encoder_context = (struct gen6_encoder_context *)hw_context; |
struct encode_state *encode_state = &codec_state->encode; |
VAStatus vaStatus; |
vaStatus = gen75_vme_pipeline(ctx, profile, encode_state, gen6_encoder_context); |
if (vaStatus == VA_STATUS_SUCCESS) |
gen75_mfc_pipeline(ctx, profile, encode_state, gen6_encoder_context); |
} |
static void |
gen75_encoder_context_destroy(void *hw_context) |
{ |
struct gen6_encoder_context *gen6_encoder_context = (struct gen6_encoder_context *)hw_context; |
gen75_mfc_context_destroy(&gen6_encoder_context->mfc_context); |
gen75_vme_context_destroy(&gen6_encoder_context->vme_context); |
intel_batchbuffer_free(gen6_encoder_context->base.batch); |
free(gen6_encoder_context); |
} |
struct hw_context * |
gen75_enc_hw_context_init(VADriverContextP ctx, VAProfile profile) |
{ |
struct intel_driver_data *intel = intel_driver_data(ctx); |
struct gen6_encoder_context *gen6_encoder_context = calloc(1, sizeof(struct gen6_encoder_context)); |
gen6_encoder_context->base.destroy = gen75_encoder_context_destroy; |
gen6_encoder_context->base.run = gen75_encoder_end_picture; |
gen6_encoder_context->base.batch = intel_batchbuffer_new(intel, I915_EXEC_RENDER, 0); |
gen75_vme_context_init(ctx, &gen6_encoder_context->vme_context); |
gen75_mfc_context_init(ctx, &gen6_encoder_context->mfc_context); |
return (struct hw_context *)gen6_encoder_context; |
} |
/drivers/video/i965/i965_encoder.h |
---|
0,0 → 1,54 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Zhou chang <chang.zhou@intel.com> |
* |
*/ |
#ifndef _I965_ENCODER_H_ |
#define _I965_ENCODER_H_ |
#include <xf86drm.h> |
#include <drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
#include "i965_structs.h" |
#include "i965_drv_video.h" |
#include "gen6_vme.h" |
#include "gen6_mfc.h" |
struct gen6_encoder_context |
{ |
struct hw_context base; |
struct gen6_vme_context vme_context; |
struct gen6_mfc_context mfc_context; |
}; |
extern struct hw_context * |
gen75_enc_hw_context_init(VADriverContextP ctx, VAProfile profile); |
#endif /* _I965_ENCODER_H_ */ |
/drivers/video/i965/i965_media.c |
---|
0,0 → 1,384 |
/* |
* Copyright © 2009 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* Zou Nan hai <nanhai.zou@intel.com> |
* |
*/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_media.h" |
#include "i965_media_mpeg2.h" |
#include "i965_media_h264.h" |
static void |
i965_media_pipeline_select(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct intel_batchbuffer *batch = media_context->base.batch; |
BEGIN_BATCH(batch, 1); |
OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_media_urb_layout(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = media_context->base.batch; |
unsigned int vfe_fence, cs_fence; |
vfe_fence = media_context->urb.cs_start; |
cs_fence = URB_SIZE((&i965->intel)); |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, CMD_URB_FENCE | UF0_VFE_REALLOC | UF0_CS_REALLOC | 1); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, |
(vfe_fence << UF2_VFE_FENCE_SHIFT) | /* VFE_SIZE */ |
(cs_fence << UF2_CS_FENCE_SHIFT)); /* CS_SIZE */ |
ADVANCE_BATCH(batch); |
} |
static void |
i965_media_state_base_address(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = media_context->base.batch; |
if (IS_IRONLAKE(i965->intel.device_id)) { |
BEGIN_BATCH(batch, 8); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | 6); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
if (media_context->indirect_object.bo) { |
OUT_RELOC(batch, media_context->indirect_object.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, |
media_context->indirect_object.offset | BASE_ADDRESS_MODIFY); |
} else { |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
} |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
ADVANCE_BATCH(batch); |
} else { |
BEGIN_BATCH(batch, 6); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | 4); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
if (media_context->indirect_object.bo) { |
OUT_RELOC(batch, media_context->indirect_object.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, |
media_context->indirect_object.offset | BASE_ADDRESS_MODIFY); |
} else { |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
} |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
ADVANCE_BATCH(batch); |
} |
} |
static void |
i965_media_state_pointers(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct intel_batchbuffer *batch = media_context->base.batch; |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, CMD_MEDIA_STATE_POINTERS | 1); |
if (media_context->extended_state.enabled) |
OUT_RELOC(batch, media_context->extended_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 1); |
else |
OUT_BATCH(batch, 0); |
OUT_RELOC(batch, media_context->vfe_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_media_cs_urb_layout(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct intel_batchbuffer *batch = media_context->base.batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_CS_URB_STATE | 0); |
OUT_BATCH(batch, |
((media_context->urb.size_cs_entry - 1) << 4) | /* URB Entry Allocation Size */ |
(media_context->urb.num_cs_entries << 0)); /* Number of URB Entries */ |
ADVANCE_BATCH(batch); |
} |
static void |
i965_media_pipeline_state(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
i965_media_state_base_address(ctx, media_context); |
i965_media_state_pointers(ctx, media_context); |
i965_media_cs_urb_layout(ctx, media_context); |
} |
static void |
i965_media_constant_buffer(VADriverContextP ctx, struct decode_state *decode_state, struct i965_media_context *media_context) |
{ |
struct intel_batchbuffer *batch = media_context->base.batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_CONSTANT_BUFFER | (1 << 8) | (2 - 2)); |
OUT_RELOC(batch, media_context->curbe.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
media_context->urb.size_cs_entry - 1); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_media_depth_buffer(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct intel_batchbuffer *batch = media_context->base.batch; |
BEGIN_BATCH(batch, 6); |
OUT_BATCH(batch, CMD_DEPTH_BUFFER | 4); |
OUT_BATCH(batch, (I965_DEPTHFORMAT_D32_FLOAT << 18) | |
(I965_SURFACE_NULL << 29)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_media_pipeline_setup(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct intel_batchbuffer *batch = media_context->base.batch; |
intel_batchbuffer_start_atomic(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); /* step 1 */ |
i965_media_depth_buffer(ctx, media_context); |
i965_media_pipeline_select(ctx, media_context); /* step 2 */ |
i965_media_urb_layout(ctx, media_context); /* step 3 */ |
i965_media_pipeline_state(ctx, media_context); /* step 4 */ |
i965_media_constant_buffer(ctx, decode_state, media_context); /* step 5 */ |
assert(media_context->media_objects); |
media_context->media_objects(ctx, decode_state, media_context); /* step 6 */ |
intel_batchbuffer_end_atomic(batch); |
} |
static void |
i965_media_decode_init(VADriverContextP ctx, |
VAProfile profile, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
int i; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
dri_bo *bo; |
/* constant buffer */ |
dri_bo_unreference(media_context->curbe.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"constant buffer", |
4096, 64); |
assert(bo); |
media_context->curbe.bo = bo; |
/* surface state */ |
for (i = 0; i < MAX_MEDIA_SURFACES; i++) { |
dri_bo_unreference(media_context->surface_state[i].bo); |
media_context->surface_state[i].bo = NULL; |
} |
/* binding table */ |
dri_bo_unreference(media_context->binding_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"binding table", |
MAX_MEDIA_SURFACES * sizeof(unsigned int), 32); |
assert(bo); |
media_context->binding_table.bo = bo; |
/* interface descriptor remapping table */ |
dri_bo_unreference(media_context->idrt.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"interface discriptor", |
MAX_INTERFACE_DESC * sizeof(struct i965_interface_descriptor), 16); |
assert(bo); |
media_context->idrt.bo = bo; |
/* vfe state */ |
dri_bo_unreference(media_context->vfe_state.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vfe state", |
sizeof(struct i965_vfe_state), 32); |
assert(bo); |
media_context->vfe_state.bo = bo; |
/* extended state */ |
media_context->extended_state.enabled = 0; |
switch (profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
i965_media_mpeg2_decode_init(ctx, decode_state, media_context); |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
i965_media_h264_decode_init(ctx, decode_state, media_context); |
break; |
default: |
assert(0); |
break; |
} |
} |
static void |
i965_media_decode_picture(VADriverContextP ctx, |
VAProfile profile, |
union codec_state *codec_state, |
struct hw_context *hw_context) |
{ |
struct i965_media_context *media_context = (struct i965_media_context *)hw_context; |
struct decode_state *decode_state = &codec_state->decode; |
i965_media_decode_init(ctx, profile, decode_state, media_context); |
assert(media_context->media_states_setup); |
media_context->media_states_setup(ctx, decode_state, media_context); |
i965_media_pipeline_setup(ctx, decode_state, media_context); |
intel_batchbuffer_flush(hw_context->batch); |
} |
static void |
i965_media_context_destroy(void *hw_context) |
{ |
struct i965_media_context *media_context = (struct i965_media_context *)hw_context; |
int i; |
if (media_context->free_private_context) |
media_context->free_private_context(&media_context->private_context); |
for (i = 0; i < MAX_MEDIA_SURFACES; i++) { |
dri_bo_unreference(media_context->surface_state[i].bo); |
media_context->surface_state[i].bo = NULL; |
} |
dri_bo_unreference(media_context->extended_state.bo); |
media_context->extended_state.bo = NULL; |
dri_bo_unreference(media_context->vfe_state.bo); |
media_context->vfe_state.bo = NULL; |
dri_bo_unreference(media_context->idrt.bo); |
media_context->idrt.bo = NULL; |
dri_bo_unreference(media_context->binding_table.bo); |
media_context->binding_table.bo = NULL; |
dri_bo_unreference(media_context->curbe.bo); |
media_context->curbe.bo = NULL; |
dri_bo_unreference(media_context->indirect_object.bo); |
media_context->indirect_object.bo = NULL; |
intel_batchbuffer_free(media_context->base.batch); |
free(media_context); |
} |
struct hw_context * |
g4x_dec_hw_context_init(VADriverContextP ctx, VAProfile profile) |
{ |
struct intel_driver_data *intel = intel_driver_data(ctx); |
struct i965_media_context *media_context = calloc(1, sizeof(struct i965_media_context)); |
media_context->base.destroy = i965_media_context_destroy; |
media_context->base.run = i965_media_decode_picture; |
media_context->base.batch = intel_batchbuffer_new(intel, I915_EXEC_RENDER, 0); |
switch (profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
i965_media_mpeg2_dec_context_init(ctx, media_context); |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
case VAProfileVC1Simple: |
case VAProfileVC1Main: |
case VAProfileVC1Advanced: |
default: |
assert(0); |
break; |
} |
return (struct hw_context *)media_context; |
} |
struct hw_context * |
ironlake_dec_hw_context_init(VADriverContextP ctx, VAProfile profile) |
{ |
struct intel_driver_data *intel = intel_driver_data(ctx); |
struct i965_media_context *media_context = calloc(1, sizeof(struct i965_media_context)); |
media_context->base.destroy = i965_media_context_destroy; |
media_context->base.run = i965_media_decode_picture; |
media_context->base.batch = intel_batchbuffer_new(intel, I915_EXEC_RENDER, 0); |
switch (profile) { |
case VAProfileMPEG2Simple: |
case VAProfileMPEG2Main: |
i965_media_mpeg2_dec_context_init(ctx, media_context); |
break; |
case VAProfileH264Baseline: |
case VAProfileH264Main: |
case VAProfileH264High: |
i965_media_h264_dec_context_init(ctx, media_context); |
break; |
case VAProfileVC1Simple: |
case VAProfileVC1Main: |
case VAProfileVC1Advanced: |
default: |
assert(0); |
break; |
} |
return (struct hw_context *)media_context; |
} |
/drivers/video/i965/i965_media.h |
---|
0,0 → 1,96 |
/* |
* Copyright © 2009 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* Zou Nan hai <nanhai.zou@intel.com> |
* |
*/ |
#ifndef _I965_MEDIA_H_ |
#define _I965_MEDIA_H_ |
#include <xf86drm.h> |
#include <drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
#include "i965_structs.h" |
#define MAX_INTERFACE_DESC 16 |
#define MAX_MEDIA_SURFACES 34 |
struct decode_state; |
struct i965_media_context |
{ |
struct hw_context base; |
struct { |
dri_bo *bo; |
} surface_state[MAX_MEDIA_SURFACES]; |
struct { |
dri_bo *bo; |
} binding_table; |
struct { |
dri_bo *bo; |
} idrt; /* interface descriptor remap table */ |
struct { |
dri_bo *bo; |
int enabled; |
} extended_state; |
struct { |
dri_bo *bo; |
} vfe_state; |
struct { |
dri_bo *bo; |
} curbe; |
struct { |
dri_bo *bo; |
unsigned long offset; |
} indirect_object; |
struct { |
unsigned int vfe_start; |
unsigned int cs_start; |
unsigned int num_vfe_entries; |
unsigned int num_cs_entries; |
unsigned int size_vfe_entry; |
unsigned int size_cs_entry; |
} urb; |
void *private_context; |
void (*media_states_setup)(VADriverContextP ctx, struct decode_state *decode_state, struct i965_media_context *media_context); |
void (*media_objects)(VADriverContextP ctx, struct decode_state *decode_state, struct i965_media_context *media_context); |
void (*free_private_context)(void **data); |
}; |
#endif /* _I965_MEDIA_H_ */ |
/drivers/video/i965/i965_media_h264.c |
---|
0,0 → 1,912 |
#include <stdlib.h> |
#include <stdio.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_media.h" |
#include "i965_media_h264.h" |
enum { |
INTRA_16X16 = 0, |
INTRA_8X8, |
INTRA_4X4, |
INTRA_PCM, |
FRAMEMB_MOTION, |
FIELDMB_MOTION, |
MBAFF_MOTION, |
}; |
struct intra_kernel_header |
{ |
/* R1.0 */ |
unsigned char intra_4x4_luma_mode_0_offset; |
unsigned char intra_4x4_luma_mode_1_offset; |
unsigned char intra_4x4_luma_mode_2_offset; |
unsigned char intra_4x4_luma_mode_3_offset; |
/* R1.1 */ |
unsigned char intra_4x4_luma_mode_4_offset; |
unsigned char intra_4x4_luma_mode_5_offset; |
unsigned char intra_4x4_luma_mode_6_offset; |
unsigned char intra_4x4_luma_mode_7_offset; |
/* R1.2 */ |
unsigned char intra_4x4_luma_mode_8_offset; |
unsigned char pad0; |
unsigned short top_reference_offset; |
/* R1.3 */ |
unsigned char intra_8x8_luma_mode_0_offset; |
unsigned char intra_8x8_luma_mode_1_offset; |
unsigned char intra_8x8_luma_mode_2_offset; |
unsigned char intra_8x8_luma_mode_3_offset; |
/* R1.4 */ |
unsigned char intra_8x8_luma_mode_4_offset; |
unsigned char intra_8x8_luma_mode_5_offset; |
unsigned char intra_8x8_luma_mode_6_offset; |
unsigned char intra_8x8_luma_mode_7_offset; |
/* R1.5 */ |
unsigned char intra_8x8_luma_mode_8_offset; |
unsigned char pad1; |
unsigned short const_reverse_data_transfer_intra_8x8; |
/* R1.6 */ |
unsigned char intra_16x16_luma_mode_0_offset; |
unsigned char intra_16x16_luma_mode_1_offset; |
unsigned char intra_16x16_luma_mode_2_offset; |
unsigned char intra_16x16_luma_mode_3_offset; |
/* R1.7 */ |
unsigned char intra_chroma_mode_0_offset; |
unsigned char intra_chroma_mode_1_offset; |
unsigned char intra_chroma_mode_2_offset; |
unsigned char intra_chroma_mode_3_offset; |
/* R2.0 */ |
unsigned int const_intra_16x16_plane_0; |
/* R2.1 */ |
unsigned int const_intra_16x16_chroma_plane_0; |
/* R2.2 */ |
unsigned int const_intra_16x16_chroma_plane_1; |
/* R2.3 */ |
unsigned int const_intra_16x16_plane_1; |
/* R2.4 */ |
unsigned int left_shift_count_reverse_dw_ordering; |
/* R2.5 */ |
unsigned int const_reverse_data_transfer_intra_4x4; |
/* R2.6 */ |
unsigned int intra_4x4_pred_mode_offset; |
}; |
struct inter_kernel_header |
{ |
unsigned short weight_offset; |
unsigned char weight_offset_flag; |
unsigned char pad0; |
}; |
#include "shaders/h264/mc/export.inc" |
static unsigned long avc_mc_kernel_offset_gen4[] = { |
INTRA_16x16_IP * INST_UNIT_GEN4, |
INTRA_8x8_IP * INST_UNIT_GEN4, |
INTRA_4x4_IP * INST_UNIT_GEN4, |
INTRA_PCM_IP * INST_UNIT_GEN4, |
FRAME_MB_IP * INST_UNIT_GEN4, |
FIELD_MB_IP * INST_UNIT_GEN4, |
MBAFF_MB_IP * INST_UNIT_GEN4 |
}; |
struct intra_kernel_header intra_kernel_header_gen4 = { |
0, |
(INTRA_4X4_HORIZONTAL_IP - INTRA_4X4_VERTICAL_IP), |
(INTRA_4X4_DC_IP - INTRA_4X4_VERTICAL_IP), |
(INTRA_4X4_DIAG_DOWN_LEFT_IP - INTRA_4X4_VERTICAL_IP), |
(INTRA_4X4_DIAG_DOWN_RIGHT_IP - INTRA_4X4_VERTICAL_IP), |
(INTRA_4X4_VERT_RIGHT_IP - INTRA_4X4_VERTICAL_IP), |
(INTRA_4X4_HOR_DOWN_IP - INTRA_4X4_VERTICAL_IP), |
(INTRA_4X4_VERT_LEFT_IP - INTRA_4X4_VERTICAL_IP), |
(INTRA_4X4_HOR_UP_IP - INTRA_4X4_VERTICAL_IP), |
0, |
0xFFFC, |
0, |
(INTRA_8X8_HORIZONTAL_IP - INTRA_8X8_VERTICAL_IP), |
(INTRA_8X8_DC_IP - INTRA_8X8_VERTICAL_IP), |
(INTRA_8X8_DIAG_DOWN_LEFT_IP - INTRA_8X8_VERTICAL_IP), |
(INTRA_8X8_DIAG_DOWN_RIGHT_IP - INTRA_8X8_VERTICAL_IP), |
(INTRA_8X8_VERT_RIGHT_IP - INTRA_8X8_VERTICAL_IP), |
(INTRA_8X8_HOR_DOWN_IP - INTRA_8X8_VERTICAL_IP), |
(INTRA_8X8_VERT_LEFT_IP - INTRA_8X8_VERTICAL_IP), |
(INTRA_8X8_HOR_UP_IP - INTRA_8X8_VERTICAL_IP), |
0, |
0x0001, |
0, |
(INTRA_16x16_HORIZONTAL_IP - INTRA_16x16_VERTICAL_IP), |
(INTRA_16x16_DC_IP - INTRA_16x16_VERTICAL_IP), |
(INTRA_16x16_PLANE_IP - INTRA_16x16_VERTICAL_IP), |
0, |
(INTRA_CHROMA_HORIZONTAL_IP - INTRA_CHROMA_DC_IP), |
(INTRA_CHROMA_VERTICAL_IP - INTRA_CHROMA_DC_IP), |
(INTRA_Chroma_PLANE_IP - INTRA_CHROMA_DC_IP), |
0xFCFBFAF9, |
0x00FFFEFD, |
0x04030201, |
0x08070605, |
0x18100800, |
0x00020406, |
(intra_Pred_4x4_Y_IP - ADD_ERROR_SB3_IP) * 0x1000000 + |
(intra_Pred_4x4_Y_IP - ADD_ERROR_SB2_IP) * 0x10000 + |
(intra_Pred_4x4_Y_IP - ADD_ERROR_SB1_IP) * 0x100 + |
(intra_Pred_4x4_Y_IP - ADD_ERROR_SB0_IP) |
}; |
static const uint32_t h264_avc_combined_gen4[][4] = { |
#include "shaders/h264/mc/avc_mc.g4b" |
}; |
static const uint32_t h264_avc_null_gen4[][4] = { |
#include "shaders/h264/mc/null.g4b" |
}; |
static struct i965_kernel h264_avc_kernels_gen4[] = { |
{ |
"AVC combined kernel", |
H264_AVC_COMBINED, |
h264_avc_combined_gen4, |
sizeof(h264_avc_combined_gen4), |
NULL |
}, |
{ |
"NULL kernel", |
H264_AVC_NULL, |
h264_avc_null_gen4, |
sizeof(h264_avc_null_gen4), |
NULL |
} |
}; |
/* On Ironlake */ |
#include "shaders/h264/mc/export.inc.gen5" |
static unsigned long avc_mc_kernel_offset_gen5[] = { |
INTRA_16x16_IP_GEN5 * INST_UNIT_GEN5, |
INTRA_8x8_IP_GEN5 * INST_UNIT_GEN5, |
INTRA_4x4_IP_GEN5 * INST_UNIT_GEN5, |
INTRA_PCM_IP_GEN5 * INST_UNIT_GEN5, |
FRAME_MB_IP_GEN5 * INST_UNIT_GEN5, |
FIELD_MB_IP_GEN5 * INST_UNIT_GEN5, |
MBAFF_MB_IP_GEN5 * INST_UNIT_GEN5 |
}; |
struct intra_kernel_header intra_kernel_header_gen5 = { |
0, |
(INTRA_4X4_HORIZONTAL_IP_GEN5 - INTRA_4X4_VERTICAL_IP_GEN5), |
(INTRA_4X4_DC_IP_GEN5 - INTRA_4X4_VERTICAL_IP_GEN5), |
(INTRA_4X4_DIAG_DOWN_LEFT_IP_GEN5 - INTRA_4X4_VERTICAL_IP_GEN5), |
(INTRA_4X4_DIAG_DOWN_RIGHT_IP_GEN5 - INTRA_4X4_VERTICAL_IP_GEN5), |
(INTRA_4X4_VERT_RIGHT_IP_GEN5 - INTRA_4X4_VERTICAL_IP_GEN5), |
(INTRA_4X4_HOR_DOWN_IP_GEN5 - INTRA_4X4_VERTICAL_IP_GEN5), |
(INTRA_4X4_VERT_LEFT_IP_GEN5 - INTRA_4X4_VERTICAL_IP_GEN5), |
(INTRA_4X4_HOR_UP_IP_GEN5 - INTRA_4X4_VERTICAL_IP_GEN5), |
0, |
0xFFFC, |
0, |
(INTRA_8X8_HORIZONTAL_IP_GEN5 - INTRA_8X8_VERTICAL_IP_GEN5), |
(INTRA_8X8_DC_IP_GEN5 - INTRA_8X8_VERTICAL_IP_GEN5), |
(INTRA_8X8_DIAG_DOWN_LEFT_IP_GEN5 - INTRA_8X8_VERTICAL_IP_GEN5), |
(INTRA_8X8_DIAG_DOWN_RIGHT_IP_GEN5 - INTRA_8X8_VERTICAL_IP_GEN5), |
(INTRA_8X8_VERT_RIGHT_IP_GEN5 - INTRA_8X8_VERTICAL_IP_GEN5), |
(INTRA_8X8_HOR_DOWN_IP_GEN5 - INTRA_8X8_VERTICAL_IP_GEN5), |
(INTRA_8X8_VERT_LEFT_IP_GEN5 - INTRA_8X8_VERTICAL_IP_GEN5), |
(INTRA_8X8_HOR_UP_IP_GEN5 - INTRA_8X8_VERTICAL_IP_GEN5), |
0, |
0x0001, |
0, |
(INTRA_16x16_HORIZONTAL_IP_GEN5 - INTRA_16x16_VERTICAL_IP_GEN5), |
(INTRA_16x16_DC_IP_GEN5 - INTRA_16x16_VERTICAL_IP_GEN5), |
(INTRA_16x16_PLANE_IP_GEN5 - INTRA_16x16_VERTICAL_IP_GEN5), |
0, |
(INTRA_CHROMA_HORIZONTAL_IP_GEN5 - INTRA_CHROMA_DC_IP_GEN5), |
(INTRA_CHROMA_VERTICAL_IP_GEN5 - INTRA_CHROMA_DC_IP_GEN5), |
(INTRA_Chroma_PLANE_IP_GEN5 - INTRA_CHROMA_DC_IP_GEN5), |
0xFCFBFAF9, |
0x00FFFEFD, |
0x04030201, |
0x08070605, |
0x18100800, |
0x00020406, |
(intra_Pred_4x4_Y_IP_GEN5 - ADD_ERROR_SB3_IP_GEN5) * 0x1000000 + |
(intra_Pred_4x4_Y_IP_GEN5 - ADD_ERROR_SB2_IP_GEN5) * 0x10000 + |
(intra_Pred_4x4_Y_IP_GEN5 - ADD_ERROR_SB1_IP_GEN5) * 0x100 + |
(intra_Pred_4x4_Y_IP_GEN5 - ADD_ERROR_SB0_IP_GEN5) |
}; |
static const uint32_t h264_avc_combined_gen5[][4] = { |
#include "shaders/h264/mc/avc_mc.g4b.gen5" |
}; |
static const uint32_t h264_avc_null_gen5[][4] = { |
#include "shaders/h264/mc/null.g4b.gen5" |
}; |
static struct i965_kernel h264_avc_kernels_gen5[] = { |
{ |
"AVC combined kernel", |
H264_AVC_COMBINED, |
h264_avc_combined_gen5, |
sizeof(h264_avc_combined_gen5), |
NULL |
}, |
{ |
"NULL kernel", |
H264_AVC_NULL, |
h264_avc_null_gen5, |
sizeof(h264_avc_null_gen5), |
NULL |
} |
}; |
#define NUM_AVC_MC_INTERFACES (sizeof(avc_mc_kernel_offset_gen4) / sizeof(avc_mc_kernel_offset_gen4[0])) |
static unsigned long *avc_mc_kernel_offset = NULL; |
static struct intra_kernel_header *intra_kernel_header = NULL; |
static void |
i965_media_h264_surface_state(VADriverContextP ctx, |
int index, |
struct object_surface *obj_surface, |
unsigned long offset, |
int w, int h, int pitch, |
Bool is_dst, |
int vert_line_stride, |
int vert_line_stride_ofs, |
int format, |
struct i965_media_context *media_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_surface_state *ss; |
dri_bo *bo; |
uint32_t write_domain, read_domain; |
assert(obj_surface->bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state", |
sizeof(struct i965_surface_state), 32); |
assert(bo); |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
ss = bo->virtual; |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_type = I965_SURFACE_2D; |
ss->ss0.surface_format = format; |
ss->ss0.vert_line_stride = vert_line_stride; |
ss->ss0.vert_line_stride_ofs = vert_line_stride_ofs; |
ss->ss1.base_addr = obj_surface->bo->offset + offset; |
ss->ss2.width = w - 1; |
ss->ss2.height = h - 1; |
ss->ss3.pitch = pitch - 1; |
if (is_dst) { |
write_domain = I915_GEM_DOMAIN_RENDER; |
read_domain = I915_GEM_DOMAIN_RENDER; |
} else { |
write_domain = 0; |
read_domain = I915_GEM_DOMAIN_SAMPLER; |
} |
dri_bo_emit_reloc(bo, |
read_domain, write_domain, |
offset, |
offsetof(struct i965_surface_state, ss1), |
obj_surface->bo); |
dri_bo_unmap(bo); |
assert(index < MAX_MEDIA_SURFACES); |
media_context->surface_state[index].bo = bo; |
} |
static void |
i965_media_h264_surfaces_setup(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_h264_context *i965_h264_context; |
struct object_surface *obj_surface; |
VAPictureParameterBufferH264 *pic_param; |
VAPictureH264 *va_pic; |
int i, j, w, h; |
int field_picture; |
assert(media_context->private_context); |
i965_h264_context = (struct i965_h264_context *)media_context->private_context; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
/* Target Picture */ |
va_pic = &pic_param->CurrPic; |
assert(!(va_pic->flags & VA_PICTURE_H264_INVALID)); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface); |
w = obj_surface->width; |
h = obj_surface->height; |
field_picture = !!(va_pic->flags & (VA_PICTURE_H264_TOP_FIELD | VA_PICTURE_H264_BOTTOM_FIELD)); |
i965_media_h264_surface_state(ctx, 0, obj_surface, |
0, w / 4, h / (1 + field_picture), w, |
1, |
field_picture, |
!!(va_pic->flags & VA_PICTURE_H264_BOTTOM_FIELD), |
I965_SURFACEFORMAT_R8_SINT, /* Y */ |
media_context); |
i965_media_h264_surface_state(ctx, 1, obj_surface, |
w * h, w / 4, h / 2 / (1 + field_picture), w, |
1, |
field_picture, |
!!(va_pic->flags & VA_PICTURE_H264_BOTTOM_FIELD), |
I965_SURFACEFORMAT_R8G8_SINT, /* INTERLEAVED U/V */ |
media_context); |
/* Reference Pictures */ |
for (i = 0; i < ARRAY_ELEMS(i965_h264_context->fsid_list); i++) { |
if (i965_h264_context->fsid_list[i].surface_id != VA_INVALID_ID) { |
int found = 0; |
for (j = 0; j < ARRAY_ELEMS(pic_param->ReferenceFrames); j++) { |
va_pic = &pic_param->ReferenceFrames[j]; |
if (va_pic->flags & VA_PICTURE_H264_INVALID) |
continue; |
if (va_pic->picture_id == i965_h264_context->fsid_list[i].surface_id) { |
found = 1; |
break; |
} |
} |
assert(found == 1); |
obj_surface = SURFACE(va_pic->picture_id); |
assert(obj_surface); |
w = obj_surface->width; |
h = obj_surface->height; |
field_picture = !!(va_pic->flags & (VA_PICTURE_H264_TOP_FIELD | VA_PICTURE_H264_BOTTOM_FIELD)); |
i965_media_h264_surface_state(ctx, 2 + i, obj_surface, |
0, w / 4, h / (1 + field_picture), w, |
0, |
field_picture, |
!!(va_pic->flags & VA_PICTURE_H264_BOTTOM_FIELD), |
I965_SURFACEFORMAT_R8_SINT, /* Y */ |
media_context); |
i965_media_h264_surface_state(ctx, 18 + i, obj_surface, |
w * h, w / 4, h / 2 / (1 + field_picture), w, |
0, |
field_picture, |
!!(va_pic->flags & VA_PICTURE_H264_BOTTOM_FIELD), |
I965_SURFACEFORMAT_R8G8_SINT, /* INTERLEAVED U/V */ |
media_context); |
} |
} |
} |
static void |
i965_media_h264_binding_table(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
int i; |
unsigned int *binding_table; |
dri_bo *bo = media_context->binding_table.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
binding_table = bo->virtual; |
memset(binding_table, 0, bo->size); |
for (i = 0; i < MAX_MEDIA_SURFACES; i++) { |
if (media_context->surface_state[i].bo) { |
binding_table[i] = media_context->surface_state[i].bo->offset; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
i * sizeof(*binding_table), |
media_context->surface_state[i].bo); |
} |
} |
dri_bo_unmap(media_context->binding_table.bo); |
} |
static void |
i965_media_h264_interface_descriptor_remap_table(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct i965_h264_context *i965_h264_context = (struct i965_h264_context *)media_context->private_context; |
struct i965_interface_descriptor *desc; |
int i; |
dri_bo *bo; |
bo = media_context->idrt.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
desc = bo->virtual; |
for (i = 0; i < NUM_AVC_MC_INTERFACES; i++) { |
int kernel_offset = avc_mc_kernel_offset[i]; |
memset(desc, 0, sizeof(*desc)); |
desc->desc0.grf_reg_blocks = 7; |
desc->desc0.kernel_start_pointer = (i965_h264_context->avc_kernels[H264_AVC_COMBINED].bo->offset + kernel_offset) >> 6; /* reloc */ |
desc->desc1.const_urb_entry_read_offset = 0; |
desc->desc1.const_urb_entry_read_len = 2; |
desc->desc3.binding_table_entry_count = 0; |
desc->desc3.binding_table_pointer = |
media_context->binding_table.bo->offset >> 5; /*reloc */ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc0.grf_reg_blocks + kernel_offset, |
i * sizeof(*desc) + offsetof(struct i965_interface_descriptor, desc0), |
i965_h264_context->avc_kernels[H264_AVC_COMBINED].bo); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc3.binding_table_entry_count, |
i * sizeof(*desc) + offsetof(struct i965_interface_descriptor, desc3), |
media_context->binding_table.bo); |
desc++; |
} |
dri_bo_unmap(bo); |
} |
static void |
i965_media_h264_vfe_state(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct i965_vfe_state *vfe_state; |
dri_bo *bo; |
bo = media_context->vfe_state.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
vfe_state = bo->virtual; |
memset(vfe_state, 0, sizeof(*vfe_state)); |
vfe_state->vfe0.extend_vfe_state_present = 1; |
vfe_state->vfe1.max_threads = media_context->urb.num_vfe_entries - 1; |
vfe_state->vfe1.urb_entry_alloc_size = media_context->urb.size_vfe_entry - 1; |
vfe_state->vfe1.num_urb_entries = media_context->urb.num_vfe_entries; |
vfe_state->vfe1.vfe_mode = VFE_AVC_IT_MODE; |
vfe_state->vfe1.children_present = 0; |
vfe_state->vfe2.interface_descriptor_base = |
media_context->idrt.bo->offset >> 4; /* reloc */ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
offsetof(struct i965_vfe_state, vfe2), |
media_context->idrt.bo); |
dri_bo_unmap(bo); |
} |
static void |
i965_media_h264_vfe_state_extension(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct i965_h264_context *i965_h264_context; |
struct i965_vfe_state_ex *vfe_state_ex; |
VAPictureParameterBufferH264 *pic_param; |
int mbaff_frame_flag; |
assert(media_context->private_context); |
i965_h264_context = (struct i965_h264_context *)media_context->private_context; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
mbaff_frame_flag = (pic_param->seq_fields.bits.mb_adaptive_frame_field_flag && |
!pic_param->pic_fields.bits.field_pic_flag); |
assert(media_context->extended_state.bo); |
dri_bo_map(media_context->extended_state.bo, 1); |
assert(media_context->extended_state.bo->virtual); |
vfe_state_ex = media_context->extended_state.bo->virtual; |
memset(vfe_state_ex, 0, sizeof(*vfe_state_ex)); |
/* |
* Indirect data buffer: |
* -------------------------------------------------------- |
* | Motion Vectors | Weight/Offset data | Residual data | |
* -------------------------------------------------------- |
* R4-R7: Motion Vectors |
* R8-R9: Weight/Offset |
* R10-R33: Residual data |
*/ |
vfe_state_ex->vfex1.avc.residual_data_fix_offset_flag = !!RESIDUAL_DATA_OFFSET; |
vfe_state_ex->vfex1.avc.residual_data_offset = RESIDUAL_DATA_OFFSET; |
if (i965_h264_context->picture.i_flag) { |
vfe_state_ex->vfex1.avc.sub_field_present_flag = PRESENT_NOMV; /* NoMV */ |
vfe_state_ex->vfex1.avc.weight_grf_offset = 0; |
vfe_state_ex->vfex1.avc.residual_grf_offset = 0; |
} else { |
vfe_state_ex->vfex1.avc.sub_field_present_flag = PRESENT_MV_WO; /* Both MV and W/O */ |
vfe_state_ex->vfex1.avc.weight_grf_offset = 4; |
vfe_state_ex->vfex1.avc.residual_grf_offset = 6; |
} |
if (!pic_param->pic_fields.bits.field_pic_flag) { |
if (mbaff_frame_flag) { |
vfe_state_ex->remap_table0.remap_index_0 = INTRA_16X16; |
vfe_state_ex->remap_table0.remap_index_1 = INTRA_8X8; |
vfe_state_ex->remap_table0.remap_index_2 = INTRA_4X4; |
vfe_state_ex->remap_table0.remap_index_3 = INTRA_PCM; |
vfe_state_ex->remap_table0.remap_index_4 = MBAFF_MOTION; |
vfe_state_ex->remap_table0.remap_index_5 = MBAFF_MOTION; |
vfe_state_ex->remap_table0.remap_index_6 = MBAFF_MOTION; |
vfe_state_ex->remap_table0.remap_index_7 = MBAFF_MOTION; |
vfe_state_ex->remap_table1.remap_index_8 = MBAFF_MOTION; |
vfe_state_ex->remap_table1.remap_index_9 = MBAFF_MOTION; |
vfe_state_ex->remap_table1.remap_index_10 = MBAFF_MOTION; |
vfe_state_ex->remap_table1.remap_index_11 = MBAFF_MOTION; |
vfe_state_ex->remap_table1.remap_index_12 = MBAFF_MOTION; |
vfe_state_ex->remap_table1.remap_index_13 = MBAFF_MOTION; |
vfe_state_ex->remap_table1.remap_index_14 = MBAFF_MOTION; |
vfe_state_ex->remap_table1.remap_index_15 = MBAFF_MOTION; |
} else { |
vfe_state_ex->remap_table0.remap_index_0 = INTRA_16X16; |
vfe_state_ex->remap_table0.remap_index_1 = INTRA_8X8; |
vfe_state_ex->remap_table0.remap_index_2 = INTRA_4X4; |
vfe_state_ex->remap_table0.remap_index_3 = INTRA_PCM; |
vfe_state_ex->remap_table0.remap_index_4 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table0.remap_index_5 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table0.remap_index_6 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table0.remap_index_7 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_8 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_9 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_10 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_11 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_12 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_13 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_14 = FRAMEMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_15 = FRAMEMB_MOTION; |
} |
} else { |
vfe_state_ex->remap_table0.remap_index_0 = INTRA_16X16; |
vfe_state_ex->remap_table0.remap_index_1 = INTRA_8X8; |
vfe_state_ex->remap_table0.remap_index_2 = INTRA_4X4; |
vfe_state_ex->remap_table0.remap_index_3 = INTRA_PCM; |
vfe_state_ex->remap_table0.remap_index_4 = FIELDMB_MOTION; |
vfe_state_ex->remap_table0.remap_index_5 = FIELDMB_MOTION; |
vfe_state_ex->remap_table0.remap_index_6 = FIELDMB_MOTION; |
vfe_state_ex->remap_table0.remap_index_7 = FIELDMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_8 = FIELDMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_9 = FIELDMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_10 = FIELDMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_11 = FIELDMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_12 = FIELDMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_13 = FIELDMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_14 = FIELDMB_MOTION; |
vfe_state_ex->remap_table1.remap_index_15 = FIELDMB_MOTION; |
} |
if (i965_h264_context->use_avc_hw_scoreboard) { |
vfe_state_ex->scoreboard0.enable = 1; |
vfe_state_ex->scoreboard0.type = SCOREBOARD_STALLING; |
vfe_state_ex->scoreboard0.mask = 0xff; |
vfe_state_ex->scoreboard1.delta_x0 = -1; |
vfe_state_ex->scoreboard1.delta_y0 = 0; |
vfe_state_ex->scoreboard1.delta_x1 = 0; |
vfe_state_ex->scoreboard1.delta_y1 = -1; |
vfe_state_ex->scoreboard1.delta_x2 = 1; |
vfe_state_ex->scoreboard1.delta_y2 = -1; |
vfe_state_ex->scoreboard1.delta_x3 = -1; |
vfe_state_ex->scoreboard1.delta_y3 = -1; |
vfe_state_ex->scoreboard2.delta_x4 = -1; |
vfe_state_ex->scoreboard2.delta_y4 = 1; |
vfe_state_ex->scoreboard2.delta_x5 = 0; |
vfe_state_ex->scoreboard2.delta_y5 = -2; |
vfe_state_ex->scoreboard2.delta_x6 = 1; |
vfe_state_ex->scoreboard2.delta_y6 = -2; |
vfe_state_ex->scoreboard2.delta_x7 = -1; |
vfe_state_ex->scoreboard2.delta_y7 = -2; |
} |
dri_bo_unmap(media_context->extended_state.bo); |
} |
static void |
i965_media_h264_upload_constants(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct i965_h264_context *i965_h264_context; |
unsigned char *constant_buffer; |
VASliceParameterBufferH264 *slice_param; |
assert(media_context->private_context); |
i965_h264_context = (struct i965_h264_context *)media_context->private_context; |
assert(decode_state->slice_params[0] && decode_state->slice_params[0]->buffer); |
slice_param = (VASliceParameterBufferH264 *)decode_state->slice_params[0]->buffer; |
dri_bo_map(media_context->curbe.bo, 1); |
assert(media_context->curbe.bo->virtual); |
constant_buffer = media_context->curbe.bo->virtual; |
/* HW solution for W=128 */ |
if (i965_h264_context->use_hw_w128) { |
memcpy(constant_buffer, intra_kernel_header, sizeof(*intra_kernel_header)); |
} else { |
if (slice_param->slice_type == SLICE_TYPE_I || |
slice_param->slice_type == SLICE_TYPE_SI) { |
memcpy(constant_buffer, intra_kernel_header, sizeof(*intra_kernel_header)); |
} else { |
/* FIXME: Need to upload CURBE data to inter kernel interface |
* to support weighted prediction work-around |
*/ |
*(short *)constant_buffer = i965_h264_context->weight128_offset0; |
constant_buffer += 2; |
*(char *)constant_buffer = i965_h264_context->weight128_offset0_flag; |
constant_buffer++; |
*constant_buffer = 0; |
} |
} |
dri_bo_unmap(media_context->curbe.bo); |
} |
static void |
i965_media_h264_states_setup(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct i965_h264_context *i965_h264_context; |
assert(media_context->private_context); |
i965_h264_context = (struct i965_h264_context *)media_context->private_context; |
i965_avc_bsd_pipeline(ctx, decode_state, i965_h264_context); |
if (i965_h264_context->use_avc_hw_scoreboard) |
i965_avc_hw_scoreboard(ctx, decode_state, i965_h264_context); |
i965_media_h264_surfaces_setup(ctx, decode_state, media_context); |
i965_media_h264_binding_table(ctx, media_context); |
i965_media_h264_interface_descriptor_remap_table(ctx, media_context); |
i965_media_h264_vfe_state_extension(ctx, decode_state, media_context); |
i965_media_h264_vfe_state(ctx, media_context); |
i965_media_h264_upload_constants(ctx, decode_state, media_context); |
} |
static void |
i965_media_h264_objects(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct intel_batchbuffer *batch = media_context->base.batch; |
struct i965_h264_context *i965_h264_context; |
unsigned int *object_command; |
assert(media_context->private_context); |
i965_h264_context = (struct i965_h264_context *)media_context->private_context; |
dri_bo_map(i965_h264_context->avc_it_command_mb_info.bo, True); |
assert(i965_h264_context->avc_it_command_mb_info.bo->virtual); |
object_command = i965_h264_context->avc_it_command_mb_info.bo->virtual; |
memset(object_command, 0, i965_h264_context->avc_it_command_mb_info.mbs * i965_h264_context->use_avc_hw_scoreboard * MB_CMD_IN_BYTES); |
object_command += i965_h264_context->avc_it_command_mb_info.mbs * (1 + i965_h264_context->use_avc_hw_scoreboard) * MB_CMD_IN_DWS; |
*object_command++ = 0; |
*object_command = MI_BATCH_BUFFER_END; |
dri_bo_unmap(i965_h264_context->avc_it_command_mb_info.bo); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, MI_BATCH_BUFFER_START | (2 << 6)); |
OUT_RELOC(batch, i965_h264_context->avc_it_command_mb_info.bo, |
I915_GEM_DOMAIN_COMMAND, 0, |
0); |
ADVANCE_BATCH(batch); |
/* Have to execute the batch buffer here becuase MI_BATCH_BUFFER_END |
* will cause control to pass back to ring buffer |
*/ |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
intel_batchbuffer_start_atomic(batch, 0x1000); |
i965_avc_ildb(ctx, decode_state, i965_h264_context); |
} |
static void |
i965_media_h264_free_private_context(void **data) |
{ |
struct i965_h264_context *i965_h264_context = *data; |
int i; |
if (i965_h264_context == NULL) |
return; |
i965_avc_ildb_ternimate(&i965_h264_context->avc_ildb_context); |
i965_avc_hw_scoreboard_ternimate(&i965_h264_context->avc_hw_scoreboard_context); |
i965_avc_bsd_ternimate(&i965_h264_context->i965_avc_bsd_context); |
dri_bo_unreference(i965_h264_context->avc_it_command_mb_info.bo); |
dri_bo_unreference(i965_h264_context->avc_it_data.bo); |
dri_bo_unreference(i965_h264_context->avc_ildb_data.bo); |
for (i = 0; i < NUM_H264_AVC_KERNELS; i++) { |
struct i965_kernel *kernel = &i965_h264_context->avc_kernels[i]; |
dri_bo_unreference(kernel->bo); |
kernel->bo = NULL; |
} |
free(i965_h264_context); |
*data = NULL; |
} |
void |
i965_media_h264_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_h264_context *i965_h264_context = media_context->private_context; |
dri_bo *bo; |
VAPictureParameterBufferH264 *pic_param; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferH264 *)decode_state->pic_param->buffer; |
i965_h264_context->picture.width_in_mbs = ((pic_param->picture_width_in_mbs_minus1 + 1) & 0xff); |
i965_h264_context->picture.height_in_mbs = ((pic_param->picture_height_in_mbs_minus1 + 1) & 0xff) / |
(1 + !!pic_param->pic_fields.bits.field_pic_flag); /* picture height */ |
i965_h264_context->picture.mbaff_frame_flag = (pic_param->seq_fields.bits.mb_adaptive_frame_field_flag && |
!pic_param->pic_fields.bits.field_pic_flag); |
i965_h264_context->avc_it_command_mb_info.mbs = (i965_h264_context->picture.width_in_mbs * |
i965_h264_context->picture.height_in_mbs); |
dri_bo_unreference(i965_h264_context->avc_it_command_mb_info.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"avc it command mb info", |
i965_h264_context->avc_it_command_mb_info.mbs * MB_CMD_IN_BYTES * (1 + i965_h264_context->use_avc_hw_scoreboard) + 8, |
0x1000); |
assert(bo); |
i965_h264_context->avc_it_command_mb_info.bo = bo; |
dri_bo_unreference(i965_h264_context->avc_it_data.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"avc it data", |
i965_h264_context->avc_it_command_mb_info.mbs * |
0x800 * |
(1 + !!pic_param->pic_fields.bits.field_pic_flag), |
0x1000); |
assert(bo); |
i965_h264_context->avc_it_data.bo = bo; |
i965_h264_context->avc_it_data.write_offset = 0; |
dri_bo_unreference(media_context->indirect_object.bo); |
media_context->indirect_object.bo = bo; |
dri_bo_reference(media_context->indirect_object.bo); |
media_context->indirect_object.offset = i965_h264_context->avc_it_data.write_offset; |
dri_bo_unreference(i965_h264_context->avc_ildb_data.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"AVC-ILDB Data Buffer", |
i965_h264_context->avc_it_command_mb_info.mbs * 64 * 2, |
0x1000); |
assert(bo); |
i965_h264_context->avc_ildb_data.bo = bo; |
/* bsd pipeline */ |
i965_avc_bsd_decode_init(ctx, i965_h264_context); |
/* HW scoreboard */ |
if (i965_h264_context->use_avc_hw_scoreboard) |
i965_avc_hw_scoreboard_decode_init(ctx, i965_h264_context); |
/* ILDB */ |
i965_avc_ildb_decode_init(ctx, i965_h264_context); |
/* for Media pipeline */ |
media_context->extended_state.enabled = 1; |
dri_bo_unreference(media_context->extended_state.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"extened vfe state", |
sizeof(struct i965_vfe_state_ex), 32); |
assert(bo); |
media_context->extended_state.bo = bo; |
} |
void |
i965_media_h264_dec_context_init(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_h264_context *i965_h264_context; |
int i; |
i965_h264_context = calloc(1, sizeof(struct i965_h264_context)); |
/* kernel */ |
assert(NUM_H264_AVC_KERNELS == (sizeof(h264_avc_kernels_gen5) / |
sizeof(h264_avc_kernels_gen5[0]))); |
assert(NUM_AVC_MC_INTERFACES == (sizeof(avc_mc_kernel_offset_gen5) / |
sizeof(avc_mc_kernel_offset_gen5[0]))); |
if (IS_IRONLAKE(i965->intel.device_id)) { |
memcpy(i965_h264_context->avc_kernels, h264_avc_kernels_gen5, sizeof(i965_h264_context->avc_kernels)); |
avc_mc_kernel_offset = avc_mc_kernel_offset_gen5; |
intra_kernel_header = &intra_kernel_header_gen5; |
i965_h264_context->use_avc_hw_scoreboard = 1; |
i965_h264_context->use_hw_w128 = 1; |
} else { |
memcpy(i965_h264_context->avc_kernels, h264_avc_kernels_gen4, sizeof(i965_h264_context->avc_kernels)); |
avc_mc_kernel_offset = avc_mc_kernel_offset_gen4; |
intra_kernel_header = &intra_kernel_header_gen4; |
i965_h264_context->use_avc_hw_scoreboard = 0; |
i965_h264_context->use_hw_w128 = 0; |
} |
for (i = 0; i < NUM_H264_AVC_KERNELS; i++) { |
struct i965_kernel *kernel = &i965_h264_context->avc_kernels[i]; |
kernel->bo = dri_bo_alloc(i965->intel.bufmgr, |
kernel->name, |
kernel->size, 0x1000); |
assert(kernel->bo); |
dri_bo_subdata(kernel->bo, 0, kernel->size, kernel->bin); |
} |
for (i = 0; i < 16; i++) { |
i965_h264_context->fsid_list[i].surface_id = VA_INVALID_ID; |
i965_h264_context->fsid_list[i].frame_store_id = -1; |
} |
i965_h264_context->batch = media_context->base.batch; |
media_context->private_context = i965_h264_context; |
media_context->free_private_context = i965_media_h264_free_private_context; |
/* URB */ |
if (IS_IRONLAKE(i965->intel.device_id)) { |
media_context->urb.num_vfe_entries = 63; |
} else { |
media_context->urb.num_vfe_entries = 23; |
} |
media_context->urb.size_vfe_entry = 16; |
media_context->urb.num_cs_entries = 1; |
media_context->urb.size_cs_entry = 1; |
media_context->urb.vfe_start = 0; |
media_context->urb.cs_start = media_context->urb.vfe_start + |
media_context->urb.num_vfe_entries * media_context->urb.size_vfe_entry; |
assert(media_context->urb.cs_start + |
media_context->urb.num_cs_entries * media_context->urb.size_cs_entry <= URB_SIZE((&i965->intel))); |
/* hook functions */ |
media_context->media_states_setup = i965_media_h264_states_setup; |
media_context->media_objects = i965_media_h264_objects; |
} |
/drivers/video/i965/i965_media_h264.h |
---|
0,0 → 1,73 |
#ifndef _I965_MEDIA_H264_H_ |
#define _I965_MEDIA_H264_H_ |
#include "i965_avc_bsd.h" |
#include "i965_avc_hw_scoreboard.h" |
#include "i965_avc_ildb.h" |
#include "i965_decoder.h" |
struct decode_state; |
struct i965_media_context; |
#define INST_UNIT_GEN4 16 |
#define INST_UNIT_GEN5 8 |
#define MB_CMD_IN_BYTES 64 |
#define MB_CMD_IN_DWS 16 |
#define MB_CMD_IN_OWS 4 |
enum { |
H264_AVC_COMBINED = 0, |
H264_AVC_NULL |
}; |
#define NUM_H264_AVC_KERNELS 2 |
struct i965_h264_context |
{ |
struct { |
dri_bo *bo; |
unsigned int mbs; |
} avc_it_command_mb_info; |
struct { |
dri_bo *bo; |
long write_offset; |
} avc_it_data; |
struct { |
dri_bo *bo; |
} avc_ildb_data; |
struct { |
unsigned int width_in_mbs; |
unsigned int height_in_mbs; |
int mbaff_frame_flag; |
int i_flag; |
} picture; |
int enable_avc_ildb; |
int use_avc_hw_scoreboard; |
int use_hw_w128; |
unsigned int weight128_luma_l0; |
unsigned int weight128_luma_l1; |
unsigned int weight128_chroma_l0; |
unsigned int weight128_chroma_l1; |
char weight128_offset0_flag; |
short weight128_offset0; |
struct i965_avc_bsd_context i965_avc_bsd_context; |
struct i965_avc_hw_scoreboard_context avc_hw_scoreboard_context; |
struct i965_avc_ildb_context avc_ildb_context; |
GenFrameStore fsid_list[MAX_GEN_REFERENCE_FRAMES]; |
struct i965_kernel avc_kernels[NUM_H264_AVC_KERNELS]; |
struct intel_batchbuffer *batch; |
}; |
void i965_media_h264_decode_init(VADriverContextP ctx, struct decode_state *decode_state, struct i965_media_context *media_context); |
void i965_media_h264_dec_context_init(VADriverContextP ctx, struct i965_media_context *media_context); |
#endif /* _I965_MEDIA_H264_H_ */ |
/drivers/video/i965/i965_media_mpeg2.c |
---|
0,0 → 1,1021 |
/* |
* Copyright © 2009 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* Zou Nan hai <nanhai.zou@intel.com> |
* |
*/ |
#include <stdlib.h> |
#include <stdio.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_decoder_utils.h" |
#include "i965_media.h" |
#include "i965_media_mpeg2.h" |
#define SURFACE_TARGET 0 |
#define SURFACE_FORWARD 1 |
#define SURFACE_BACKWARD 2 |
#define SURFACE_BIDIRECT 3 |
enum interface { |
FRAME_INTRA = 0, |
FRAME_FRAME_PRED_FORWARD, |
FRAME_FRAME_PRED_BACKWARD, |
FRAME_FRAME_PRED_BIDIRECT, |
FRAME_FIELD_PRED_FORWARD, |
FRAME_FIELD_PRED_BACKWARD, |
FRAME_FIELD_PRED_BIDIRECT, |
LIB_INTERFACE, |
FIELD_INTRA, |
FIELD_FORWARD, |
FIELD_FORWARD_16X8, |
FIELD_BACKWARD, |
FIELD_BACKWARD_16X8, |
FIELD_BIDIRECT, |
FIELD_BIDIRECT_16X8 |
}; |
/* idct table */ |
#define C0 23170 |
#define C1 22725 |
#define C2 21407 |
#define C3 19266 |
#define C4 16383 |
#define C5 12873 |
#define C6 8867 |
#define C7 4520 |
const uint32_t idct_table[] = { |
C4, C1, C2, C3, C4, C5, C6, C7, //g5 |
C4, C1, C2, C3, C4, C5, C6, C7, |
C4, C3, C6,-C7,-C4,-C1,-C2,-C5, |
C4, C3, C6,-C7,-C4,-C1,-C2,-C5, |
C4, C5,-C6,-C1,-C4, C7, C2, C3, |
C4, C5,-C6,-C1,-C4, C7, C2, C3, |
C4, C7,-C2,-C5, C4, C3,-C6,-C1, |
C4, C7,-C2,-C5, C4, C3,-C6,-C1, |
C4,-C7,-C2, C5, C4,-C3,-C6, C1, |
C4,-C7,-C2, C5, C4,-C3,-C6, C1, |
C4,-C5,-C6, C1,-C4,-C7, C2,-C3, |
C4,-C5,-C6, C1,-C4,-C7, C2,-C3, |
C4,-C3, C6, C7,-C4, C1,-C2, C5, |
C4,-C3, C6, C7,-C4, C1,-C2, C5, |
C4,-C1, C2,-C3, C4,-C5, C6,-C7, |
C4,-C1, C2,-C3, C4,-C5, C6,-C7 //g20 |
}; |
#undef C0 |
#undef C1 |
#undef C2 |
#undef C3 |
#undef C4 |
#undef C5 |
#undef C6 |
#undef C7 |
const uint32_t zigzag_direct[64] = { |
0, 1, 8, 16, 9, 2, 3, 10, |
17, 24, 32, 25, 18, 11, 4, 5, |
12, 19, 26, 33, 40, 48, 41, 34, |
27, 20, 13, 6, 7, 14, 21, 28, |
35, 42, 49, 56, 57, 50, 43, 36, |
29, 22, 15, 23, 30, 37, 44, 51, |
58, 59, 52, 45, 38, 31, 39, 46, |
53, 60, 61, 54, 47, 55, 62, 63 |
}; |
static const uint32_t frame_intra_kernel[][4] = { |
#include "shaders/mpeg2/vld/frame_intra.g4b" |
}; |
static const uint32_t frame_frame_pred_forward_kernel[][4] = { |
#include "shaders/mpeg2/vld/frame_frame_pred_forward.g4b" |
}; |
static const uint32_t frame_frame_pred_backward_kernel[][4] = { |
#include "shaders/mpeg2/vld/frame_frame_pred_backward.g4b" |
}; |
static const uint32_t frame_frame_pred_bidirect_kernel[][4] = { |
#include "shaders/mpeg2/vld/frame_frame_pred_bidirect.g4b" |
}; |
static const uint32_t frame_field_pred_forward_kernel[][4] = { |
#include "shaders/mpeg2/vld/frame_field_pred_forward.g4b" |
}; |
static const uint32_t frame_field_pred_backward_kernel[][4] = { |
#include "shaders/mpeg2/vld/frame_field_pred_backward.g4b" |
}; |
static const uint32_t frame_field_pred_bidirect_kernel[][4] = { |
#include "shaders/mpeg2/vld/frame_field_pred_bidirect.g4b" |
}; |
static const uint32_t lib_kernel[][4] = { |
#include "shaders/mpeg2/vld/lib.g4b" |
}; |
/*field picture*/ |
static const uint32_t field_intra_kernel[][4] = { |
#include "shaders/mpeg2/vld/field_intra.g4b" |
}; |
static const uint32_t field_forward_kernel[][4] = { |
#include "shaders/mpeg2/vld/field_forward.g4b" |
}; |
static const uint32_t field_forward_16x8_kernel[][4] = { |
#include "shaders/mpeg2/vld/field_forward_16x8.g4b" |
}; |
static const uint32_t field_backward_kernel[][4] = { |
#include "shaders/mpeg2/vld/field_backward.g4b" |
}; |
static const uint32_t field_backward_16x8_kernel[][4] = { |
#include "shaders/mpeg2/vld/field_backward_16x8.g4b" |
}; |
static const uint32_t field_bidirect_kernel[][4] = { |
#include "shaders/mpeg2/vld/field_bidirect.g4b" |
}; |
static const uint32_t field_bidirect_16x8_kernel[][4] = { |
#include "shaders/mpeg2/vld/field_bidirect_16x8.g4b" |
}; |
static struct i965_kernel mpeg2_vld_kernels_gen4[] = { |
{ |
"FRAME_INTRA", |
FRAME_INTRA, |
frame_intra_kernel, |
sizeof(frame_intra_kernel), |
NULL |
}, |
{ |
"FRAME_FRAME_PRED_FORWARD", |
FRAME_FRAME_PRED_FORWARD, |
frame_frame_pred_forward_kernel, |
sizeof(frame_frame_pred_forward_kernel), |
NULL |
}, |
{ |
"FRAME_FRAME_PRED_BACKWARD", |
FRAME_FRAME_PRED_BACKWARD, |
frame_frame_pred_backward_kernel, |
sizeof(frame_frame_pred_backward_kernel), |
NULL |
}, |
{ |
"FRAME_FRAME_PRED_BIDIRECT", |
FRAME_FRAME_PRED_BIDIRECT, |
frame_frame_pred_bidirect_kernel, |
sizeof(frame_frame_pred_bidirect_kernel), |
NULL |
}, |
{ |
"FRAME_FIELD_PRED_FORWARD", |
FRAME_FIELD_PRED_FORWARD, |
frame_field_pred_forward_kernel, |
sizeof(frame_field_pred_forward_kernel), |
NULL |
}, |
{ |
"FRAME_FIELD_PRED_BACKWARD", |
FRAME_FIELD_PRED_BACKWARD, |
frame_field_pred_backward_kernel, |
sizeof(frame_field_pred_backward_kernel), |
NULL |
}, |
{ |
"FRAME_FIELD_PRED_BIDIRECT", |
FRAME_FIELD_PRED_BIDIRECT, |
frame_field_pred_bidirect_kernel, |
sizeof(frame_field_pred_bidirect_kernel), |
NULL |
}, |
{ |
"LIB", |
LIB_INTERFACE, |
lib_kernel, |
sizeof(lib_kernel), |
NULL |
}, |
{ |
"FIELD_INTRA", |
FIELD_INTRA, |
field_intra_kernel, |
sizeof(field_intra_kernel), |
NULL |
}, |
{ |
"FIELD_FORWARD", |
FIELD_FORWARD, |
field_forward_kernel, |
sizeof(field_forward_kernel), |
NULL |
}, |
{ |
"FIELD_FORWARD_16X8", |
FIELD_FORWARD_16X8, |
field_forward_16x8_kernel, |
sizeof(field_forward_16x8_kernel), |
NULL |
}, |
{ |
"FIELD_BACKWARD", |
FIELD_BACKWARD, |
field_backward_kernel, |
sizeof(field_backward_kernel), |
NULL |
}, |
{ |
"FIELD_BACKWARD_16X8", |
FIELD_BACKWARD_16X8, |
field_backward_16x8_kernel, |
sizeof(field_backward_16x8_kernel), |
NULL |
}, |
{ |
"FIELD_BIDIRECT", |
FIELD_BIDIRECT, |
field_bidirect_kernel, |
sizeof(field_bidirect_kernel), |
NULL |
}, |
{ |
"FIELD_BIDIRECT_16X8", |
FIELD_BIDIRECT_16X8, |
field_bidirect_16x8_kernel, |
sizeof(field_bidirect_16x8_kernel), |
NULL |
} |
}; |
/* On IRONLAKE */ |
static const uint32_t frame_intra_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/frame_intra.g4b.gen5" |
}; |
static const uint32_t frame_frame_pred_forward_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/frame_frame_pred_forward.g4b.gen5" |
}; |
static const uint32_t frame_frame_pred_backward_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/frame_frame_pred_backward.g4b.gen5" |
}; |
static const uint32_t frame_frame_pred_bidirect_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/frame_frame_pred_bidirect.g4b.gen5" |
}; |
static const uint32_t frame_field_pred_forward_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/frame_field_pred_forward.g4b.gen5" |
}; |
static const uint32_t frame_field_pred_backward_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/frame_field_pred_backward.g4b.gen5" |
}; |
static const uint32_t frame_field_pred_bidirect_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/frame_field_pred_bidirect.g4b.gen5" |
}; |
static const uint32_t lib_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/lib.g4b.gen5" |
}; |
/*field picture*/ |
static const uint32_t field_intra_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/field_intra.g4b.gen5" |
}; |
static const uint32_t field_forward_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/field_forward.g4b.gen5" |
}; |
static const uint32_t field_forward_16x8_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/field_forward_16x8.g4b.gen5" |
}; |
static const uint32_t field_backward_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/field_backward.g4b.gen5" |
}; |
static const uint32_t field_backward_16x8_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/field_backward_16x8.g4b.gen5" |
}; |
static const uint32_t field_bidirect_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/field_bidirect.g4b.gen5" |
}; |
static const uint32_t field_bidirect_16x8_kernel_gen5[][4] = { |
#include "shaders/mpeg2/vld/field_bidirect_16x8.g4b.gen5" |
}; |
static struct i965_kernel mpeg2_vld_kernels_gen5[] = { |
{ |
"FRAME_INTRA", |
FRAME_INTRA, |
frame_intra_kernel_gen5, |
sizeof(frame_intra_kernel_gen5), |
NULL |
}, |
{ |
"FRAME_FRAME_PRED_FORWARD", |
FRAME_FRAME_PRED_FORWARD, |
frame_frame_pred_forward_kernel_gen5, |
sizeof(frame_frame_pred_forward_kernel_gen5), |
NULL |
}, |
{ |
"FRAME_FRAME_PRED_BACKWARD", |
FRAME_FRAME_PRED_BACKWARD, |
frame_frame_pred_backward_kernel_gen5, |
sizeof(frame_frame_pred_backward_kernel_gen5), |
NULL |
}, |
{ |
"FRAME_FRAME_PRED_BIDIRECT", |
FRAME_FRAME_PRED_BIDIRECT, |
frame_frame_pred_bidirect_kernel_gen5, |
sizeof(frame_frame_pred_bidirect_kernel_gen5), |
NULL |
}, |
{ |
"FRAME_FIELD_PRED_FORWARD", |
FRAME_FIELD_PRED_FORWARD, |
frame_field_pred_forward_kernel_gen5, |
sizeof(frame_field_pred_forward_kernel_gen5), |
NULL |
}, |
{ |
"FRAME_FIELD_PRED_BACKWARD", |
FRAME_FIELD_PRED_BACKWARD, |
frame_field_pred_backward_kernel_gen5, |
sizeof(frame_field_pred_backward_kernel_gen5), |
NULL |
}, |
{ |
"FRAME_FIELD_PRED_BIDIRECT", |
FRAME_FIELD_PRED_BIDIRECT, |
frame_field_pred_bidirect_kernel_gen5, |
sizeof(frame_field_pred_bidirect_kernel_gen5), |
NULL |
}, |
{ |
"LIB", |
LIB_INTERFACE, |
lib_kernel_gen5, |
sizeof(lib_kernel_gen5), |
NULL |
}, |
{ |
"FIELD_INTRA", |
FIELD_INTRA, |
field_intra_kernel_gen5, |
sizeof(field_intra_kernel_gen5), |
NULL |
}, |
{ |
"FIELD_FORWARD", |
FIELD_FORWARD, |
field_forward_kernel_gen5, |
sizeof(field_forward_kernel_gen5), |
NULL |
}, |
{ |
"FIELD_FORWARD_16X8", |
FIELD_FORWARD_16X8, |
field_forward_16x8_kernel_gen5, |
sizeof(field_forward_16x8_kernel_gen5), |
NULL |
}, |
{ |
"FIELD_BACKWARD", |
FIELD_BACKWARD, |
field_backward_kernel_gen5, |
sizeof(field_backward_kernel_gen5), |
NULL |
}, |
{ |
"FIELD_BACKWARD_16X8", |
FIELD_BACKWARD_16X8, |
field_backward_16x8_kernel_gen5, |
sizeof(field_backward_16x8_kernel_gen5), |
NULL |
}, |
{ |
"FIELD_BIDIRECT", |
FIELD_BIDIRECT, |
field_bidirect_kernel_gen5, |
sizeof(field_bidirect_kernel_gen5), |
NULL |
}, |
{ |
"FIELD_BIDIRECT_16X8", |
FIELD_BIDIRECT_16X8, |
field_bidirect_16x8_kernel_gen5, |
sizeof(field_bidirect_16x8_kernel_gen5), |
NULL |
} |
}; |
static void |
i965_media_mpeg2_surface_state(VADriverContextP ctx, |
int index, |
struct object_surface *obj_surface, |
unsigned long offset, |
int w, int h, |
Bool is_dst, |
int vert_line_stride, |
int vert_line_stride_ofs, |
struct i965_media_context *media_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_surface_state *ss; |
dri_bo *bo; |
uint32_t write_domain, read_domain; |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state", |
sizeof(struct i965_surface_state), 32); |
assert(bo); |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
ss = bo->virtual; |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_type = I965_SURFACE_2D; |
ss->ss0.surface_format = I965_SURFACEFORMAT_R8_SINT; |
ss->ss0.vert_line_stride = vert_line_stride; |
ss->ss0.vert_line_stride_ofs = vert_line_stride_ofs; |
ss->ss1.base_addr = obj_surface->bo->offset + offset; |
ss->ss2.width = w - 1; |
ss->ss2.height = h - 1; |
ss->ss3.pitch = w - 1; |
if (is_dst) { |
write_domain = I915_GEM_DOMAIN_RENDER; |
read_domain = I915_GEM_DOMAIN_RENDER; |
} else { |
write_domain = 0; |
read_domain = I915_GEM_DOMAIN_SAMPLER; |
} |
dri_bo_emit_reloc(bo, |
read_domain, write_domain, |
offset, |
offsetof(struct i965_surface_state, ss1), |
obj_surface->bo); |
dri_bo_unmap(bo); |
assert(index < MAX_MEDIA_SURFACES); |
// assert(media_context->surface_state[index].bo == NULL); |
media_context->surface_state[index].bo = bo; |
} |
static void |
i965_media_mpeg2_surface_setup(VADriverContextP ctx, |
int base_index, |
struct object_surface *obj_surface, |
Bool is_dst, |
int picture_structure, |
int surface, |
struct i965_media_context *media_context) |
{ |
int w = obj_surface->width; |
int h = obj_surface->height; |
i965_check_alloc_surface_bo(ctx, obj_surface, 0, VA_FOURCC('I','4','2','0'), SUBSAMPLE_YUV420); |
if (picture_structure == MPEG_FRAME) { |
i965_media_mpeg2_surface_state(ctx, base_index + 0, obj_surface, |
0, w, h, |
is_dst, 0, 0, |
media_context); |
i965_media_mpeg2_surface_state(ctx, base_index + 1, obj_surface, |
w * h, w / 2, h / 2, |
is_dst, 0, 0, |
media_context); |
i965_media_mpeg2_surface_state(ctx, base_index + 2, obj_surface, |
w * h + w * h / 4, w / 2, h / 2, |
is_dst, 0, 0, |
media_context); |
} else { |
if (surface == SURFACE_TARGET) { |
i965_media_mpeg2_surface_state(ctx, 3, obj_surface, |
0, w, h, |
False, 0, 0, |
media_context); |
i965_media_mpeg2_surface_state(ctx, 10, obj_surface, |
w * h, w / 2, h / 2, |
False, 0, 0, |
media_context); |
i965_media_mpeg2_surface_state(ctx, 11, obj_surface, |
w * h + w * h / 4, w / 2, h / 2, |
False, 0, 0, |
media_context); |
if (picture_structure == MPEG_TOP_FIELD) { |
i965_media_mpeg2_surface_state(ctx, base_index + 0, obj_surface, |
0, w, h, |
True, 1, 0, |
media_context); |
i965_media_mpeg2_surface_state(ctx, base_index + 1, obj_surface, |
w * h, w / 2, h / 2, |
True, 1, 0, |
media_context); |
i965_media_mpeg2_surface_state(ctx, base_index + 2, obj_surface, |
w * h + w * h / 4, w / 2, h / 2, |
True, 1, 0, |
media_context); |
} else { |
assert(picture_structure == MPEG_BOTTOM_FIELD); |
i965_media_mpeg2_surface_state(ctx, base_index + 0, obj_surface, |
0, w, h, |
True, 1, 1, |
media_context); |
i965_media_mpeg2_surface_state(ctx, base_index + 1, obj_surface, |
w * h, w / 2, h / 2, |
True, 1, 1, |
media_context); |
i965_media_mpeg2_surface_state(ctx, base_index + 2, obj_surface, |
w * h + w * h / 4, w / 2, h / 2, |
True, 1, 1, |
media_context); |
} |
} else { |
i965_media_mpeg2_surface_state(ctx, base_index + 0, obj_surface, |
0, w, h, |
is_dst, 0, 0, |
media_context); |
i965_media_mpeg2_surface_state(ctx, base_index + 1, obj_surface, |
w * h, w / 2, h / 2, |
is_dst, 0, 0, |
media_context); |
i965_media_mpeg2_surface_state(ctx, base_index + 2, obj_surface, |
w * h + w * h / 4, w / 2, h / 2, |
is_dst, 0, 0, |
media_context); |
} |
} |
} |
void |
i965_media_mpeg2_surfaces_setup(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
VAPictureParameterBufferMPEG2 *param; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
obj_surface = SURFACE(decode_state->current_render_target); |
assert(obj_surface); |
i965_media_mpeg2_surface_setup(ctx, 0, obj_surface, True, |
param->picture_coding_extension.bits.picture_structure, |
SURFACE_TARGET, |
media_context); |
obj_surface = SURFACE(param->forward_reference_picture); |
if (!obj_surface) { |
// assert(param->picture_coding_type == 1); /* I-picture */ |
} else { |
i965_media_mpeg2_surface_setup(ctx, 4, obj_surface, False, |
param->picture_coding_extension.bits.picture_structure, |
SURFACE_FORWARD, |
media_context); |
obj_surface = SURFACE(param->backward_reference_picture); |
if (!obj_surface) { |
assert(param->picture_coding_type == 2); /* P-picture */ |
obj_surface = SURFACE(param->forward_reference_picture); |
i965_media_mpeg2_surface_setup(ctx, 7, obj_surface, False, |
param->picture_coding_extension.bits.picture_structure, |
SURFACE_BACKWARD, |
media_context); |
} else { |
assert(param->picture_coding_type == 3); /* B-picture */ |
i965_media_mpeg2_surface_setup(ctx, 7, obj_surface, False, |
param->picture_coding_extension.bits.picture_structure, |
SURFACE_BIDIRECT, |
media_context); |
} |
} |
} |
static void |
i965_media_mpeg2_binding_table(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
int i; |
unsigned int *binding_table; |
dri_bo *bo = media_context->binding_table.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
binding_table = bo->virtual; |
memset(binding_table, 0, bo->size); |
for (i = 0; i < MAX_MEDIA_SURFACES; i++) { |
if (media_context->surface_state[i].bo) { |
binding_table[i] = media_context->surface_state[i].bo->offset; |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
i * sizeof(*binding_table), |
media_context->surface_state[i].bo); |
} |
} |
dri_bo_unmap(media_context->binding_table.bo); |
} |
static void |
i965_media_mpeg2_vfe_state(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct i965_vfe_state *vfe_state; |
dri_bo *bo; |
bo = media_context->vfe_state.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
vfe_state = bo->virtual; |
memset(vfe_state, 0, sizeof(*vfe_state)); |
vfe_state->vfe0.extend_vfe_state_present = 1; |
vfe_state->vfe1.vfe_mode = VFE_VLD_MODE; |
vfe_state->vfe1.num_urb_entries = media_context->urb.num_vfe_entries; |
vfe_state->vfe1.children_present = 0; |
vfe_state->vfe1.urb_entry_alloc_size = media_context->urb.size_vfe_entry - 1; |
vfe_state->vfe1.max_threads = media_context->urb.num_vfe_entries - 1; |
vfe_state->vfe2.interface_descriptor_base = |
media_context->idrt.bo->offset >> 4; /* reloc */ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
offsetof(struct i965_vfe_state, vfe2), |
media_context->idrt.bo); |
dri_bo_unmap(bo); |
} |
static void |
i965_media_mpeg2_interface_descriptor_remap_table(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct i965_mpeg2_context *i965_mpeg2_context = (struct i965_mpeg2_context *)media_context->private_context; |
struct i965_interface_descriptor *desc; |
int i; |
dri_bo *bo; |
bo = media_context->idrt.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
desc = bo->virtual; |
for (i = 0; i < NUM_MPEG2_VLD_KERNELS; i++) { |
memset(desc, 0, sizeof(*desc)); |
desc->desc0.grf_reg_blocks = 15; |
desc->desc0.kernel_start_pointer = i965_mpeg2_context->vld_kernels[i].bo->offset >> 6; /* reloc */ |
desc->desc1.const_urb_entry_read_offset = 0; |
desc->desc1.const_urb_entry_read_len = 30; |
desc->desc3.binding_table_entry_count = 0; |
desc->desc3.binding_table_pointer = |
media_context->binding_table.bo->offset >> 5; /*reloc */ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc0.grf_reg_blocks, |
i * sizeof(*desc) + offsetof(struct i965_interface_descriptor, desc0), |
i965_mpeg2_context->vld_kernels[i].bo); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc3.binding_table_entry_count, |
i * sizeof(*desc) + offsetof(struct i965_interface_descriptor, desc3), |
media_context->binding_table.bo); |
desc++; |
} |
dri_bo_unmap(bo); |
} |
void |
i965_media_mpeg2_vld_state(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct i965_vld_state *vld_state; |
VAPictureParameterBufferMPEG2 *param; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
assert(media_context->extended_state.bo); |
dri_bo_map(media_context->extended_state.bo, 1); |
assert(media_context->extended_state.bo->virtual); |
vld_state = media_context->extended_state.bo->virtual; |
memset(vld_state, 0, sizeof(*vld_state)); |
vld_state->vld0.f_code_0_0 = ((param->f_code >> 12) & 0xf); |
vld_state->vld0.f_code_0_1 = ((param->f_code >> 8) & 0xf); |
vld_state->vld0.f_code_1_0 = ((param->f_code >> 4) & 0xf); |
vld_state->vld0.f_code_1_1 = (param->f_code & 0xf); |
vld_state->vld0.intra_dc_precision = param->picture_coding_extension.bits.intra_dc_precision; |
vld_state->vld0.picture_structure = param->picture_coding_extension.bits.picture_structure; |
vld_state->vld0.top_field_first = param->picture_coding_extension.bits.top_field_first; |
vld_state->vld0.frame_predict_frame_dct = param->picture_coding_extension.bits.frame_pred_frame_dct; |
vld_state->vld0.concealment_motion_vector = param->picture_coding_extension.bits.concealment_motion_vectors; |
vld_state->vld0.quantizer_scale_type = param->picture_coding_extension.bits.q_scale_type; |
vld_state->vld0.intra_vlc_format = param->picture_coding_extension.bits.intra_vlc_format; |
vld_state->vld0.scan_order = param->picture_coding_extension.bits.alternate_scan; |
vld_state->vld1.picture_coding_type = param->picture_coding_type; |
if (vld_state->vld0.picture_structure == MPEG_FRAME) { |
/*frame picture*/ |
vld_state->desc_remap_table0.index_0 = FRAME_INTRA; |
vld_state->desc_remap_table0.index_1 = FRAME_FRAME_PRED_FORWARD; |
vld_state->desc_remap_table0.index_2 = FRAME_FIELD_PRED_FORWARD; |
vld_state->desc_remap_table0.index_3 = FRAME_FIELD_PRED_BIDIRECT; /* dual prime */ |
vld_state->desc_remap_table0.index_4 = FRAME_FRAME_PRED_BACKWARD; |
vld_state->desc_remap_table0.index_5 = FRAME_FIELD_PRED_BACKWARD; |
vld_state->desc_remap_table0.index_6 = FRAME_FRAME_PRED_BIDIRECT; |
vld_state->desc_remap_table0.index_7 = FRAME_FIELD_PRED_BIDIRECT; |
vld_state->desc_remap_table1.index_8 = FRAME_INTRA; |
vld_state->desc_remap_table1.index_9 = FRAME_FRAME_PRED_FORWARD; |
vld_state->desc_remap_table1.index_10 = FRAME_FIELD_PRED_FORWARD; |
vld_state->desc_remap_table1.index_11 = FRAME_FIELD_PRED_BIDIRECT; |
vld_state->desc_remap_table1.index_12 = FRAME_FRAME_PRED_BACKWARD; |
vld_state->desc_remap_table1.index_13 = FRAME_FIELD_PRED_BACKWARD; |
vld_state->desc_remap_table1.index_14 = FRAME_FRAME_PRED_BIDIRECT; |
vld_state->desc_remap_table1.index_15 = FRAME_FIELD_PRED_BIDIRECT; |
} else { |
/*field picture*/ |
vld_state->desc_remap_table0.index_0 = FIELD_INTRA; |
vld_state->desc_remap_table0.index_1 = FIELD_FORWARD; |
vld_state->desc_remap_table0.index_2 = FIELD_FORWARD_16X8; |
vld_state->desc_remap_table0.index_3 = FIELD_BIDIRECT; /* dual prime */ |
vld_state->desc_remap_table0.index_4 = FIELD_BACKWARD; |
vld_state->desc_remap_table0.index_5 = FIELD_BACKWARD_16X8; |
vld_state->desc_remap_table0.index_6 = FIELD_BIDIRECT; |
vld_state->desc_remap_table0.index_7 = FIELD_BIDIRECT_16X8; |
} |
dri_bo_unmap(media_context->extended_state.bo); |
} |
static void |
i965_media_mpeg2_upload_constants(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct i965_mpeg2_context *i965_mpeg2_context = (struct i965_mpeg2_context *)media_context->private_context; |
VAIQMatrixBufferMPEG2 * const gen_iq_matrix = &i965_mpeg2_context->iq_matrix; |
int i; |
unsigned char *constant_buffer; |
unsigned int *lib_reloc; |
int lib_reloc_offset = 0; |
dri_bo_map(media_context->curbe.bo, 1); |
assert(media_context->curbe.bo->virtual); |
constant_buffer = media_context->curbe.bo->virtual; |
/* iq_matrix */ |
if (decode_state->iq_matrix && decode_state->iq_matrix->buffer) { |
VAIQMatrixBufferMPEG2 * const iq_matrix = |
(VAIQMatrixBufferMPEG2 *)decode_state->iq_matrix->buffer; |
gen_iq_matrix->load_intra_quantiser_matrix = |
iq_matrix->load_intra_quantiser_matrix; |
if (iq_matrix->load_intra_quantiser_matrix) { |
for (i = 0; i < 64; i++) |
gen_iq_matrix->intra_quantiser_matrix[zigzag_direct[i]] = |
iq_matrix->intra_quantiser_matrix[i]; |
} |
gen_iq_matrix->load_non_intra_quantiser_matrix = |
iq_matrix->load_non_intra_quantiser_matrix; |
if (iq_matrix->load_non_intra_quantiser_matrix) { |
for (i = 0; i < 64; i++) |
gen_iq_matrix->non_intra_quantiser_matrix[zigzag_direct[i]] = |
iq_matrix->non_intra_quantiser_matrix[i]; |
} |
/* no chroma quantisation matrices for 4:2:0 data */ |
} |
if (gen_iq_matrix->load_intra_quantiser_matrix) { |
unsigned char * const qm = constant_buffer; |
memcpy(qm, gen_iq_matrix->intra_quantiser_matrix, 64); |
} |
if (gen_iq_matrix->load_non_intra_quantiser_matrix) { |
unsigned char * const qm = constant_buffer + 64; |
memcpy(qm, gen_iq_matrix->non_intra_quantiser_matrix, 64); |
} |
/* idct table */ |
memcpy(constant_buffer + 128, idct_table, sizeof(idct_table)); |
/* idct lib reloc */ |
lib_reloc_offset = 128 + sizeof(idct_table); |
lib_reloc = (unsigned int *)(constant_buffer + lib_reloc_offset); |
for (i = 0; i < 8; i++) { |
lib_reloc[i] = i965_mpeg2_context->vld_kernels[LIB_INTERFACE].bo->offset; |
dri_bo_emit_reloc(media_context->curbe.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
lib_reloc_offset + i * sizeof(unsigned int), |
i965_mpeg2_context->vld_kernels[LIB_INTERFACE].bo); |
} |
dri_bo_unmap(media_context->curbe.bo); |
} |
static void |
i965_media_mpeg2_states_setup(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
i965_media_mpeg2_surfaces_setup(ctx, decode_state, media_context); |
i965_media_mpeg2_binding_table(ctx, media_context); |
i965_media_mpeg2_interface_descriptor_remap_table(ctx, media_context); |
i965_media_mpeg2_vld_state(ctx, decode_state, media_context); |
i965_media_mpeg2_vfe_state(ctx, media_context); |
i965_media_mpeg2_upload_constants(ctx, decode_state, media_context); |
} |
static void |
i965_media_mpeg2_objects(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct i965_mpeg2_context * const i965_mpeg2_context = media_context->private_context; |
struct intel_batchbuffer *batch = media_context->base.batch; |
VASliceParameterBufferMPEG2 *slice_param; |
VAPictureParameterBufferMPEG2 *pic_param; |
int i, j; |
assert(decode_state->pic_param && decode_state->pic_param->buffer); |
pic_param = (VAPictureParameterBufferMPEG2 *)decode_state->pic_param->buffer; |
if (i965_mpeg2_context->wa_slice_vertical_position < 0) |
i965_mpeg2_context->wa_slice_vertical_position = |
mpeg2_wa_slice_vertical_position(decode_state, pic_param); |
for (j = 0; j < decode_state->num_slice_params; j++) { |
assert(decode_state->slice_params[j] && decode_state->slice_params[j]->buffer); |
assert(decode_state->slice_datas[j] && decode_state->slice_datas[j]->bo); |
slice_param = (VASliceParameterBufferMPEG2 *)decode_state->slice_params[j]->buffer; |
for (i = 0; i < decode_state->slice_params[j]->num_elements; i++) { |
int vpos, hpos, is_field_pic = 0; |
if (i965_mpeg2_context->wa_slice_vertical_position > 0 && |
(pic_param->picture_coding_extension.bits.picture_structure == MPEG_TOP_FIELD || |
pic_param->picture_coding_extension.bits.picture_structure == MPEG_BOTTOM_FIELD)) |
is_field_pic = 1; |
assert(slice_param->slice_data_flag == VA_SLICE_DATA_FLAG_ALL); |
vpos = slice_param->slice_vertical_position / (1 + is_field_pic); |
hpos = slice_param->slice_horizontal_position; |
BEGIN_BATCH(batch, 6); |
OUT_BATCH(batch, CMD_MEDIA_OBJECT | 4); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, slice_param->slice_data_size - (slice_param->macroblock_offset >> 3)); |
OUT_RELOC(batch, decode_state->slice_datas[j]->bo, |
I915_GEM_DOMAIN_SAMPLER, 0, |
slice_param->slice_data_offset + (slice_param->macroblock_offset >> 3)); |
OUT_BATCH(batch, |
((hpos << 24) | |
(vpos << 16) | |
(127 << 8) | |
(slice_param->macroblock_offset & 0x7))); |
OUT_BATCH(batch, slice_param->quantiser_scale_code << 24); |
ADVANCE_BATCH(batch); |
slice_param++; |
} |
} |
} |
static void |
i965_media_mpeg2_free_private_context(void **data) |
{ |
struct i965_mpeg2_context *i965_mpeg2_context = *data; |
int i; |
if (i965_mpeg2_context == NULL) |
return; |
for (i = 0; i < NUM_MPEG2_VLD_KERNELS; i++) { |
struct i965_kernel *kernel = &i965_mpeg2_context->vld_kernels[i]; |
dri_bo_unreference(kernel->bo); |
kernel->bo = NULL; |
} |
free(i965_mpeg2_context); |
*data = NULL; |
} |
void |
i965_media_mpeg2_decode_init(VADriverContextP ctx, |
struct decode_state *decode_state, |
struct i965_media_context *media_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
dri_bo *bo; |
dri_bo_unreference(media_context->indirect_object.bo); |
media_context->indirect_object.bo = NULL; |
media_context->extended_state.enabled = 1; |
dri_bo_unreference(media_context->extended_state.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vld state", |
sizeof(struct i965_vld_state), 32); |
assert(bo); |
media_context->extended_state.bo = bo; |
} |
void |
i965_media_mpeg2_dec_context_init(VADriverContextP ctx, struct i965_media_context *media_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_mpeg2_context *i965_mpeg2_context; |
int i; |
i965_mpeg2_context = calloc(1, sizeof(struct i965_mpeg2_context)); |
i965_mpeg2_context->wa_slice_vertical_position = -1; |
/* kernel */ |
assert(NUM_MPEG2_VLD_KERNELS == (sizeof(mpeg2_vld_kernels_gen4) / |
sizeof(mpeg2_vld_kernels_gen4[0]))); |
assert(NUM_MPEG2_VLD_KERNELS == (sizeof(mpeg2_vld_kernels_gen5) / |
sizeof(mpeg2_vld_kernels_gen5[0]))); |
assert(NUM_MPEG2_VLD_KERNELS <= MAX_INTERFACE_DESC); |
if (IS_IRONLAKE(i965->intel.device_id)) |
memcpy(i965_mpeg2_context->vld_kernels, mpeg2_vld_kernels_gen5, sizeof(i965_mpeg2_context->vld_kernels)); |
else |
memcpy(i965_mpeg2_context->vld_kernels, mpeg2_vld_kernels_gen4, sizeof(i965_mpeg2_context->vld_kernels)); |
for (i = 0; i < NUM_MPEG2_VLD_KERNELS; i++) { |
struct i965_kernel *kernel = &i965_mpeg2_context->vld_kernels[i]; |
kernel->bo = dri_bo_alloc(i965->intel.bufmgr, |
kernel->name, |
kernel->size, 64); |
assert(kernel->bo); |
dri_bo_subdata(kernel->bo, 0, kernel->size, kernel->bin); |
} |
/* URB */ |
media_context->urb.num_vfe_entries = 28; |
media_context->urb.size_vfe_entry = 13; |
media_context->urb.num_cs_entries = 1; |
media_context->urb.size_cs_entry = 16; |
media_context->urb.vfe_start = 0; |
media_context->urb.cs_start = media_context->urb.vfe_start + |
media_context->urb.num_vfe_entries * media_context->urb.size_vfe_entry; |
assert(media_context->urb.cs_start + |
media_context->urb.num_cs_entries * media_context->urb.size_cs_entry <= URB_SIZE((&i965->intel))); |
/* hook functions */ |
media_context->media_states_setup = i965_media_mpeg2_states_setup; |
media_context->media_objects = i965_media_mpeg2_objects; |
media_context->private_context = i965_mpeg2_context; |
media_context->free_private_context = i965_media_mpeg2_free_private_context; |
} |
/drivers/video/i965/i965_media_mpeg2.h |
---|
0,0 → 1,53 |
/* |
* Copyright © 2009 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* Zou Nan hai <nanhai.zou@intel.com> |
* |
*/ |
#ifndef _I965_MEDIA_MPEG2_H_ |
#define _I965_MEDIA_MPEG2_H_ |
#include <xf86drm.h> |
#include <drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
struct decode_state; |
struct i965_media_context; |
#define NUM_MPEG2_VLD_KERNELS 15 |
struct i965_mpeg2_context |
{ |
struct i965_kernel vld_kernels[NUM_MPEG2_VLD_KERNELS]; |
VAIQMatrixBufferMPEG2 iq_matrix; |
int wa_slice_vertical_position; |
}; |
void i965_media_mpeg2_decode_init(VADriverContextP ctx, struct decode_state * decode_state, struct i965_media_context *media_context); |
void i965_media_mpeg2_dec_context_init(VADriverContextP ctx, struct i965_media_context *media_context); |
#endif /* _I965_MEDIA_MPEG2_H_ */ |
/drivers/video/i965/i965_mutext.h |
---|
0,0 → 1,52 |
#ifndef _I965_MUTEX_H_ |
#define _I965_MUTEX_H_ |
#include "intel_compiler.h" |
#if defined PTHREADS |
#include <pthread.h> |
typedef pthread_mutex_t _I965Mutex; |
static INLINE void _i965InitMutex(_I965Mutex *m) |
{ |
pthread_mutex_init(m, NULL); |
} |
static INLINE void |
_i965DestroyMutex(_I965Mutex *m) |
{ |
pthread_mutex_destroy(m); |
} |
static INLINE void |
_i965LockMutex(_I965Mutex *m) |
{ |
pthread_mutex_lock(m); |
} |
static INLINE void |
_i965UnlockMutex(_I965Mutex *m) |
{ |
pthread_mutex_unlock(m); |
} |
#define _I965_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER |
#define _I965_DECLARE_MUTEX(m) \ |
_I965Mutex m = _I965_MUTEX_INITIALIZER |
#else |
typedef int _I965Mutex; |
static INLINE void _i965InitMutex(_I965Mutex *m) { (void) m; } |
static INLINE void _i965DestroyMutex(_I965Mutex *m) { (void) m; } |
static INLINE void _i965LockMutex(_I965Mutex *m) { (void) m; } |
static INLINE void _i965UnlockMutex(_I965Mutex *m) { (void) m; } |
#define _I965_MUTEX_INITIALIZER 0 |
#define _I965_DECLARE_MUTEX(m) \ |
_I965Mutex m = _I965_MUTEX_INITIALIZER |
#endif |
#endif /* _I965_MUTEX_H_ */ |
/drivers/video/i965/i965_post_processing.c |
---|
0,0 → 1,4599 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_structs.h" |
#include "i965_drv_video.h" |
#include "gen75_vpp_vebox.h" |
#include "i965_post_processing.h" |
#include "i965_render.h" |
#define HAS_PP(ctx) (IS_IRONLAKE((ctx)->intel.device_id) || \ |
IS_GEN6((ctx)->intel.device_id) || \ |
IS_GEN7((ctx)->intel.device_id)) |
#define SURFACE_STATE_PADDED_SIZE_0_I965 ALIGN(sizeof(struct i965_surface_state), 32) |
#define SURFACE_STATE_PADDED_SIZE_1_I965 ALIGN(sizeof(struct i965_surface_state2), 32) |
#define SURFACE_STATE_PADDED_SIZE_I965 MAX(SURFACE_STATE_PADDED_SIZE_0_I965, SURFACE_STATE_PADDED_SIZE_1_I965) |
#define SURFACE_STATE_PADDED_SIZE_0_GEN7 ALIGN(sizeof(struct gen7_surface_state), 32) |
#define SURFACE_STATE_PADDED_SIZE_1_GEN7 ALIGN(sizeof(struct gen7_surface_state2), 32) |
#define SURFACE_STATE_PADDED_SIZE_GEN7 MAX(SURFACE_STATE_PADDED_SIZE_0_GEN7, SURFACE_STATE_PADDED_SIZE_1_GEN7) |
#define SURFACE_STATE_PADDED_SIZE MAX(SURFACE_STATE_PADDED_SIZE_I965, SURFACE_STATE_PADDED_SIZE_GEN7) |
#define SURFACE_STATE_OFFSET(index) (SURFACE_STATE_PADDED_SIZE * index) |
#define BINDING_TABLE_OFFSET SURFACE_STATE_OFFSET(MAX_PP_SURFACES) |
#define GPU_ASM_BLOCK_WIDTH 16 |
#define GPU_ASM_BLOCK_HEIGHT 8 |
#define GPU_ASM_X_OFFSET_ALIGNMENT 4 |
static const uint32_t pp_null_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/null.g4b.gen5" |
}; |
static const uint32_t pp_nv12_load_save_nv12_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_load_save_nv12.g4b.gen5" |
}; |
static const uint32_t pp_nv12_load_save_pl3_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_load_save_pl3.g4b.gen5" |
}; |
static const uint32_t pp_pl3_load_save_nv12_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/pl3_load_save_nv12.g4b.gen5" |
}; |
static const uint32_t pp_pl3_load_save_pl3_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/pl3_load_save_pl3.g4b.gen5" |
}; |
static const uint32_t pp_nv12_scaling_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_scaling_nv12.g4b.gen5" |
}; |
static const uint32_t pp_nv12_avs_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_avs_nv12.g4b.gen5" |
}; |
static const uint32_t pp_nv12_dndi_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_dndi_nv12.g4b.gen5" |
}; |
static const uint32_t pp_nv12_dn_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_dn_nv12.g4b.gen5" |
}; |
static const uint32_t pp_nv12_load_save_pa_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_load_save_pa.g4b.gen5" |
}; |
static const uint32_t pp_pl3_load_save_pa_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/pl3_load_save_pa.g4b.gen5" |
}; |
static const uint32_t pp_pa_load_save_nv12_gen5[][4] = { |
#include "shaders/post_processing/gen5_6/pa_load_save_nv12.g4b.gen5" |
}; |
static VAStatus pp_null_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
static VAStatus pp_nv12_avs_initialize_nlas(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
static VAStatus pp_nv12_scaling_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
static VAStatus gen6_nv12_scaling_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
static VAStatus pp_plx_load_save_plx_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
static VAStatus pp_nv12_dndi_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
static VAStatus pp_nv12_dn_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
static struct pp_module pp_modules_gen5[] = { |
{ |
{ |
"NULL module (for testing)", |
PP_NULL, |
pp_null_gen5, |
sizeof(pp_null_gen5), |
NULL, |
}, |
pp_null_initialize, |
}, |
{ |
{ |
"NV12_NV12", |
PP_NV12_LOAD_SAVE_N12, |
pp_nv12_load_save_nv12_gen5, |
sizeof(pp_nv12_load_save_nv12_gen5), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"NV12_PL3", |
PP_NV12_LOAD_SAVE_PL3, |
pp_nv12_load_save_pl3_gen5, |
sizeof(pp_nv12_load_save_pl3_gen5), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"PL3_NV12", |
PP_PL3_LOAD_SAVE_N12, |
pp_pl3_load_save_nv12_gen5, |
sizeof(pp_pl3_load_save_nv12_gen5), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"PL3_PL3", |
PP_PL3_LOAD_SAVE_PL3, |
pp_pl3_load_save_pl3_gen5, |
sizeof(pp_pl3_load_save_pl3_gen5), |
NULL, |
}, |
pp_plx_load_save_plx_initialize |
}, |
{ |
{ |
"NV12 Scaling module", |
PP_NV12_SCALING, |
pp_nv12_scaling_gen5, |
sizeof(pp_nv12_scaling_gen5), |
NULL, |
}, |
pp_nv12_scaling_initialize, |
}, |
{ |
{ |
"NV12 AVS module", |
PP_NV12_AVS, |
pp_nv12_avs_gen5, |
sizeof(pp_nv12_avs_gen5), |
NULL, |
}, |
pp_nv12_avs_initialize_nlas, |
}, |
{ |
{ |
"NV12 DNDI module", |
PP_NV12_DNDI, |
pp_nv12_dndi_gen5, |
sizeof(pp_nv12_dndi_gen5), |
NULL, |
}, |
pp_nv12_dndi_initialize, |
}, |
{ |
{ |
"NV12 DN module", |
PP_NV12_DN, |
pp_nv12_dn_gen5, |
sizeof(pp_nv12_dn_gen5), |
NULL, |
}, |
pp_nv12_dn_initialize, |
}, |
{ |
{ |
"NV12_PA module", |
PP_NV12_LOAD_SAVE_PA, |
pp_nv12_load_save_pa_gen5, |
sizeof(pp_nv12_load_save_pa_gen5), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"PL3_PA module", |
PP_PL3_LOAD_SAVE_PA, |
pp_pl3_load_save_pa_gen5, |
sizeof(pp_pl3_load_save_pa_gen5), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"PA_NV12 module", |
PP_PA_LOAD_SAVE_NV12, |
pp_pa_load_save_nv12_gen5, |
sizeof(pp_pa_load_save_nv12_gen5), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
}; |
static const uint32_t pp_null_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/null.g6b" |
}; |
static const uint32_t pp_nv12_load_save_nv12_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_load_save_nv12.g6b" |
}; |
static const uint32_t pp_nv12_load_save_pl3_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_load_save_pl3.g6b" |
}; |
static const uint32_t pp_pl3_load_save_nv12_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/pl3_load_save_nv12.g6b" |
}; |
static const uint32_t pp_pl3_load_save_pl3_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/pl3_load_save_pl3.g6b" |
}; |
static const uint32_t pp_nv12_scaling_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_avs_nv12.g6b" |
}; |
static const uint32_t pp_nv12_avs_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_avs_nv12.g6b" |
}; |
static const uint32_t pp_nv12_dndi_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_dndi_nv12.g6b" |
}; |
static const uint32_t pp_nv12_dn_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_dn_nv12.g6b" |
}; |
static const uint32_t pp_nv12_load_save_pa_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/nv12_load_save_pa.g6b" |
}; |
static const uint32_t pp_pa_load_save_nv12_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/pa_load_save_nv12.g6b" |
}; |
static const uint32_t pp_pl3_load_save_pa_gen6[][4] = { |
#include "shaders/post_processing/gen5_6/pl3_load_save_pa.g6b" |
}; |
static struct pp_module pp_modules_gen6[] = { |
{ |
{ |
"NULL module (for testing)", |
PP_NULL, |
pp_null_gen6, |
sizeof(pp_null_gen6), |
NULL, |
}, |
pp_null_initialize, |
}, |
{ |
{ |
"NV12_NV12", |
PP_NV12_LOAD_SAVE_N12, |
pp_nv12_load_save_nv12_gen6, |
sizeof(pp_nv12_load_save_nv12_gen6), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"NV12_PL3", |
PP_NV12_LOAD_SAVE_PL3, |
pp_nv12_load_save_pl3_gen6, |
sizeof(pp_nv12_load_save_pl3_gen6), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"PL3_NV12", |
PP_PL3_LOAD_SAVE_N12, |
pp_pl3_load_save_nv12_gen6, |
sizeof(pp_pl3_load_save_nv12_gen6), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"PL3_PL3", |
PP_PL3_LOAD_SAVE_N12, |
pp_pl3_load_save_pl3_gen6, |
sizeof(pp_pl3_load_save_pl3_gen6), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"NV12 Scaling module", |
PP_NV12_SCALING, |
pp_nv12_scaling_gen6, |
sizeof(pp_nv12_scaling_gen6), |
NULL, |
}, |
gen6_nv12_scaling_initialize, |
}, |
{ |
{ |
"NV12 AVS module", |
PP_NV12_AVS, |
pp_nv12_avs_gen6, |
sizeof(pp_nv12_avs_gen6), |
NULL, |
}, |
pp_nv12_avs_initialize_nlas, |
}, |
{ |
{ |
"NV12 DNDI module", |
PP_NV12_DNDI, |
pp_nv12_dndi_gen6, |
sizeof(pp_nv12_dndi_gen6), |
NULL, |
}, |
pp_nv12_dndi_initialize, |
}, |
{ |
{ |
"NV12 DN module", |
PP_NV12_DN, |
pp_nv12_dn_gen6, |
sizeof(pp_nv12_dn_gen6), |
NULL, |
}, |
pp_nv12_dn_initialize, |
}, |
{ |
{ |
"NV12_PA module", |
PP_NV12_LOAD_SAVE_PA, |
pp_nv12_load_save_pa_gen6, |
sizeof(pp_nv12_load_save_pa_gen6), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"PL3_PA module", |
PP_PL3_LOAD_SAVE_PA, |
pp_pl3_load_save_pa_gen6, |
sizeof(pp_pl3_load_save_pa_gen6), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
{ |
{ |
"PA_NV12 module", |
PP_PA_LOAD_SAVE_NV12, |
pp_pa_load_save_nv12_gen6, |
sizeof(pp_pa_load_save_nv12_gen6), |
NULL, |
}, |
pp_plx_load_save_plx_initialize, |
}, |
}; |
static const uint32_t pp_null_gen7[][4] = { |
}; |
static const uint32_t pp_nv12_load_save_nv12_gen7[][4] = { |
#include "shaders/post_processing/gen7/pl2_to_pl2.g7b" |
}; |
static const uint32_t pp_nv12_load_save_pl3_gen7[][4] = { |
#include "shaders/post_processing/gen7/pl2_to_pl3.g7b" |
}; |
static const uint32_t pp_pl3_load_save_nv12_gen7[][4] = { |
#include "shaders/post_processing/gen7/pl3_to_pl2.g7b" |
}; |
static const uint32_t pp_pl3_load_save_pl3_gen7[][4] = { |
#include "shaders/post_processing/gen7/pl3_to_pl3.g7b" |
}; |
static const uint32_t pp_nv12_scaling_gen7[][4] = { |
#include "shaders/post_processing/gen7/avs.g7b" |
}; |
static const uint32_t pp_nv12_avs_gen7[][4] = { |
#include "shaders/post_processing/gen7/avs.g7b" |
}; |
static const uint32_t pp_nv12_dndi_gen7[][4] = { |
#include "shaders/post_processing/gen7/dndi.g7b" |
}; |
static const uint32_t pp_nv12_dn_gen7[][4] = { |
#include "shaders/post_processing/gen7/nv12_dn_nv12.g7b" |
}; |
static const uint32_t pp_nv12_load_save_pa_gen7[][4] = { |
#include "shaders/post_processing/gen7/pl2_to_pa.g7b" |
}; |
static const uint32_t pp_pl3_load_save_pa_gen7[][4] = { |
#include "shaders/post_processing/gen7/pl3_to_pa.g7b" |
}; |
static const uint32_t pp_pa_load_save_nv12_gen7[][4] = { |
#include "shaders/post_processing/gen7/pa_to_pl2.g7b" |
}; |
static VAStatus gen7_pp_plx_avs_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
static VAStatus gen7_pp_nv12_dndi_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
static VAStatus gen7_pp_nv12_dn_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
static struct pp_module pp_modules_gen7[] = { |
{ |
{ |
"NULL module (for testing)", |
PP_NULL, |
pp_null_gen7, |
sizeof(pp_null_gen7), |
NULL, |
}, |
pp_null_initialize, |
}, |
{ |
{ |
"NV12_NV12", |
PP_NV12_LOAD_SAVE_N12, |
pp_nv12_load_save_nv12_gen7, |
sizeof(pp_nv12_load_save_nv12_gen7), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"NV12_PL3", |
PP_NV12_LOAD_SAVE_PL3, |
pp_nv12_load_save_pl3_gen7, |
sizeof(pp_nv12_load_save_pl3_gen7), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"PL3_NV12", |
PP_PL3_LOAD_SAVE_N12, |
pp_pl3_load_save_nv12_gen7, |
sizeof(pp_pl3_load_save_nv12_gen7), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"PL3_PL3", |
PP_PL3_LOAD_SAVE_N12, |
pp_pl3_load_save_pl3_gen7, |
sizeof(pp_pl3_load_save_pl3_gen7), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"NV12 Scaling module", |
PP_NV12_SCALING, |
pp_nv12_scaling_gen7, |
sizeof(pp_nv12_scaling_gen7), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"NV12 AVS module", |
PP_NV12_AVS, |
pp_nv12_avs_gen7, |
sizeof(pp_nv12_avs_gen7), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"NV12 DNDI module", |
PP_NV12_DNDI, |
pp_nv12_dndi_gen7, |
sizeof(pp_nv12_dndi_gen7), |
NULL, |
}, |
gen7_pp_nv12_dndi_initialize, |
}, |
{ |
{ |
"NV12 DN module", |
PP_NV12_DN, |
pp_nv12_dn_gen7, |
sizeof(pp_nv12_dn_gen7), |
NULL, |
}, |
gen7_pp_nv12_dn_initialize, |
}, |
{ |
{ |
"NV12_PA module", |
PP_NV12_LOAD_SAVE_PA, |
pp_nv12_load_save_pa_gen7, |
sizeof(pp_nv12_load_save_pa_gen7), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"PL3_PA module", |
PP_PL3_LOAD_SAVE_PA, |
pp_pl3_load_save_pa_gen7, |
sizeof(pp_pl3_load_save_pa_gen7), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"PA_NV12 module", |
PP_PA_LOAD_SAVE_NV12, |
pp_pa_load_save_nv12_gen7, |
sizeof(pp_pa_load_save_nv12_gen7), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
}; |
static const uint32_t pp_null_gen75[][4] = { |
}; |
static const uint32_t pp_nv12_load_save_nv12_gen75[][4] = { |
#include "shaders/post_processing/gen7/pl2_to_pl2.g75b" |
}; |
static const uint32_t pp_nv12_load_save_pl3_gen75[][4] = { |
#include "shaders/post_processing/gen7/pl2_to_pl3.g75b" |
}; |
static const uint32_t pp_pl3_load_save_nv12_gen75[][4] = { |
#include "shaders/post_processing/gen7/pl3_to_pl2.g75b" |
}; |
static const uint32_t pp_pl3_load_save_pl3_gen75[][4] = { |
#include "shaders/post_processing/gen7/pl3_to_pl3.g75b" |
}; |
static const uint32_t pp_nv12_scaling_gen75[][4] = { |
#include "shaders/post_processing/gen7/avs.g75b" |
}; |
static const uint32_t pp_nv12_avs_gen75[][4] = { |
#include "shaders/post_processing/gen7/avs.g75b" |
}; |
static const uint32_t pp_nv12_dndi_gen75[][4] = { |
// #include "shaders/post_processing/gen7/dndi.g75b" |
}; |
static const uint32_t pp_nv12_dn_gen75[][4] = { |
// #include "shaders/post_processing/gen7/nv12_dn_nv12.g75b" |
}; |
static const uint32_t pp_nv12_load_save_pa_gen75[][4] = { |
#include "shaders/post_processing/gen7/pl2_to_pa.g75b" |
}; |
static const uint32_t pp_pl3_load_save_pa_gen75[][4] = { |
#include "shaders/post_processing/gen7/pl3_to_pa.g75b" |
}; |
static const uint32_t pp_pa_load_save_nv12_gen75[][4] = { |
#include "shaders/post_processing/gen7/pa_to_pl2.g75b" |
}; |
static struct pp_module pp_modules_gen75[] = { |
{ |
{ |
"NULL module (for testing)", |
PP_NULL, |
pp_null_gen75, |
sizeof(pp_null_gen75), |
NULL, |
}, |
pp_null_initialize, |
}, |
{ |
{ |
"NV12_NV12", |
PP_NV12_LOAD_SAVE_N12, |
pp_nv12_load_save_nv12_gen75, |
sizeof(pp_nv12_load_save_nv12_gen75), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"NV12_PL3", |
PP_NV12_LOAD_SAVE_PL3, |
pp_nv12_load_save_pl3_gen75, |
sizeof(pp_nv12_load_save_pl3_gen75), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"PL3_NV12", |
PP_PL3_LOAD_SAVE_N12, |
pp_pl3_load_save_nv12_gen75, |
sizeof(pp_pl3_load_save_nv12_gen75), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"PL3_PL3", |
PP_PL3_LOAD_SAVE_N12, |
pp_pl3_load_save_pl3_gen75, |
sizeof(pp_pl3_load_save_pl3_gen75), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"NV12 Scaling module", |
PP_NV12_SCALING, |
pp_nv12_scaling_gen75, |
sizeof(pp_nv12_scaling_gen75), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"NV12 AVS module", |
PP_NV12_AVS, |
pp_nv12_avs_gen75, |
sizeof(pp_nv12_avs_gen75), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"NV12 DNDI module", |
PP_NV12_DNDI, |
pp_nv12_dndi_gen75, |
sizeof(pp_nv12_dndi_gen75), |
NULL, |
}, |
gen7_pp_nv12_dndi_initialize, |
}, |
{ |
{ |
"NV12 DN module", |
PP_NV12_DN, |
pp_nv12_dn_gen75, |
sizeof(pp_nv12_dn_gen75), |
NULL, |
}, |
gen7_pp_nv12_dn_initialize, |
}, |
{ |
{ |
"NV12_PA module", |
PP_NV12_LOAD_SAVE_PA, |
pp_nv12_load_save_pa_gen75, |
sizeof(pp_nv12_load_save_pa_gen75), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"PL3_PA module", |
PP_PL3_LOAD_SAVE_PA, |
pp_pl3_load_save_pa_gen75, |
sizeof(pp_pl3_load_save_pa_gen75), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
{ |
{ |
"PA_NV12 module", |
PP_PA_LOAD_SAVE_NV12, |
pp_pa_load_save_nv12_gen75, |
sizeof(pp_pa_load_save_nv12_gen75), |
NULL, |
}, |
gen7_pp_plx_avs_initialize, |
}, |
}; |
static int |
pp_get_surface_fourcc(VADriverContextP ctx, const struct i965_surface *surface) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int fourcc; |
if (surface->type == I965_SURFACE_TYPE_IMAGE) { |
struct object_image *obj_image = IMAGE(surface->id); |
fourcc = obj_image->image.format.fourcc; |
} else { |
struct object_surface *obj_surface = SURFACE(surface->id); |
fourcc = obj_surface->fourcc; |
} |
return fourcc; |
} |
static void |
pp_set_surface_tiling(struct i965_surface_state *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss3.tiled_surface = 0; |
ss->ss3.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss3.tiled_surface = 1; |
ss->ss3.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss3.tiled_surface = 1; |
ss->ss3.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
static void |
pp_set_surface2_tiling(struct i965_surface_state2 *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss2.tiled_surface = 0; |
ss->ss2.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss2.tiled_surface = 1; |
ss->ss2.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss2.tiled_surface = 1; |
ss->ss2.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
static void |
gen7_pp_set_surface_tiling(struct gen7_surface_state *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss0.tiled_surface = 0; |
ss->ss0.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss0.tiled_surface = 1; |
ss->ss0.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss0.tiled_surface = 1; |
ss->ss0.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
static void |
gen7_pp_set_surface2_tiling(struct gen7_surface_state2 *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss2.tiled_surface = 0; |
ss->ss2.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss2.tiled_surface = 1; |
ss->ss2.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss2.tiled_surface = 1; |
ss->ss2.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
static void |
ironlake_pp_interface_descriptor_table(struct i965_post_processing_context *pp_context) |
{ |
struct i965_interface_descriptor *desc; |
dri_bo *bo; |
int pp_index = pp_context->current_pp; |
bo = pp_context->idrt.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
desc = bo->virtual; |
memset(desc, 0, sizeof(*desc)); |
desc->desc0.grf_reg_blocks = 10; |
desc->desc0.kernel_start_pointer = pp_context->pp_modules[pp_index].kernel.bo->offset >> 6; /* reloc */ |
desc->desc1.const_urb_entry_read_offset = 0; |
desc->desc1.const_urb_entry_read_len = 4; /* grf 1-4 */ |
desc->desc2.sampler_state_pointer = pp_context->sampler_state_table.bo->offset >> 5; |
desc->desc2.sampler_count = 0; |
desc->desc3.binding_table_entry_count = 0; |
desc->desc3.binding_table_pointer = (BINDING_TABLE_OFFSET >> 5); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc0.grf_reg_blocks, |
offsetof(struct i965_interface_descriptor, desc0), |
pp_context->pp_modules[pp_index].kernel.bo); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc2.sampler_count << 2, |
offsetof(struct i965_interface_descriptor, desc2), |
pp_context->sampler_state_table.bo); |
dri_bo_unmap(bo); |
pp_context->idrt.num_interface_descriptors++; |
} |
static void |
ironlake_pp_vfe_state(struct i965_post_processing_context *pp_context) |
{ |
struct i965_vfe_state *vfe_state; |
dri_bo *bo; |
bo = pp_context->vfe_state.bo; |
dri_bo_map(bo, 1); |
assert(bo->virtual); |
vfe_state = bo->virtual; |
memset(vfe_state, 0, sizeof(*vfe_state)); |
vfe_state->vfe1.max_threads = pp_context->urb.num_vfe_entries - 1; |
vfe_state->vfe1.urb_entry_alloc_size = pp_context->urb.size_vfe_entry - 1; |
vfe_state->vfe1.num_urb_entries = pp_context->urb.num_vfe_entries; |
vfe_state->vfe1.vfe_mode = VFE_GENERIC_MODE; |
vfe_state->vfe1.children_present = 0; |
vfe_state->vfe2.interface_descriptor_base = |
pp_context->idrt.bo->offset >> 4; /* reloc */ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
offsetof(struct i965_vfe_state, vfe2), |
pp_context->idrt.bo); |
dri_bo_unmap(bo); |
} |
static void |
ironlake_pp_upload_constants(struct i965_post_processing_context *pp_context) |
{ |
unsigned char *constant_buffer; |
struct pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
assert(sizeof(*pp_static_parameter) == 128); |
dri_bo_map(pp_context->curbe.bo, 1); |
assert(pp_context->curbe.bo->virtual); |
constant_buffer = pp_context->curbe.bo->virtual; |
memcpy(constant_buffer, pp_static_parameter, sizeof(*pp_static_parameter)); |
dri_bo_unmap(pp_context->curbe.bo); |
} |
static void |
ironlake_pp_states_setup(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
ironlake_pp_interface_descriptor_table(pp_context); |
ironlake_pp_vfe_state(pp_context); |
ironlake_pp_upload_constants(pp_context); |
} |
static void |
ironlake_pp_pipeline_select(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
BEGIN_BATCH(batch, 1); |
OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA); |
ADVANCE_BATCH(batch); |
} |
static void |
ironlake_pp_urb_layout(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
unsigned int vfe_fence, cs_fence; |
vfe_fence = pp_context->urb.cs_start; |
cs_fence = pp_context->urb.size; |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, CMD_URB_FENCE | UF0_VFE_REALLOC | UF0_CS_REALLOC | 1); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, |
(vfe_fence << UF2_VFE_FENCE_SHIFT) | /* VFE_SIZE */ |
(cs_fence << UF2_CS_FENCE_SHIFT)); /* CS_SIZE */ |
ADVANCE_BATCH(batch); |
} |
static void |
ironlake_pp_state_base_address(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
BEGIN_BATCH(batch, 8); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | 6); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_RELOC(batch, pp_context->surface_state_binding_table.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
ADVANCE_BATCH(batch); |
} |
static void |
ironlake_pp_state_pointers(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, CMD_MEDIA_STATE_POINTERS | 1); |
OUT_BATCH(batch, 0); |
OUT_RELOC(batch, pp_context->vfe_state.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
ironlake_pp_cs_urb_layout(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_CS_URB_STATE | 0); |
OUT_BATCH(batch, |
((pp_context->urb.size_cs_entry - 1) << 4) | /* URB Entry Allocation Size */ |
(pp_context->urb.num_cs_entries << 0)); /* Number of URB Entries */ |
ADVANCE_BATCH(batch); |
} |
static void |
ironlake_pp_constant_buffer(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_CONSTANT_BUFFER | (1 << 8) | (2 - 2)); |
OUT_RELOC(batch, pp_context->curbe.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
pp_context->urb.size_cs_entry - 1); |
ADVANCE_BATCH(batch); |
} |
static void |
ironlake_pp_object_walker(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
int x, x_steps, y, y_steps; |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
x_steps = pp_context->pp_x_steps(&pp_context->private_context); |
y_steps = pp_context->pp_y_steps(&pp_context->private_context); |
for (y = 0; y < y_steps; y++) { |
for (x = 0; x < x_steps; x++) { |
if (!pp_context->pp_set_block_parameter(pp_context, x, y)) { |
BEGIN_BATCH(batch, 20); |
OUT_BATCH(batch, CMD_MEDIA_OBJECT | 18); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* no indirect data */ |
OUT_BATCH(batch, 0); |
/* inline data grf 5-6 */ |
assert(sizeof(*pp_inline_parameter) == 64); |
intel_batchbuffer_data(batch, pp_inline_parameter, sizeof(*pp_inline_parameter)); |
ADVANCE_BATCH(batch); |
} |
} |
} |
} |
static void |
ironlake_pp_pipeline_setup(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
intel_batchbuffer_start_atomic(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
ironlake_pp_pipeline_select(ctx, pp_context); |
ironlake_pp_state_base_address(ctx, pp_context); |
ironlake_pp_state_pointers(ctx, pp_context); |
ironlake_pp_urb_layout(ctx, pp_context); |
ironlake_pp_cs_urb_layout(ctx, pp_context); |
ironlake_pp_constant_buffer(ctx, pp_context); |
ironlake_pp_object_walker(ctx, pp_context); |
intel_batchbuffer_end_atomic(batch); |
} |
// update u/v offset when the surface format are packed yuv |
static void i965_update_src_surface_uv_offset( |
VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
const struct i965_surface *surface) |
{ |
struct pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
int fourcc = pp_get_surface_fourcc(ctx, surface); |
if (fourcc == VA_FOURCC('Y', 'U', 'Y', '2')) { |
pp_static_parameter->grf1.source_packed_u_offset = 1; |
pp_static_parameter->grf1.source_packed_v_offset = 3; |
} |
else if (fourcc == VA_FOURCC('U', 'Y', 'V', 'Y')) { |
pp_static_parameter->grf1.source_packed_y_offset = 1; |
pp_static_parameter->grf1.source_packed_v_offset = 2; |
} |
} |
static void i965_update_dst_surface_uv_offset( |
VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
const struct i965_surface *surface) |
{ |
struct pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
int fourcc = pp_get_surface_fourcc(ctx, surface); |
if (fourcc == VA_FOURCC('Y', 'U', 'Y', '2')) { |
pp_static_parameter->grf1.r1_2.load_and_save.destination_packed_u_offset = 1; |
pp_static_parameter->grf1.r1_2.load_and_save.destination_packed_v_offset = 3; |
} |
else if (fourcc == VA_FOURCC('U', 'Y', 'V', 'Y')) { |
pp_static_parameter->grf1.r1_2.load_and_save.destination_packed_y_offset = 1; |
pp_static_parameter->grf1.r1_2.load_and_save.destination_packed_v_offset = 2; |
} |
} |
static void |
i965_pp_set_surface_state(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
dri_bo *surf_bo, unsigned long surf_bo_offset, |
int width, int height, int pitch, int format, |
int index, int is_target) |
{ |
struct i965_surface_state *ss; |
dri_bo *ss_bo; |
unsigned int tiling; |
unsigned int swizzle; |
dri_bo_get_tiling(surf_bo, &tiling, &swizzle); |
ss_bo = pp_context->surface_state_binding_table.bo; |
assert(ss_bo); |
dri_bo_map(ss_bo, True); |
assert(ss_bo->virtual); |
ss = (struct i965_surface_state *)((char *)ss_bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_type = I965_SURFACE_2D; |
ss->ss0.surface_format = format; |
ss->ss1.base_addr = surf_bo->offset + surf_bo_offset; |
ss->ss2.width = width - 1; |
ss->ss2.height = height - 1; |
ss->ss3.pitch = pitch - 1; |
pp_set_surface_tiling(ss, tiling); |
dri_bo_emit_reloc(ss_bo, |
I915_GEM_DOMAIN_RENDER, is_target ? I915_GEM_DOMAIN_RENDER : 0, |
surf_bo_offset, |
SURFACE_STATE_OFFSET(index) + offsetof(struct i965_surface_state, ss1), |
surf_bo); |
((unsigned int *)((char *)ss_bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(ss_bo); |
} |
static void |
i965_pp_set_surface2_state(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
dri_bo *surf_bo, unsigned long surf_bo_offset, |
int width, int height, int wpitch, |
int xoffset, int yoffset, |
int format, int interleave_chroma, |
int index) |
{ |
struct i965_surface_state2 *ss2; |
dri_bo *ss2_bo; |
unsigned int tiling; |
unsigned int swizzle; |
dri_bo_get_tiling(surf_bo, &tiling, &swizzle); |
ss2_bo = pp_context->surface_state_binding_table.bo; |
assert(ss2_bo); |
dri_bo_map(ss2_bo, True); |
assert(ss2_bo->virtual); |
ss2 = (struct i965_surface_state2 *)((char *)ss2_bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss2, 0, sizeof(*ss2)); |
ss2->ss0.surface_base_address = surf_bo->offset + surf_bo_offset; |
ss2->ss1.cbcr_pixel_offset_v_direction = 0; |
ss2->ss1.width = width - 1; |
ss2->ss1.height = height - 1; |
ss2->ss2.pitch = wpitch - 1; |
ss2->ss2.interleave_chroma = interleave_chroma; |
ss2->ss2.surface_format = format; |
ss2->ss3.x_offset_for_cb = xoffset; |
ss2->ss3.y_offset_for_cb = yoffset; |
pp_set_surface2_tiling(ss2, tiling); |
dri_bo_emit_reloc(ss2_bo, |
I915_GEM_DOMAIN_RENDER, 0, |
surf_bo_offset, |
SURFACE_STATE_OFFSET(index) + offsetof(struct i965_surface_state2, ss0), |
surf_bo); |
((unsigned int *)((char *)ss2_bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(ss2_bo); |
} |
static void |
gen7_pp_set_surface_state(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
dri_bo *surf_bo, unsigned long surf_bo_offset, |
int width, int height, int pitch, int format, |
int index, int is_target) |
{ |
struct i965_driver_data * const i965 = i965_driver_data(ctx); |
struct gen7_surface_state *ss; |
dri_bo *ss_bo; |
unsigned int tiling; |
unsigned int swizzle; |
dri_bo_get_tiling(surf_bo, &tiling, &swizzle); |
ss_bo = pp_context->surface_state_binding_table.bo; |
assert(ss_bo); |
dri_bo_map(ss_bo, True); |
assert(ss_bo->virtual); |
ss = (struct gen7_surface_state *)((char *)ss_bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss, 0, sizeof(*ss)); |
ss->ss0.surface_type = I965_SURFACE_2D; |
ss->ss0.surface_format = format; |
ss->ss1.base_addr = surf_bo->offset + surf_bo_offset; |
ss->ss2.width = width - 1; |
ss->ss2.height = height - 1; |
ss->ss3.pitch = pitch - 1; |
gen7_pp_set_surface_tiling(ss, tiling); |
if (IS_HASWELL(i965->intel.device_id)) |
gen7_render_set_surface_scs(ss); |
dri_bo_emit_reloc(ss_bo, |
I915_GEM_DOMAIN_RENDER, is_target ? I915_GEM_DOMAIN_RENDER : 0, |
surf_bo_offset, |
SURFACE_STATE_OFFSET(index) + offsetof(struct gen7_surface_state, ss1), |
surf_bo); |
((unsigned int *)((char *)ss_bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(ss_bo); |
} |
static void |
gen7_pp_set_surface2_state(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
dri_bo *surf_bo, unsigned long surf_bo_offset, |
int width, int height, int wpitch, |
int xoffset, int yoffset, |
int format, int interleave_chroma, |
int index) |
{ |
struct gen7_surface_state2 *ss2; |
dri_bo *ss2_bo; |
unsigned int tiling; |
unsigned int swizzle; |
dri_bo_get_tiling(surf_bo, &tiling, &swizzle); |
ss2_bo = pp_context->surface_state_binding_table.bo; |
assert(ss2_bo); |
dri_bo_map(ss2_bo, True); |
assert(ss2_bo->virtual); |
ss2 = (struct gen7_surface_state2 *)((char *)ss2_bo->virtual + SURFACE_STATE_OFFSET(index)); |
memset(ss2, 0, sizeof(*ss2)); |
ss2->ss0.surface_base_address = surf_bo->offset + surf_bo_offset; |
ss2->ss1.cbcr_pixel_offset_v_direction = 0; |
ss2->ss1.width = width - 1; |
ss2->ss1.height = height - 1; |
ss2->ss2.pitch = wpitch - 1; |
ss2->ss2.interleave_chroma = interleave_chroma; |
ss2->ss2.surface_format = format; |
ss2->ss3.x_offset_for_cb = xoffset; |
ss2->ss3.y_offset_for_cb = yoffset; |
gen7_pp_set_surface2_tiling(ss2, tiling); |
dri_bo_emit_reloc(ss2_bo, |
I915_GEM_DOMAIN_RENDER, 0, |
surf_bo_offset, |
SURFACE_STATE_OFFSET(index) + offsetof(struct gen7_surface_state2, ss0), |
surf_bo); |
((unsigned int *)((char *)ss2_bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(ss2_bo); |
} |
static void |
pp_set_media_rw_message_surface(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *surface, |
int base_index, int is_target, |
int *width, int *height, int *pitch, int *offset) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
struct object_image *obj_image; |
dri_bo *bo; |
int fourcc = pp_get_surface_fourcc(ctx, surface); |
const int Y = 0; |
const int U = fourcc == VA_FOURCC('Y', 'V', '1', '2') ? 2 : 1; |
const int V = fourcc == VA_FOURCC('Y', 'V', '1', '2') ? 1 : 2; |
const int UV = 1; |
int interleaved_uv = fourcc == VA_FOURCC('N', 'V', '1', '2'); |
int packed_yuv = (fourcc == VA_FOURCC('Y', 'U', 'Y', '2') || fourcc == VA_FOURCC('U', 'Y', 'V', 'Y')); |
int full_packed_format = (fourcc == VA_FOURCC('R', 'G', 'B', 'A') || |
fourcc == VA_FOURCC('R', 'G', 'B', 'X') || |
fourcc == VA_FOURCC('B', 'G', 'R', 'A') || |
fourcc == VA_FOURCC('B', 'G', 'R', 'X')); |
int scale_factor_of_1st_plane_width_in_byte = 1; |
if (surface->type == I965_SURFACE_TYPE_SURFACE) { |
obj_surface = SURFACE(surface->id); |
bo = obj_surface->bo; |
width[0] = obj_surface->orig_width; |
height[0] = obj_surface->orig_height; |
pitch[0] = obj_surface->width; |
offset[0] = 0; |
if (full_packed_format) { |
scale_factor_of_1st_plane_width_in_byte = 4; |
pitch[0] = obj_surface->width * 4; |
} |
else if (packed_yuv ) { |
scale_factor_of_1st_plane_width_in_byte = 2; |
pitch[0] = obj_surface->width * 2; |
} |
else if (interleaved_uv) { |
width[1] = obj_surface->orig_width; |
height[1] = obj_surface->orig_height / 2; |
pitch[1] = obj_surface->width; |
offset[1] = offset[0] + obj_surface->width * obj_surface->height; |
} else { |
width[1] = obj_surface->orig_width / 2; |
height[1] = obj_surface->orig_height / 2; |
pitch[1] = obj_surface->width / 2; |
offset[1] = offset[0] + obj_surface->width * obj_surface->height; |
width[2] = obj_surface->orig_width / 2; |
height[2] = obj_surface->orig_height / 2; |
pitch[2] = obj_surface->width / 2; |
offset[2] = offset[1] + (obj_surface->width / 2) * (obj_surface->height / 2); |
} |
} else { |
obj_image = IMAGE(surface->id); |
bo = obj_image->bo; |
width[0] = obj_image->image.width; |
height[0] = obj_image->image.height; |
pitch[0] = obj_image->image.pitches[0]; |
offset[0] = obj_image->image.offsets[0]; |
if (full_packed_format) { |
scale_factor_of_1st_plane_width_in_byte = 4; |
} |
else if (packed_yuv ) { |
scale_factor_of_1st_plane_width_in_byte = 2; |
} |
else if (interleaved_uv) { |
width[1] = obj_image->image.width; |
height[1] = obj_image->image.height / 2; |
pitch[1] = obj_image->image.pitches[1]; |
offset[1] = obj_image->image.offsets[1]; |
} else { |
width[1] = obj_image->image.width / 2; |
height[1] = obj_image->image.height / 2; |
pitch[1] = obj_image->image.pitches[1]; |
offset[1] = obj_image->image.offsets[1]; |
width[2] = obj_image->image.width / 2; |
height[2] = obj_image->image.height / 2; |
pitch[2] = obj_image->image.pitches[2]; |
offset[2] = obj_image->image.offsets[2]; |
} |
} |
/* Y surface */ |
i965_pp_set_surface_state(ctx, pp_context, |
bo, offset[Y], |
width[Y] *scale_factor_of_1st_plane_width_in_byte / 4, height[Y], pitch[Y], I965_SURFACEFORMAT_R8_UNORM, |
base_index, is_target); |
if (!packed_yuv && !full_packed_format) { |
if (interleaved_uv) { |
i965_pp_set_surface_state(ctx, pp_context, |
bo, offset[UV], |
width[UV] / 4, height[UV], pitch[UV], I965_SURFACEFORMAT_R8_UNORM, |
base_index + 1, is_target); |
} else { |
/* U surface */ |
i965_pp_set_surface_state(ctx, pp_context, |
bo, offset[U], |
width[U] / 4, height[U], pitch[U], I965_SURFACEFORMAT_R8_UNORM, |
base_index + 1, is_target); |
/* V surface */ |
i965_pp_set_surface_state(ctx, pp_context, |
bo, offset[V], |
width[V] / 4, height[V], pitch[V], I965_SURFACEFORMAT_R8_UNORM, |
base_index + 2, is_target); |
} |
} |
} |
static void |
gen7_pp_set_media_rw_message_surface(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *surface, |
int base_index, int is_target, |
int *width, int *height, int *pitch, int *offset) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
struct object_image *obj_image; |
dri_bo *bo; |
int fourcc = pp_get_surface_fourcc(ctx, surface); |
const int U = (fourcc == VA_FOURCC('Y', 'V', '1', '2') || |
fourcc == VA_FOURCC('I', 'M', 'C', '1')) ? 2 : 1; |
const int V = (fourcc == VA_FOURCC('Y', 'V', '1', '2') || |
fourcc == VA_FOURCC('I', 'M', 'C', '1')) ? 1 : 2; |
int interleaved_uv = fourcc == VA_FOURCC('N', 'V', '1', '2'); |
int packed_yuv = (fourcc == VA_FOURCC('Y', 'U', 'Y', '2') || fourcc == VA_FOURCC('U', 'Y', 'V', 'Y')); |
if (surface->type == I965_SURFACE_TYPE_SURFACE) { |
obj_surface = SURFACE(surface->id); |
bo = obj_surface->bo; |
width[0] = obj_surface->orig_width; |
height[0] = obj_surface->orig_height; |
pitch[0] = obj_surface->width; |
offset[0] = 0; |
if (packed_yuv) { |
if (is_target) |
width[0] = obj_surface->orig_width * 2; /* surface format is R8, so double the width */ |
else |
width[0] = obj_surface->orig_width; /* surface foramt is YCBCR, width is specified in units of pixels */ |
pitch[0] = obj_surface->width * 2; |
} |
width[1] = obj_surface->cb_cr_width; |
height[1] = obj_surface->cb_cr_height; |
pitch[1] = obj_surface->cb_cr_pitch; |
offset[1] = obj_surface->y_cb_offset * obj_surface->width; |
width[2] = obj_surface->cb_cr_width; |
height[2] = obj_surface->cb_cr_height; |
pitch[2] = obj_surface->cb_cr_pitch; |
offset[2] = obj_surface->y_cr_offset * obj_surface->width; |
} else { |
obj_image = IMAGE(surface->id); |
bo = obj_image->bo; |
width[0] = obj_image->image.width; |
height[0] = obj_image->image.height; |
pitch[0] = obj_image->image.pitches[0]; |
offset[0] = obj_image->image.offsets[0]; |
if (packed_yuv) { |
if (is_target) |
width[0] = obj_image->image.width * 2; /* surface format is R8, so double the width */ |
else |
width[0] = obj_image->image.width; /* surface foramt is YCBCR, width is specified in units of pixels */ |
} else if (interleaved_uv) { |
width[1] = obj_image->image.width / 2; |
height[1] = obj_image->image.height / 2; |
pitch[1] = obj_image->image.pitches[1]; |
offset[1] = obj_image->image.offsets[1]; |
} else { |
width[1] = obj_image->image.width / 2; |
height[1] = obj_image->image.height / 2; |
pitch[1] = obj_image->image.pitches[U]; |
offset[1] = obj_image->image.offsets[U]; |
width[2] = obj_image->image.width / 2; |
height[2] = obj_image->image.height / 2; |
pitch[2] = obj_image->image.pitches[V]; |
offset[2] = obj_image->image.offsets[V]; |
} |
} |
if (is_target) { |
gen7_pp_set_surface_state(ctx, pp_context, |
bo, 0, |
width[0] / 4, height[0], pitch[0], |
I965_SURFACEFORMAT_R8_SINT, |
base_index, 1); |
if (!packed_yuv) { |
if (interleaved_uv) { |
gen7_pp_set_surface_state(ctx, pp_context, |
bo, offset[1], |
width[1] / 2, height[1], pitch[1], |
I965_SURFACEFORMAT_R8G8_SINT, |
base_index + 1, 1); |
} else { |
gen7_pp_set_surface_state(ctx, pp_context, |
bo, offset[1], |
width[1] / 4, height[1], pitch[1], |
I965_SURFACEFORMAT_R8_SINT, |
base_index + 1, 1); |
gen7_pp_set_surface_state(ctx, pp_context, |
bo, offset[2], |
width[2] / 4, height[2], pitch[2], |
I965_SURFACEFORMAT_R8_SINT, |
base_index + 2, 1); |
} |
} |
} else { |
int format0 = SURFACE_FORMAT_Y8_UNORM; |
switch (fourcc) { |
case VA_FOURCC('Y', 'U', 'Y', '2'): |
format0 = SURFACE_FORMAT_YCRCB_NORMAL; |
break; |
case VA_FOURCC('U', 'Y', 'V', 'Y'): |
format0 = SURFACE_FORMAT_YCRCB_SWAPY; |
break; |
default: |
break; |
} |
gen7_pp_set_surface2_state(ctx, pp_context, |
bo, offset[0], |
width[0], height[0], pitch[0], |
0, 0, |
format0, 0, |
base_index); |
if (!packed_yuv) { |
if (interleaved_uv) { |
gen7_pp_set_surface2_state(ctx, pp_context, |
bo, offset[1], |
width[1], height[1], pitch[1], |
0, 0, |
SURFACE_FORMAT_R8B8_UNORM, 0, |
base_index + 1); |
} else { |
gen7_pp_set_surface2_state(ctx, pp_context, |
bo, offset[1], |
width[1], height[1], pitch[1], |
0, 0, |
SURFACE_FORMAT_R8_UNORM, 0, |
base_index + 1); |
gen7_pp_set_surface2_state(ctx, pp_context, |
bo, offset[2], |
width[2], height[2], pitch[2], |
0, 0, |
SURFACE_FORMAT_R8_UNORM, 0, |
base_index + 2); |
} |
} |
} |
} |
static int |
pp_null_x_steps(void *private_context) |
{ |
return 1; |
} |
static int |
pp_null_y_steps(void *private_context) |
{ |
return 1; |
} |
static int |
pp_null_set_block_parameter(struct i965_post_processing_context *pp_context, int x, int y) |
{ |
return 0; |
} |
static VAStatus |
pp_null_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param) |
{ |
/* private function & data */ |
pp_context->pp_x_steps = pp_null_x_steps; |
pp_context->pp_y_steps = pp_null_y_steps; |
pp_context->pp_set_block_parameter = pp_null_set_block_parameter; |
dst_surface->flags = src_surface->flags; |
return VA_STATUS_SUCCESS; |
} |
static int |
pp_load_save_x_steps(void *private_context) |
{ |
return 1; |
} |
static int |
pp_load_save_y_steps(void *private_context) |
{ |
struct pp_load_save_context *pp_load_save_context = private_context; |
return pp_load_save_context->dest_h / 8; |
} |
static int |
pp_load_save_set_block_parameter(struct i965_post_processing_context *pp_context, int x, int y) |
{ |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
struct pp_load_save_context *pp_load_save_context = (struct pp_load_save_context *)&pp_context->private_context; |
pp_inline_parameter->grf5.destination_block_horizontal_origin = x * 16 + pp_load_save_context->dest_x; |
pp_inline_parameter->grf5.destination_block_vertical_origin = y * 8 + pp_load_save_context->dest_y; |
return 0; |
} |
static void calculate_boundary_block_mask(struct i965_post_processing_context *pp_context, const VARectangle *dst_rect) |
{ |
int i; |
/* x offset of dest surface must be dword aligned. |
* so we have to extend dst surface on left edge, and mask out pixels not interested |
*/ |
if (dst_rect->x%GPU_ASM_X_OFFSET_ALIGNMENT) { |
pp_context->block_horizontal_mask_left = 0; |
for (i=dst_rect->x%GPU_ASM_X_OFFSET_ALIGNMENT; i<GPU_ASM_BLOCK_WIDTH; i++) |
{ |
pp_context->block_horizontal_mask_left |= 1<<i; |
} |
} |
else { |
pp_context->block_horizontal_mask_left = 0xffff; |
} |
int dst_width_adjust = dst_rect->width + dst_rect->x%GPU_ASM_X_OFFSET_ALIGNMENT; |
if (dst_width_adjust%GPU_ASM_BLOCK_WIDTH){ |
pp_context->block_horizontal_mask_right = (1 << (dst_width_adjust%GPU_ASM_BLOCK_WIDTH)) - 1; |
} |
else { |
pp_context->block_horizontal_mask_right = 0xffff; |
} |
if (dst_rect->height%GPU_ASM_BLOCK_HEIGHT){ |
pp_context->block_vertical_mask_bottom = (1 << (dst_rect->height%GPU_ASM_BLOCK_HEIGHT)) - 1; |
} |
else { |
pp_context->block_vertical_mask_bottom = 0xff; |
} |
} |
static VAStatus |
pp_plx_load_save_plx_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param) |
{ |
struct pp_load_save_context *pp_load_save_context = (struct pp_load_save_context *)&pp_context->private_context; |
int width[3], height[3], pitch[3], offset[3]; |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
struct pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
/* source surface */ |
pp_set_media_rw_message_surface(ctx, pp_context, src_surface, 1, 0, |
width, height, pitch, offset); |
/* destination surface */ |
pp_set_media_rw_message_surface(ctx, pp_context, dst_surface, 7, 1, |
width, height, pitch, offset); |
/* private function & data */ |
pp_context->pp_x_steps = pp_load_save_x_steps; |
pp_context->pp_y_steps = pp_load_save_y_steps; |
pp_context->pp_set_block_parameter = pp_load_save_set_block_parameter; |
int dst_left_edge_extend = dst_rect->x%GPU_ASM_X_OFFSET_ALIGNMENT;; |
pp_load_save_context->dest_x = dst_rect->x - dst_left_edge_extend; |
pp_load_save_context->dest_y = dst_rect->y; |
pp_load_save_context->dest_h = ALIGN(dst_rect->height, 8); |
pp_load_save_context->dest_w = ALIGN(dst_rect->width+dst_left_edge_extend, 16); |
pp_inline_parameter->grf5.block_count_x = pp_load_save_context->dest_w / 16; /* 1 x N */ |
pp_inline_parameter->grf5.number_blocks = pp_load_save_context->dest_w / 16; |
pp_static_parameter->grf3.horizontal_origin_offset = src_rect->x; |
pp_static_parameter->grf3.vertical_origin_offset = src_rect->y; |
// update u/v offset for packed yuv |
i965_update_src_surface_uv_offset (ctx, pp_context, src_surface); |
i965_update_dst_surface_uv_offset (ctx, pp_context, dst_surface); |
dst_surface->flags = src_surface->flags; |
return VA_STATUS_SUCCESS; |
} |
static int |
pp_scaling_x_steps(void *private_context) |
{ |
return 1; |
} |
static int |
pp_scaling_y_steps(void *private_context) |
{ |
struct pp_scaling_context *pp_scaling_context = private_context; |
return pp_scaling_context->dest_h / 8; |
} |
static int |
pp_scaling_set_block_parameter(struct i965_post_processing_context *pp_context, int x, int y) |
{ |
struct pp_scaling_context *pp_scaling_context = (struct pp_scaling_context *)&pp_context->private_context; |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
struct pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
float src_x_steping = pp_inline_parameter->grf5.normalized_video_x_scaling_step; |
float src_y_steping = pp_static_parameter->grf1.r1_6.normalized_video_y_scaling_step; |
pp_inline_parameter->grf5.r5_1.source_surface_block_normalized_horizontal_origin = src_x_steping * x * 16 + pp_scaling_context->src_normalized_x; |
pp_inline_parameter->grf5.source_surface_block_normalized_vertical_origin = src_y_steping * y * 8 + pp_scaling_context->src_normalized_y; |
pp_inline_parameter->grf5.destination_block_horizontal_origin = x * 16 + pp_scaling_context->dest_x; |
pp_inline_parameter->grf5.destination_block_vertical_origin = y * 8 + pp_scaling_context->dest_y; |
return 0; |
} |
static VAStatus |
pp_nv12_scaling_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct pp_scaling_context *pp_scaling_context = (struct pp_scaling_context *)&pp_context->private_context; |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
struct pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
struct object_surface *obj_surface; |
struct i965_sampler_state *sampler_state; |
int in_w, in_h, in_wpitch, in_hpitch; |
int out_w, out_h, out_wpitch, out_hpitch; |
/* source surface */ |
obj_surface = SURFACE(src_surface->id); |
in_w = obj_surface->orig_width; |
in_h = obj_surface->orig_height; |
in_wpitch = obj_surface->width; |
in_hpitch = obj_surface->height; |
/* source Y surface index 1 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, 0, |
in_w, in_h, in_wpitch, I965_SURFACEFORMAT_R8_UNORM, |
1, 0); |
/* source UV surface index 2 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, in_wpitch * in_hpitch, |
in_w / 2, in_h / 2, in_wpitch, I965_SURFACEFORMAT_R8G8_UNORM, |
2, 0); |
/* destination surface */ |
obj_surface = SURFACE(dst_surface->id); |
out_w = obj_surface->orig_width; |
out_h = obj_surface->orig_height; |
out_wpitch = obj_surface->width; |
out_hpitch = obj_surface->height; |
/* destination Y surface index 7 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, 0, |
out_w / 4, out_h, out_wpitch, I965_SURFACEFORMAT_R8_UNORM, |
7, 1); |
/* destination UV surface index 8 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, out_wpitch * out_hpitch, |
out_w / 4, out_h / 2, out_wpitch, I965_SURFACEFORMAT_R8G8_UNORM, |
8, 1); |
/* sampler state */ |
dri_bo_map(pp_context->sampler_state_table.bo, True); |
assert(pp_context->sampler_state_table.bo->virtual); |
sampler_state = pp_context->sampler_state_table.bo->virtual; |
/* SIMD16 Y index 1 */ |
sampler_state[1].ss0.min_filter = I965_MAPFILTER_LINEAR; |
sampler_state[1].ss0.mag_filter = I965_MAPFILTER_LINEAR; |
sampler_state[1].ss1.r_wrap_mode = I965_TEXCOORDMODE_CLAMP; |
sampler_state[1].ss1.s_wrap_mode = I965_TEXCOORDMODE_CLAMP; |
sampler_state[1].ss1.t_wrap_mode = I965_TEXCOORDMODE_CLAMP; |
/* SIMD16 UV index 2 */ |
sampler_state[2].ss0.min_filter = I965_MAPFILTER_LINEAR; |
sampler_state[2].ss0.mag_filter = I965_MAPFILTER_LINEAR; |
sampler_state[2].ss1.r_wrap_mode = I965_TEXCOORDMODE_CLAMP; |
sampler_state[2].ss1.s_wrap_mode = I965_TEXCOORDMODE_CLAMP; |
sampler_state[2].ss1.t_wrap_mode = I965_TEXCOORDMODE_CLAMP; |
dri_bo_unmap(pp_context->sampler_state_table.bo); |
/* private function & data */ |
pp_context->pp_x_steps = pp_scaling_x_steps; |
pp_context->pp_y_steps = pp_scaling_y_steps; |
pp_context->pp_set_block_parameter = pp_scaling_set_block_parameter; |
int dst_left_edge_extend = dst_rect->x%GPU_ASM_X_OFFSET_ALIGNMENT; |
float src_left_edge_extend = (float)dst_left_edge_extend*src_rect->width/dst_rect->width; |
pp_scaling_context->dest_x = dst_rect->x - dst_left_edge_extend; |
pp_scaling_context->dest_y = dst_rect->y; |
pp_scaling_context->dest_w = ALIGN(dst_rect->width + dst_left_edge_extend, 16); |
pp_scaling_context->dest_h = ALIGN(dst_rect->height, 8); |
pp_scaling_context->src_normalized_x = (float)(src_rect->x - src_left_edge_extend)/ in_w; |
pp_scaling_context->src_normalized_y = (float)src_rect->y / in_h; |
pp_static_parameter->grf1.r1_6.normalized_video_y_scaling_step = (float) src_rect->height / in_h / dst_rect->height; |
pp_inline_parameter->grf5.normalized_video_x_scaling_step = (float) (src_rect->width + src_left_edge_extend)/ in_w / (dst_rect->width + dst_left_edge_extend); |
pp_inline_parameter->grf5.block_count_x = pp_scaling_context->dest_w / 16; /* 1 x N */ |
pp_inline_parameter->grf5.number_blocks = pp_scaling_context->dest_w / 16; |
dst_surface->flags = src_surface->flags; |
return VA_STATUS_SUCCESS; |
} |
static int |
pp_avs_x_steps(void *private_context) |
{ |
struct pp_avs_context *pp_avs_context = private_context; |
return pp_avs_context->dest_w / 16; |
} |
static int |
pp_avs_y_steps(void *private_context) |
{ |
return 1; |
} |
static int |
pp_avs_set_block_parameter(struct i965_post_processing_context *pp_context, int x, int y) |
{ |
struct pp_avs_context *pp_avs_context = (struct pp_avs_context *)&pp_context->private_context; |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
struct pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
float src_x_steping, src_y_steping, video_step_delta; |
int tmp_w = ALIGN(pp_avs_context->dest_h * pp_avs_context->src_w / pp_avs_context->src_h, 16); |
if (pp_static_parameter->grf4.r4_2.avs.nlas == 0) { |
src_x_steping = pp_inline_parameter->grf5.normalized_video_x_scaling_step; |
pp_inline_parameter->grf5.r5_1.source_surface_block_normalized_horizontal_origin = src_x_steping * x * 16 + pp_avs_context->src_normalized_x; |
} else if (tmp_w >= pp_avs_context->dest_w) { |
pp_inline_parameter->grf5.normalized_video_x_scaling_step = 1.0 / tmp_w; |
pp_inline_parameter->grf6.video_step_delta = 0; |
if (x == 0) { |
pp_inline_parameter->grf5.r5_1.source_surface_block_normalized_horizontal_origin = (float)(tmp_w - pp_avs_context->dest_w) / tmp_w / 2 + |
pp_avs_context->src_normalized_x; |
} else { |
src_x_steping = pp_inline_parameter->grf5.normalized_video_x_scaling_step; |
video_step_delta = pp_inline_parameter->grf6.video_step_delta; |
pp_inline_parameter->grf5.r5_1.source_surface_block_normalized_horizontal_origin += src_x_steping * 16 + |
16 * 15 * video_step_delta / 2; |
} |
} else { |
int n0, n1, n2, nls_left, nls_right; |
int factor_a = 5, factor_b = 4; |
float f; |
n0 = (pp_avs_context->dest_w - tmp_w) / (16 * 2); |
n1 = (pp_avs_context->dest_w - tmp_w) / 16 - n0; |
n2 = tmp_w / (16 * factor_a); |
nls_left = n0 + n2; |
nls_right = n1 + n2; |
f = (float) n2 * 16 / tmp_w; |
if (n0 < 5) { |
pp_inline_parameter->grf6.video_step_delta = 0.0; |
if (x == 0) { |
pp_inline_parameter->grf5.normalized_video_x_scaling_step = 1.0 / pp_avs_context->dest_w; |
pp_inline_parameter->grf5.r5_1.source_surface_block_normalized_horizontal_origin = pp_avs_context->src_normalized_x; |
} else { |
src_x_steping = pp_inline_parameter->grf5.normalized_video_x_scaling_step; |
video_step_delta = pp_inline_parameter->grf6.video_step_delta; |
pp_inline_parameter->grf5.r5_1.source_surface_block_normalized_horizontal_origin += src_x_steping * 16 + |
16 * 15 * video_step_delta / 2; |
} |
} else { |
if (x < nls_left) { |
/* f = a * nls_left * 16 + b * nls_left * 16 * (nls_left * 16 - 1) / 2 */ |
float a = f / (nls_left * 16 * factor_b); |
float b = (f - nls_left * 16 * a) * 2 / (nls_left * 16 * (nls_left * 16 - 1)); |
pp_inline_parameter->grf6.video_step_delta = b; |
if (x == 0) { |
pp_inline_parameter->grf5.r5_1.source_surface_block_normalized_horizontal_origin = pp_avs_context->src_normalized_x; |
pp_inline_parameter->grf5.normalized_video_x_scaling_step = a; |
} else { |
src_x_steping = pp_inline_parameter->grf5.normalized_video_x_scaling_step; |
video_step_delta = pp_inline_parameter->grf6.video_step_delta; |
pp_inline_parameter->grf5.r5_1.source_surface_block_normalized_horizontal_origin += src_x_steping * 16 + |
16 * 15 * video_step_delta / 2; |
pp_inline_parameter->grf5.normalized_video_x_scaling_step += 16 * b; |
} |
} else if (x < (pp_avs_context->dest_w / 16 - nls_right)) { |
/* scale the center linearly */ |
src_x_steping = pp_inline_parameter->grf5.normalized_video_x_scaling_step; |
video_step_delta = pp_inline_parameter->grf6.video_step_delta; |
pp_inline_parameter->grf5.r5_1.source_surface_block_normalized_horizontal_origin += src_x_steping * 16 + |
16 * 15 * video_step_delta / 2; |
pp_inline_parameter->grf6.video_step_delta = 0.0; |
pp_inline_parameter->grf5.normalized_video_x_scaling_step = 1.0 / tmp_w; |
} else { |
float a = f / (nls_right * 16 * factor_b); |
float b = (f - nls_right * 16 * a) * 2 / (nls_right * 16 * (nls_right * 16 - 1)); |
src_x_steping = pp_inline_parameter->grf5.normalized_video_x_scaling_step; |
video_step_delta = pp_inline_parameter->grf6.video_step_delta; |
pp_inline_parameter->grf5.r5_1.source_surface_block_normalized_horizontal_origin += src_x_steping * 16 + |
16 * 15 * video_step_delta / 2; |
pp_inline_parameter->grf6.video_step_delta = -b; |
if (x == (pp_avs_context->dest_w / 16 - nls_right)) |
pp_inline_parameter->grf5.normalized_video_x_scaling_step = a + (nls_right * 16 - 1) * b; |
else |
pp_inline_parameter->grf5.normalized_video_x_scaling_step -= b * 16; |
} |
} |
} |
src_y_steping = pp_static_parameter->grf1.r1_6.normalized_video_y_scaling_step; |
pp_inline_parameter->grf5.source_surface_block_normalized_vertical_origin = src_y_steping * y * 8 + pp_avs_context->src_normalized_y; |
pp_inline_parameter->grf5.destination_block_horizontal_origin = x * 16 + pp_avs_context->dest_x; |
pp_inline_parameter->grf5.destination_block_vertical_origin = y * 8 + pp_avs_context->dest_y; |
return 0; |
} |
static VAStatus |
pp_nv12_avs_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param, |
int nlas) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct pp_avs_context *pp_avs_context = (struct pp_avs_context *)&pp_context->private_context; |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
struct pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
struct object_surface *obj_surface; |
struct i965_sampler_8x8 *sampler_8x8; |
struct i965_sampler_8x8_state *sampler_8x8_state; |
int index; |
int in_w, in_h, in_wpitch, in_hpitch; |
int out_w, out_h, out_wpitch, out_hpitch; |
int i; |
/* surface */ |
obj_surface = SURFACE(src_surface->id); |
in_w = obj_surface->orig_width; |
in_h = obj_surface->orig_height; |
in_wpitch = obj_surface->width; |
in_hpitch = obj_surface->height; |
/* source Y surface index 1 */ |
i965_pp_set_surface2_state(ctx, pp_context, |
obj_surface->bo, 0, |
in_w, in_h, in_wpitch, |
0, 0, |
SURFACE_FORMAT_Y8_UNORM, 0, |
1); |
/* source UV surface index 2 */ |
i965_pp_set_surface2_state(ctx, pp_context, |
obj_surface->bo, in_wpitch * in_hpitch, |
in_w / 2, in_h / 2, in_wpitch, |
0, 0, |
SURFACE_FORMAT_R8B8_UNORM, 0, |
2); |
/* destination surface */ |
obj_surface = SURFACE(dst_surface->id); |
out_w = obj_surface->orig_width; |
out_h = obj_surface->orig_height; |
out_wpitch = obj_surface->width; |
out_hpitch = obj_surface->height; |
assert(out_w <= out_wpitch && out_h <= out_hpitch); |
/* destination Y surface index 7 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, 0, |
out_w / 4, out_h, out_wpitch, I965_SURFACEFORMAT_R8_UNORM, |
7, 1); |
/* destination UV surface index 8 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, out_wpitch * out_hpitch, |
out_w / 4, out_h / 2, out_wpitch, I965_SURFACEFORMAT_R8G8_UNORM, |
8, 1); |
/* sampler 8x8 state */ |
dri_bo_map(pp_context->sampler_state_table.bo_8x8, True); |
assert(pp_context->sampler_state_table.bo_8x8->virtual); |
assert(sizeof(*sampler_8x8_state) == sizeof(int) * 138); |
sampler_8x8_state = pp_context->sampler_state_table.bo_8x8->virtual; |
memset(sampler_8x8_state, 0, sizeof(*sampler_8x8_state)); |
for (i = 0; i < 17; i++) { |
/* for Y channel, currently ignore */ |
sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c0 = 0x00; |
sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c1 = 0x00; |
sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c2 = 0x08; |
sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c3 = 0x18; |
sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c4 = 0x18; |
sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c5 = 0x08; |
sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c6 = 0x00; |
sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c7 = 0x00; |
sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c0 = 0x00; |
sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c1 = 0x00; |
sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c2 = 0x10; |
sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c3 = 0x10; |
sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c4 = 0x10; |
sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c5 = 0x10; |
sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c6 = 0x00; |
sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c7 = 0x00; |
/* for U/V channel, 0.25 */ |
sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c0 = 0x0; |
sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c1 = 0x0; |
sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c2 = 0x10; |
sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c3 = 0x10; |
sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c4 = 0x10; |
sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c5 = 0x10; |
sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c6 = 0x0; |
sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c7 = 0x0; |
sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c0 = 0x0; |
sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c1 = 0x0; |
sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c2 = 0x10; |
sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c3 = 0x10; |
sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c4 = 0x10; |
sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c5 = 0x10; |
sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c6 = 0x0; |
sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c7 = 0x0; |
} |
sampler_8x8_state->dw136.default_sharpness_level = 0; |
sampler_8x8_state->dw137.adaptive_filter_for_all_channel = 1; |
sampler_8x8_state->dw137.bypass_y_adaptive_filtering = 1; |
sampler_8x8_state->dw137.bypass_x_adaptive_filtering = 1; |
dri_bo_unmap(pp_context->sampler_state_table.bo_8x8); |
/* sampler 8x8 */ |
dri_bo_map(pp_context->sampler_state_table.bo, True); |
assert(pp_context->sampler_state_table.bo->virtual); |
assert(sizeof(*sampler_8x8) == sizeof(int) * 16); |
sampler_8x8 = pp_context->sampler_state_table.bo->virtual; |
/* sample_8x8 Y index 1 */ |
index = 1; |
memset(&sampler_8x8[index], 0, sizeof(*sampler_8x8)); |
sampler_8x8[index].dw0.avs_filter_type = AVS_FILTER_ADAPTIVE_8_TAP; |
sampler_8x8[index].dw0.ief_bypass = 1; |
sampler_8x8[index].dw0.ief_filter_type = IEF_FILTER_DETAIL; |
sampler_8x8[index].dw0.ief_filter_size = IEF_FILTER_SIZE_5X5; |
sampler_8x8[index].dw1.sampler_8x8_state_pointer = pp_context->sampler_state_table.bo_8x8->offset >> 5; |
sampler_8x8[index].dw2.global_noise_estimation = 22; |
sampler_8x8[index].dw2.strong_edge_threshold = 8; |
sampler_8x8[index].dw2.weak_edge_threshold = 1; |
sampler_8x8[index].dw3.strong_edge_weight = 7; |
sampler_8x8[index].dw3.regular_weight = 2; |
sampler_8x8[index].dw3.non_edge_weight = 0; |
sampler_8x8[index].dw3.gain_factor = 40; |
sampler_8x8[index].dw4.steepness_boost = 0; |
sampler_8x8[index].dw4.steepness_threshold = 0; |
sampler_8x8[index].dw4.mr_boost = 0; |
sampler_8x8[index].dw4.mr_threshold = 5; |
sampler_8x8[index].dw5.pwl1_point_1 = 4; |
sampler_8x8[index].dw5.pwl1_point_2 = 12; |
sampler_8x8[index].dw5.pwl1_point_3 = 16; |
sampler_8x8[index].dw5.pwl1_point_4 = 26; |
sampler_8x8[index].dw6.pwl1_point_5 = 40; |
sampler_8x8[index].dw6.pwl1_point_6 = 160; |
sampler_8x8[index].dw6.pwl1_r3_bias_0 = 127; |
sampler_8x8[index].dw6.pwl1_r3_bias_1 = 98; |
sampler_8x8[index].dw7.pwl1_r3_bias_2 = 88; |
sampler_8x8[index].dw7.pwl1_r3_bias_3 = 64; |
sampler_8x8[index].dw7.pwl1_r3_bias_4 = 44; |
sampler_8x8[index].dw7.pwl1_r3_bias_5 = 0; |
sampler_8x8[index].dw8.pwl1_r3_bias_6 = 0; |
sampler_8x8[index].dw8.pwl1_r5_bias_0 = 3; |
sampler_8x8[index].dw8.pwl1_r5_bias_1 = 32; |
sampler_8x8[index].dw8.pwl1_r5_bias_2 = 32; |
sampler_8x8[index].dw9.pwl1_r5_bias_3 = 58; |
sampler_8x8[index].dw9.pwl1_r5_bias_4 = 100; |
sampler_8x8[index].dw9.pwl1_r5_bias_5 = 108; |
sampler_8x8[index].dw9.pwl1_r5_bias_6 = 88; |
sampler_8x8[index].dw10.pwl1_r3_slope_0 = -116; |
sampler_8x8[index].dw10.pwl1_r3_slope_1 = -20; |
sampler_8x8[index].dw10.pwl1_r3_slope_2 = -96; |
sampler_8x8[index].dw10.pwl1_r3_slope_3 = -32; |
sampler_8x8[index].dw11.pwl1_r3_slope_4 = -50; |
sampler_8x8[index].dw11.pwl1_r3_slope_5 = 0; |
sampler_8x8[index].dw11.pwl1_r3_slope_6 = 0; |
sampler_8x8[index].dw11.pwl1_r5_slope_0 = 116; |
sampler_8x8[index].dw12.pwl1_r5_slope_1 = 0; |
sampler_8x8[index].dw12.pwl1_r5_slope_2 = 114; |
sampler_8x8[index].dw12.pwl1_r5_slope_3 = 67; |
sampler_8x8[index].dw12.pwl1_r5_slope_4 = 9; |
sampler_8x8[index].dw13.pwl1_r5_slope_5 = -3; |
sampler_8x8[index].dw13.pwl1_r5_slope_6 = -15; |
sampler_8x8[index].dw13.limiter_boost = 0; |
sampler_8x8[index].dw13.minimum_limiter = 10; |
sampler_8x8[index].dw13.maximum_limiter = 11; |
sampler_8x8[index].dw14.clip_limiter = 130; |
dri_bo_emit_reloc(pp_context->sampler_state_table.bo, |
I915_GEM_DOMAIN_RENDER, |
0, |
0, |
sizeof(*sampler_8x8) * index + offsetof(struct i965_sampler_8x8, dw1), |
pp_context->sampler_state_table.bo_8x8); |
/* sample_8x8 UV index 2 */ |
index = 2; |
memset(&sampler_8x8[index], 0, sizeof(*sampler_8x8)); |
sampler_8x8[index].dw0.avs_filter_type = AVS_FILTER_ADAPTIVE_8_TAP; |
sampler_8x8[index].dw0.ief_bypass = 1; |
sampler_8x8[index].dw0.ief_filter_type = IEF_FILTER_DETAIL; |
sampler_8x8[index].dw0.ief_filter_size = IEF_FILTER_SIZE_5X5; |
sampler_8x8[index].dw1.sampler_8x8_state_pointer = pp_context->sampler_state_table.bo_8x8->offset >> 5; |
sampler_8x8[index].dw2.global_noise_estimation = 22; |
sampler_8x8[index].dw2.strong_edge_threshold = 8; |
sampler_8x8[index].dw2.weak_edge_threshold = 1; |
sampler_8x8[index].dw3.strong_edge_weight = 7; |
sampler_8x8[index].dw3.regular_weight = 2; |
sampler_8x8[index].dw3.non_edge_weight = 0; |
sampler_8x8[index].dw3.gain_factor = 40; |
sampler_8x8[index].dw4.steepness_boost = 0; |
sampler_8x8[index].dw4.steepness_threshold = 0; |
sampler_8x8[index].dw4.mr_boost = 0; |
sampler_8x8[index].dw4.mr_threshold = 5; |
sampler_8x8[index].dw5.pwl1_point_1 = 4; |
sampler_8x8[index].dw5.pwl1_point_2 = 12; |
sampler_8x8[index].dw5.pwl1_point_3 = 16; |
sampler_8x8[index].dw5.pwl1_point_4 = 26; |
sampler_8x8[index].dw6.pwl1_point_5 = 40; |
sampler_8x8[index].dw6.pwl1_point_6 = 160; |
sampler_8x8[index].dw6.pwl1_r3_bias_0 = 127; |
sampler_8x8[index].dw6.pwl1_r3_bias_1 = 98; |
sampler_8x8[index].dw7.pwl1_r3_bias_2 = 88; |
sampler_8x8[index].dw7.pwl1_r3_bias_3 = 64; |
sampler_8x8[index].dw7.pwl1_r3_bias_4 = 44; |
sampler_8x8[index].dw7.pwl1_r3_bias_5 = 0; |
sampler_8x8[index].dw8.pwl1_r3_bias_6 = 0; |
sampler_8x8[index].dw8.pwl1_r5_bias_0 = 3; |
sampler_8x8[index].dw8.pwl1_r5_bias_1 = 32; |
sampler_8x8[index].dw8.pwl1_r5_bias_2 = 32; |
sampler_8x8[index].dw9.pwl1_r5_bias_3 = 58; |
sampler_8x8[index].dw9.pwl1_r5_bias_4 = 100; |
sampler_8x8[index].dw9.pwl1_r5_bias_5 = 108; |
sampler_8x8[index].dw9.pwl1_r5_bias_6 = 88; |
sampler_8x8[index].dw10.pwl1_r3_slope_0 = -116; |
sampler_8x8[index].dw10.pwl1_r3_slope_1 = -20; |
sampler_8x8[index].dw10.pwl1_r3_slope_2 = -96; |
sampler_8x8[index].dw10.pwl1_r3_slope_3 = -32; |
sampler_8x8[index].dw11.pwl1_r3_slope_4 = -50; |
sampler_8x8[index].dw11.pwl1_r3_slope_5 = 0; |
sampler_8x8[index].dw11.pwl1_r3_slope_6 = 0; |
sampler_8x8[index].dw11.pwl1_r5_slope_0 = 116; |
sampler_8x8[index].dw12.pwl1_r5_slope_1 = 0; |
sampler_8x8[index].dw12.pwl1_r5_slope_2 = 114; |
sampler_8x8[index].dw12.pwl1_r5_slope_3 = 67; |
sampler_8x8[index].dw12.pwl1_r5_slope_4 = 9; |
sampler_8x8[index].dw13.pwl1_r5_slope_5 = -3; |
sampler_8x8[index].dw13.pwl1_r5_slope_6 = -15; |
sampler_8x8[index].dw13.limiter_boost = 0; |
sampler_8x8[index].dw13.minimum_limiter = 10; |
sampler_8x8[index].dw13.maximum_limiter = 11; |
sampler_8x8[index].dw14.clip_limiter = 130; |
dri_bo_emit_reloc(pp_context->sampler_state_table.bo, |
I915_GEM_DOMAIN_RENDER, |
0, |
0, |
sizeof(*sampler_8x8) * index + offsetof(struct i965_sampler_8x8, dw1), |
pp_context->sampler_state_table.bo_8x8); |
dri_bo_unmap(pp_context->sampler_state_table.bo); |
/* private function & data */ |
pp_context->pp_x_steps = pp_avs_x_steps; |
pp_context->pp_y_steps = pp_avs_y_steps; |
pp_context->pp_set_block_parameter = pp_avs_set_block_parameter; |
int dst_left_edge_extend = dst_rect->x%GPU_ASM_X_OFFSET_ALIGNMENT; |
float src_left_edge_extend = (float)dst_left_edge_extend*src_rect->width/dst_rect->width; |
pp_avs_context->dest_x = dst_rect->x - dst_left_edge_extend; |
pp_avs_context->dest_y = dst_rect->y; |
pp_avs_context->dest_w = ALIGN(dst_rect->width + dst_left_edge_extend, 16); |
pp_avs_context->dest_h = ALIGN(dst_rect->height, 8); |
pp_avs_context->src_normalized_x = (float)(src_rect->x - src_left_edge_extend)/ in_w; |
pp_avs_context->src_normalized_y = (float)src_rect->y / in_h; |
pp_avs_context->src_w = src_rect->width + src_left_edge_extend; |
pp_avs_context->src_h = src_rect->height; |
pp_static_parameter->grf4.r4_2.avs.nlas = nlas; |
pp_static_parameter->grf1.r1_6.normalized_video_y_scaling_step = (float) src_rect->height / in_h / dst_rect->height; |
pp_inline_parameter->grf5.normalized_video_x_scaling_step = (float) (src_rect->width + src_left_edge_extend)/ in_w / (dst_rect->width + dst_left_edge_extend); |
pp_inline_parameter->grf5.block_count_x = 1; /* M x 1 */ |
pp_inline_parameter->grf5.number_blocks = pp_avs_context->dest_h / 8; |
pp_inline_parameter->grf6.video_step_delta = 0.0; |
dst_surface->flags = src_surface->flags; |
return VA_STATUS_SUCCESS; |
} |
static VAStatus |
pp_nv12_avs_initialize_nlas(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param) |
{ |
return pp_nv12_avs_initialize(ctx, pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
filter_param, |
1); |
} |
static VAStatus |
gen6_nv12_scaling_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param) |
{ |
return pp_nv12_avs_initialize(ctx, pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
filter_param, |
0); |
} |
static int |
gen7_pp_avs_x_steps(void *private_context) |
{ |
struct pp_avs_context *pp_avs_context = private_context; |
return pp_avs_context->dest_w / 16; |
} |
static int |
gen7_pp_avs_y_steps(void *private_context) |
{ |
struct pp_avs_context *pp_avs_context = private_context; |
return pp_avs_context->dest_h / 16; |
} |
static int |
gen7_pp_avs_set_block_parameter(struct i965_post_processing_context *pp_context, int x, int y) |
{ |
struct pp_avs_context *pp_avs_context = (struct pp_avs_context *)&pp_context->private_context; |
struct gen7_pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
pp_inline_parameter->grf7.destination_block_horizontal_origin = x * 16 + pp_avs_context->dest_x; |
pp_inline_parameter->grf7.destination_block_vertical_origin = y * 16 + pp_avs_context->dest_y; |
pp_inline_parameter->grf7.constant_0 = 0xffffffff; |
pp_inline_parameter->grf7.sampler_load_main_video_x_scaling_step = 1.0 / pp_avs_context->src_w; |
return 0; |
} |
static void gen7_update_src_surface_uv_offset(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
const struct i965_surface *surface) |
{ |
struct gen7_pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
int fourcc = pp_get_surface_fourcc(ctx, surface); |
if (fourcc == VA_FOURCC('Y', 'U', 'Y', '2')) { |
pp_static_parameter->grf2.di_destination_packed_y_component_offset = 0; |
pp_static_parameter->grf2.di_destination_packed_u_component_offset = 1; |
pp_static_parameter->grf2.di_destination_packed_v_component_offset = 3; |
} else if (fourcc == VA_FOURCC('U', 'Y', 'V', 'Y')) { |
pp_static_parameter->grf2.di_destination_packed_y_component_offset = 1; |
pp_static_parameter->grf2.di_destination_packed_u_component_offset = 0; |
pp_static_parameter->grf2.di_destination_packed_v_component_offset = 2; |
} |
} |
static VAStatus |
gen7_pp_plx_avs_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param) |
{ |
struct pp_avs_context *pp_avs_context = (struct pp_avs_context *)&pp_context->private_context; |
struct gen7_pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
struct gen7_sampler_8x8 *sampler_8x8; |
struct i965_sampler_8x8_state *sampler_8x8_state; |
int index, i; |
int width[3], height[3], pitch[3], offset[3]; |
int src_height; |
/* source surface */ |
gen7_pp_set_media_rw_message_surface(ctx, pp_context, src_surface, 0, 0, |
width, height, pitch, offset); |
src_height = height[0]; |
/* destination surface */ |
gen7_pp_set_media_rw_message_surface(ctx, pp_context, dst_surface, 24, 1, |
width, height, pitch, offset); |
/* sampler 8x8 state */ |
dri_bo_map(pp_context->sampler_state_table.bo_8x8, True); |
assert(pp_context->sampler_state_table.bo_8x8->virtual); |
assert(sizeof(*sampler_8x8_state) == sizeof(int) * 138); |
sampler_8x8_state = pp_context->sampler_state_table.bo_8x8->virtual; |
memset(sampler_8x8_state, 0, sizeof(*sampler_8x8_state)); |
for (i = 0; i < 17; i++) { |
/* for Y channel, currently ignore */ |
sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c0 = 0x0; |
sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c1 = 0x0; |
sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c2 = 0x0; |
sampler_8x8_state->coefficients[i].dw0.table_0x_filter_c3 = 0x0; |
sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c4 = 0x0; |
sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c5 = 0x0; |
sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c6 = 0x0; |
sampler_8x8_state->coefficients[i].dw1.table_0x_filter_c7 = 0x0; |
sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c0 = 0x0; |
sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c1 = 0x0; |
sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c2 = 0x0; |
sampler_8x8_state->coefficients[i].dw2.table_0y_filter_c3 = 0x0; |
sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c4 = 0x0; |
sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c5 = 0x0; |
sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c6 = 0x0; |
sampler_8x8_state->coefficients[i].dw3.table_0y_filter_c7 = 0x0; |
/* for U/V channel, 0.25 */ |
sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c0 = 0x0; |
sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c1 = 0x0; |
sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c2 = 0x10; |
sampler_8x8_state->coefficients[i].dw4.table_1x_filter_c3 = 0x10; |
sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c4 = 0x10; |
sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c5 = 0x10; |
sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c6 = 0x0; |
sampler_8x8_state->coefficients[i].dw5.table_1x_filter_c7 = 0x0; |
sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c0 = 0x0; |
sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c1 = 0x0; |
sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c2 = 0x10; |
sampler_8x8_state->coefficients[i].dw6.table_1y_filter_c3 = 0x10; |
sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c4 = 0x10; |
sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c5 = 0x10; |
sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c6 = 0x0; |
sampler_8x8_state->coefficients[i].dw7.table_1y_filter_c7 = 0x0; |
} |
sampler_8x8_state->dw136.default_sharpness_level = 0; |
sampler_8x8_state->dw137.adaptive_filter_for_all_channel = 1; |
sampler_8x8_state->dw137.bypass_y_adaptive_filtering = 1; |
sampler_8x8_state->dw137.bypass_x_adaptive_filtering = 1; |
dri_bo_unmap(pp_context->sampler_state_table.bo_8x8); |
/* sampler 8x8 */ |
dri_bo_map(pp_context->sampler_state_table.bo, True); |
assert(pp_context->sampler_state_table.bo->virtual); |
assert(sizeof(*sampler_8x8) == sizeof(int) * 4); |
sampler_8x8 = pp_context->sampler_state_table.bo->virtual; |
/* sample_8x8 Y index 4 */ |
index = 4; |
memset(&sampler_8x8[index], 0, sizeof(*sampler_8x8)); |
sampler_8x8[index].dw0.global_noise_estimation = 255; |
sampler_8x8[index].dw0.ief_bypass = 1; |
sampler_8x8[index].dw1.sampler_8x8_state_pointer = pp_context->sampler_state_table.bo_8x8->offset >> 5; |
sampler_8x8[index].dw2.weak_edge_threshold = 1; |
sampler_8x8[index].dw2.strong_edge_threshold = 8; |
sampler_8x8[index].dw2.r5x_coefficient = 9; |
sampler_8x8[index].dw2.r5cx_coefficient = 8; |
sampler_8x8[index].dw2.r5c_coefficient = 3; |
sampler_8x8[index].dw3.r3x_coefficient = 27; |
sampler_8x8[index].dw3.r3c_coefficient = 5; |
sampler_8x8[index].dw3.gain_factor = 40; |
sampler_8x8[index].dw3.non_edge_weight = 1; |
sampler_8x8[index].dw3.regular_weight = 2; |
sampler_8x8[index].dw3.strong_edge_weight = 7; |
sampler_8x8[index].dw3.ief4_smooth_enable = 0; |
dri_bo_emit_reloc(pp_context->sampler_state_table.bo, |
I915_GEM_DOMAIN_RENDER, |
0, |
0, |
sizeof(*sampler_8x8) * index + offsetof(struct i965_sampler_8x8, dw1), |
pp_context->sampler_state_table.bo_8x8); |
/* sample_8x8 UV index 8 */ |
index = 8; |
memset(&sampler_8x8[index], 0, sizeof(*sampler_8x8)); |
sampler_8x8[index].dw0.disable_8x8_filter = 0; |
sampler_8x8[index].dw0.global_noise_estimation = 255; |
sampler_8x8[index].dw0.ief_bypass = 1; |
sampler_8x8[index].dw1.sampler_8x8_state_pointer = pp_context->sampler_state_table.bo_8x8->offset >> 5; |
sampler_8x8[index].dw2.weak_edge_threshold = 1; |
sampler_8x8[index].dw2.strong_edge_threshold = 8; |
sampler_8x8[index].dw2.r5x_coefficient = 9; |
sampler_8x8[index].dw2.r5cx_coefficient = 8; |
sampler_8x8[index].dw2.r5c_coefficient = 3; |
sampler_8x8[index].dw3.r3x_coefficient = 27; |
sampler_8x8[index].dw3.r3c_coefficient = 5; |
sampler_8x8[index].dw3.gain_factor = 40; |
sampler_8x8[index].dw3.non_edge_weight = 1; |
sampler_8x8[index].dw3.regular_weight = 2; |
sampler_8x8[index].dw3.strong_edge_weight = 7; |
sampler_8x8[index].dw3.ief4_smooth_enable = 0; |
dri_bo_emit_reloc(pp_context->sampler_state_table.bo, |
I915_GEM_DOMAIN_RENDER, |
0, |
0, |
sizeof(*sampler_8x8) * index + offsetof(struct i965_sampler_8x8, dw1), |
pp_context->sampler_state_table.bo_8x8); |
/* sampler_8x8 V, index 12 */ |
index = 12; |
memset(&sampler_8x8[index], 0, sizeof(*sampler_8x8)); |
sampler_8x8[index].dw0.disable_8x8_filter = 0; |
sampler_8x8[index].dw0.global_noise_estimation = 255; |
sampler_8x8[index].dw0.ief_bypass = 1; |
sampler_8x8[index].dw1.sampler_8x8_state_pointer = pp_context->sampler_state_table.bo_8x8->offset >> 5; |
sampler_8x8[index].dw2.weak_edge_threshold = 1; |
sampler_8x8[index].dw2.strong_edge_threshold = 8; |
sampler_8x8[index].dw2.r5x_coefficient = 9; |
sampler_8x8[index].dw2.r5cx_coefficient = 8; |
sampler_8x8[index].dw2.r5c_coefficient = 3; |
sampler_8x8[index].dw3.r3x_coefficient = 27; |
sampler_8x8[index].dw3.r3c_coefficient = 5; |
sampler_8x8[index].dw3.gain_factor = 40; |
sampler_8x8[index].dw3.non_edge_weight = 1; |
sampler_8x8[index].dw3.regular_weight = 2; |
sampler_8x8[index].dw3.strong_edge_weight = 7; |
sampler_8x8[index].dw3.ief4_smooth_enable = 0; |
dri_bo_emit_reloc(pp_context->sampler_state_table.bo, |
I915_GEM_DOMAIN_RENDER, |
0, |
0, |
sizeof(*sampler_8x8) * index + offsetof(struct i965_sampler_8x8, dw1), |
pp_context->sampler_state_table.bo_8x8); |
dri_bo_unmap(pp_context->sampler_state_table.bo); |
/* private function & data */ |
pp_context->pp_x_steps = gen7_pp_avs_x_steps; |
pp_context->pp_y_steps = gen7_pp_avs_y_steps; |
pp_context->pp_set_block_parameter = gen7_pp_avs_set_block_parameter; |
pp_avs_context->dest_x = dst_rect->x; |
pp_avs_context->dest_y = dst_rect->y; |
pp_avs_context->dest_w = ALIGN(dst_rect->width, 16); |
pp_avs_context->dest_h = ALIGN(dst_rect->height, 16); |
pp_avs_context->src_w = src_rect->width; |
pp_avs_context->src_h = src_rect->height; |
int dw = (pp_avs_context->src_w - 1) / 16 + 1; |
dw = MAX(dw, pp_avs_context->dest_w); |
pp_static_parameter->grf1.pointer_to_inline_parameter = 7; |
pp_static_parameter->grf2.avs_wa_enable = 1; /* must be set for GEN7 */ |
pp_static_parameter->grf2.avs_wa_width = dw; |
pp_static_parameter->grf2.avs_wa_one_div_256_width = (float) 1.0 / (256 * dw); |
pp_static_parameter->grf2.avs_wa_five_div_256_width = (float) 5.0 / (256 * dw); |
pp_static_parameter->grf3.sampler_load_horizontal_scaling_step_ratio = (float) pp_avs_context->src_w / pp_avs_context->dest_w; |
pp_static_parameter->grf4.sampler_load_vertical_scaling_step = (float) src_rect->height / src_height / pp_avs_context->dest_h; |
pp_static_parameter->grf5.sampler_load_vertical_frame_origin = -(float)pp_avs_context->dest_y / pp_avs_context->dest_h; |
pp_static_parameter->grf6.sampler_load_horizontal_frame_origin = -(float)pp_avs_context->dest_x / pp_avs_context->dest_w; |
gen7_update_src_surface_uv_offset(ctx, pp_context, dst_surface); |
dst_surface->flags = src_surface->flags; |
return VA_STATUS_SUCCESS; |
} |
static int |
pp_dndi_x_steps(void *private_context) |
{ |
return 1; |
} |
static int |
pp_dndi_y_steps(void *private_context) |
{ |
struct pp_dndi_context *pp_dndi_context = private_context; |
return pp_dndi_context->dest_h / 4; |
} |
static int |
pp_dndi_set_block_parameter(struct i965_post_processing_context *pp_context, int x, int y) |
{ |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
pp_inline_parameter->grf5.destination_block_horizontal_origin = x * 16; |
pp_inline_parameter->grf5.destination_block_vertical_origin = y * 4; |
return 0; |
} |
static |
VAStatus pp_nv12_dndi_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct pp_dndi_context *pp_dndi_context = (struct pp_dndi_context *)&pp_context->private_context; |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
struct pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
struct object_surface *obj_surface; |
struct i965_sampler_dndi *sampler_dndi; |
int index; |
int w, h; |
int orig_w, orig_h; |
int dndi_top_first = 1; |
if (src_surface->flags == I965_SURFACE_FLAG_FRAME) |
return VA_STATUS_ERROR_FLAG_NOT_SUPPORTED; |
if (src_surface->flags == I965_SURFACE_FLAG_TOP_FIELD_FIRST) |
dndi_top_first = 1; |
else |
dndi_top_first = 0; |
/* surface */ |
obj_surface = SURFACE(src_surface->id); |
orig_w = obj_surface->orig_width; |
orig_h = obj_surface->orig_height; |
w = obj_surface->width; |
h = obj_surface->height; |
if (pp_context->stmm.bo == NULL) { |
pp_context->stmm.bo = dri_bo_alloc(i965->intel.bufmgr, |
"STMM surface", |
w * h, |
4096); |
assert(pp_context->stmm.bo); |
} |
/* source UV surface index 2 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, w * h, |
orig_w / 4, orig_h / 2, w, I965_SURFACEFORMAT_R8G8_UNORM, |
2, 0); |
/* source YUV surface index 4 */ |
i965_pp_set_surface2_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w, orig_h, w, |
0, h, |
SURFACE_FORMAT_PLANAR_420_8, 1, |
4); |
/* source STMM surface index 20 */ |
i965_pp_set_surface_state(ctx, pp_context, |
pp_context->stmm.bo, 0, |
orig_w, orig_h, w, I965_SURFACEFORMAT_R8_UNORM, |
20, 1); |
/* destination surface */ |
obj_surface = SURFACE(dst_surface->id); |
orig_w = obj_surface->orig_width; |
orig_h = obj_surface->orig_height; |
w = obj_surface->width; |
h = obj_surface->height; |
/* destination Y surface index 7 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w / 4, orig_h, w, I965_SURFACEFORMAT_R8_UNORM, |
7, 1); |
/* destination UV surface index 8 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, w * h, |
orig_w / 4, orig_h / 2, w, I965_SURFACEFORMAT_R8G8_UNORM, |
8, 1); |
/* sampler dndi */ |
dri_bo_map(pp_context->sampler_state_table.bo, True); |
assert(pp_context->sampler_state_table.bo->virtual); |
assert(sizeof(*sampler_dndi) == sizeof(int) * 8); |
sampler_dndi = pp_context->sampler_state_table.bo->virtual; |
/* sample dndi index 1 */ |
index = 0; |
sampler_dndi[index].dw0.denoise_asd_threshold = 0; |
sampler_dndi[index].dw0.denoise_history_delta = 8; // 0-15, default is 8 |
sampler_dndi[index].dw0.denoise_maximum_history = 128; // 128-240 |
sampler_dndi[index].dw0.denoise_stad_threshold = 0; |
sampler_dndi[index].dw1.denoise_threshold_for_sum_of_complexity_measure = 64; |
sampler_dndi[index].dw1.denoise_moving_pixel_threshold = 4; |
sampler_dndi[index].dw1.stmm_c2 = 1; |
sampler_dndi[index].dw1.low_temporal_difference_threshold = 8; |
sampler_dndi[index].dw1.temporal_difference_threshold = 16; |
sampler_dndi[index].dw2.block_noise_estimate_noise_threshold = 15; // 0-31 |
sampler_dndi[index].dw2.block_noise_estimate_edge_threshold = 7; // 0-15 |
sampler_dndi[index].dw2.denoise_edge_threshold = 7; // 0-15 |
sampler_dndi[index].dw2.good_neighbor_threshold = 4; // 0-63 |
sampler_dndi[index].dw3.maximum_stmm = 128; |
sampler_dndi[index].dw3.multipler_for_vecm = 2; |
sampler_dndi[index].dw3.blending_constant_across_time_for_small_values_of_stmm = 0; |
sampler_dndi[index].dw3.blending_constant_across_time_for_large_values_of_stmm = 64; |
sampler_dndi[index].dw3.stmm_blending_constant_select = 0; |
sampler_dndi[index].dw4.sdi_delta = 8; |
sampler_dndi[index].dw4.sdi_threshold = 128; |
sampler_dndi[index].dw4.stmm_output_shift = 7; // stmm_max - stmm_min = 2 ^ stmm_output_shift |
sampler_dndi[index].dw4.stmm_shift_up = 0; |
sampler_dndi[index].dw4.stmm_shift_down = 0; |
sampler_dndi[index].dw4.minimum_stmm = 0; |
sampler_dndi[index].dw5.fmd_temporal_difference_threshold = 8; |
sampler_dndi[index].dw5.sdi_fallback_mode_2_constant = 32; |
sampler_dndi[index].dw5.sdi_fallback_mode_1_t2_constant = 64; |
sampler_dndi[index].dw5.sdi_fallback_mode_1_t1_constant = 32; |
sampler_dndi[index].dw6.dn_enable = 1; |
sampler_dndi[index].dw6.di_enable = 1; |
sampler_dndi[index].dw6.di_partial = 0; |
sampler_dndi[index].dw6.dndi_top_first = dndi_top_first; |
sampler_dndi[index].dw6.dndi_stream_id = 0; |
sampler_dndi[index].dw6.dndi_first_frame = 1; |
sampler_dndi[index].dw6.progressive_dn = 0; |
sampler_dndi[index].dw6.fmd_tear_threshold = 63; |
sampler_dndi[index].dw6.fmd2_vertical_difference_threshold = 32; |
sampler_dndi[index].dw6.fmd1_vertical_difference_threshold = 32; |
sampler_dndi[index].dw7.fmd_for_1st_field_of_current_frame = 0; |
sampler_dndi[index].dw7.fmd_for_2nd_field_of_previous_frame = 0; |
sampler_dndi[index].dw7.vdi_walker_enable = 0; |
sampler_dndi[index].dw7.column_width_minus1 = 0; |
dri_bo_unmap(pp_context->sampler_state_table.bo); |
/* private function & data */ |
pp_context->pp_x_steps = pp_dndi_x_steps; |
pp_context->pp_y_steps = pp_dndi_y_steps; |
pp_context->pp_set_block_parameter = pp_dndi_set_block_parameter; |
pp_static_parameter->grf1.statistics_surface_picth = w / 2; |
pp_static_parameter->grf1.r1_6.di.top_field_first = dndi_top_first; |
pp_static_parameter->grf4.r4_2.di.motion_history_coefficient_m2 = 0; |
pp_static_parameter->grf4.r4_2.di.motion_history_coefficient_m1 = 0; |
pp_inline_parameter->grf5.block_count_x = w / 16; /* 1 x N */ |
pp_inline_parameter->grf5.number_blocks = w / 16; |
pp_inline_parameter->grf5.block_vertical_mask = 0xff; |
pp_inline_parameter->grf5.block_horizontal_mask = 0xffff; |
pp_dndi_context->dest_w = w; |
pp_dndi_context->dest_h = h; |
dst_surface->flags = I965_SURFACE_FLAG_FRAME; |
return VA_STATUS_SUCCESS; |
} |
static int |
pp_dn_x_steps(void *private_context) |
{ |
return 1; |
} |
static int |
pp_dn_y_steps(void *private_context) |
{ |
struct pp_dn_context *pp_dn_context = private_context; |
return pp_dn_context->dest_h / 8; |
} |
static int |
pp_dn_set_block_parameter(struct i965_post_processing_context *pp_context, int x, int y) |
{ |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
pp_inline_parameter->grf5.destination_block_horizontal_origin = x * 16; |
pp_inline_parameter->grf5.destination_block_vertical_origin = y * 8; |
return 0; |
} |
static |
VAStatus pp_nv12_dn_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct pp_dn_context *pp_dn_context = (struct pp_dn_context *)&pp_context->private_context; |
struct object_surface *obj_surface; |
struct i965_sampler_dndi *sampler_dndi; |
struct pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
int index; |
int w, h; |
int orig_w, orig_h; |
int dn_strength = 15; |
int dndi_top_first = 1; |
int dn_progressive = 0; |
if (src_surface->flags == I965_SURFACE_FLAG_FRAME) { |
dndi_top_first = 1; |
dn_progressive = 1; |
} else if (src_surface->flags == I965_SURFACE_FLAG_TOP_FIELD_FIRST) { |
dndi_top_first = 1; |
dn_progressive = 0; |
} else { |
dndi_top_first = 0; |
dn_progressive = 0; |
} |
/* surface */ |
obj_surface = SURFACE(src_surface->id); |
orig_w = obj_surface->orig_width; |
orig_h = obj_surface->orig_height; |
w = obj_surface->width; |
h = obj_surface->height; |
if (pp_context->stmm.bo == NULL) { |
pp_context->stmm.bo = dri_bo_alloc(i965->intel.bufmgr, |
"STMM surface", |
w * h, |
4096); |
assert(pp_context->stmm.bo); |
} |
/* source UV surface index 2 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, w * h, |
orig_w / 4, orig_h / 2, w, I965_SURFACEFORMAT_R8G8_UNORM, |
2, 0); |
/* source YUV surface index 4 */ |
i965_pp_set_surface2_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w, orig_h, w, |
0, h, |
SURFACE_FORMAT_PLANAR_420_8, 1, |
4); |
/* source STMM surface index 20 */ |
i965_pp_set_surface_state(ctx, pp_context, |
pp_context->stmm.bo, 0, |
orig_w, orig_h, w, I965_SURFACEFORMAT_R8_UNORM, |
20, 1); |
/* destination surface */ |
obj_surface = SURFACE(dst_surface->id); |
orig_w = obj_surface->orig_width; |
orig_h = obj_surface->orig_height; |
w = obj_surface->width; |
h = obj_surface->height; |
/* destination Y surface index 7 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w / 4, orig_h, w, I965_SURFACEFORMAT_R8_UNORM, |
7, 1); |
/* destination UV surface index 8 */ |
i965_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, w * h, |
orig_w / 4, orig_h / 2, w, I965_SURFACEFORMAT_R8G8_UNORM, |
8, 1); |
/* sampler dn */ |
dri_bo_map(pp_context->sampler_state_table.bo, True); |
assert(pp_context->sampler_state_table.bo->virtual); |
assert(sizeof(*sampler_dndi) == sizeof(int) * 8); |
sampler_dndi = pp_context->sampler_state_table.bo->virtual; |
/* sample dndi index 1 */ |
index = 0; |
sampler_dndi[index].dw0.denoise_asd_threshold = 0; |
sampler_dndi[index].dw0.denoise_history_delta = 8; // 0-15, default is 8 |
sampler_dndi[index].dw0.denoise_maximum_history = 128; // 128-240 |
sampler_dndi[index].dw0.denoise_stad_threshold = 0; |
sampler_dndi[index].dw1.denoise_threshold_for_sum_of_complexity_measure = 64; |
sampler_dndi[index].dw1.denoise_moving_pixel_threshold = 0; |
sampler_dndi[index].dw1.stmm_c2 = 0; |
sampler_dndi[index].dw1.low_temporal_difference_threshold = 8; |
sampler_dndi[index].dw1.temporal_difference_threshold = 16; |
sampler_dndi[index].dw2.block_noise_estimate_noise_threshold = dn_strength; // 0-31 |
sampler_dndi[index].dw2.block_noise_estimate_edge_threshold = 7; // 0-15 |
sampler_dndi[index].dw2.denoise_edge_threshold = 7; // 0-15 |
sampler_dndi[index].dw2.good_neighbor_threshold = 7; // 0-63 |
sampler_dndi[index].dw3.maximum_stmm = 128; |
sampler_dndi[index].dw3.multipler_for_vecm = 2; |
sampler_dndi[index].dw3.blending_constant_across_time_for_small_values_of_stmm = 0; |
sampler_dndi[index].dw3.blending_constant_across_time_for_large_values_of_stmm = 64; |
sampler_dndi[index].dw3.stmm_blending_constant_select = 0; |
sampler_dndi[index].dw4.sdi_delta = 8; |
sampler_dndi[index].dw4.sdi_threshold = 128; |
sampler_dndi[index].dw4.stmm_output_shift = 7; // stmm_max - stmm_min = 2 ^ stmm_output_shift |
sampler_dndi[index].dw4.stmm_shift_up = 0; |
sampler_dndi[index].dw4.stmm_shift_down = 0; |
sampler_dndi[index].dw4.minimum_stmm = 0; |
sampler_dndi[index].dw5.fmd_temporal_difference_threshold = 0; |
sampler_dndi[index].dw5.sdi_fallback_mode_2_constant = 0; |
sampler_dndi[index].dw5.sdi_fallback_mode_1_t2_constant = 0; |
sampler_dndi[index].dw5.sdi_fallback_mode_1_t1_constant = 0; |
sampler_dndi[index].dw6.dn_enable = 1; |
sampler_dndi[index].dw6.di_enable = 0; |
sampler_dndi[index].dw6.di_partial = 0; |
sampler_dndi[index].dw6.dndi_top_first = dndi_top_first; |
sampler_dndi[index].dw6.dndi_stream_id = 1; |
sampler_dndi[index].dw6.dndi_first_frame = 1; |
sampler_dndi[index].dw6.progressive_dn = dn_progressive; |
sampler_dndi[index].dw6.fmd_tear_threshold = 32; |
sampler_dndi[index].dw6.fmd2_vertical_difference_threshold = 32; |
sampler_dndi[index].dw6.fmd1_vertical_difference_threshold = 32; |
sampler_dndi[index].dw7.fmd_for_1st_field_of_current_frame = 2; |
sampler_dndi[index].dw7.fmd_for_2nd_field_of_previous_frame = 1; |
sampler_dndi[index].dw7.vdi_walker_enable = 0; |
sampler_dndi[index].dw7.column_width_minus1 = w / 16; |
dri_bo_unmap(pp_context->sampler_state_table.bo); |
/* private function & data */ |
pp_context->pp_x_steps = pp_dn_x_steps; |
pp_context->pp_y_steps = pp_dn_y_steps; |
pp_context->pp_set_block_parameter = pp_dn_set_block_parameter; |
pp_static_parameter->grf1.statistics_surface_picth = w / 2; |
pp_static_parameter->grf1.r1_6.di.top_field_first = 0; |
pp_static_parameter->grf4.r4_2.di.motion_history_coefficient_m2 = 64; |
pp_static_parameter->grf4.r4_2.di.motion_history_coefficient_m1 = 192; |
pp_inline_parameter->grf5.block_count_x = w / 16; /* 1 x N */ |
pp_inline_parameter->grf5.number_blocks = w / 16; |
pp_inline_parameter->grf5.block_vertical_mask = 0xff; |
pp_inline_parameter->grf5.block_horizontal_mask = 0xffff; |
pp_dn_context->dest_w = w; |
pp_dn_context->dest_h = h; |
return VA_STATUS_SUCCESS; |
} |
static int |
gen7_pp_dndi_x_steps(void *private_context) |
{ |
struct pp_dndi_context *pp_dndi_context = private_context; |
return pp_dndi_context->dest_w / 16; |
} |
static int |
gen7_pp_dndi_y_steps(void *private_context) |
{ |
struct pp_dndi_context *pp_dndi_context = private_context; |
return pp_dndi_context->dest_h / 4; |
} |
static int |
gen7_pp_dndi_set_block_parameter(struct i965_post_processing_context *pp_context, int x, int y) |
{ |
struct gen7_pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
pp_inline_parameter->grf7.destination_block_horizontal_origin = x * 16; |
pp_inline_parameter->grf7.destination_block_vertical_origin = y * 4; |
return 0; |
} |
static VAStatus |
gen7_pp_nv12_dndi_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct pp_dndi_context *pp_dndi_context = (struct pp_dndi_context *)&pp_context->private_context; |
struct gen7_pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
struct object_surface *obj_surface; |
struct gen7_sampler_dndi *sampler_dndi; |
int index; |
int w, h; |
int orig_w, orig_h; |
int dndi_top_first = 1; |
if (src_surface->flags == I965_SURFACE_FLAG_FRAME) |
return VA_STATUS_ERROR_FLAG_NOT_SUPPORTED; |
if (src_surface->flags == I965_SURFACE_FLAG_TOP_FIELD_FIRST) |
dndi_top_first = 1; |
else |
dndi_top_first = 0; |
/* surface */ |
obj_surface = SURFACE(src_surface->id); |
orig_w = obj_surface->orig_width; |
orig_h = obj_surface->orig_height; |
w = obj_surface->width; |
h = obj_surface->height; |
if (pp_context->stmm.bo == NULL) { |
pp_context->stmm.bo = dri_bo_alloc(i965->intel.bufmgr, |
"STMM surface", |
w * h, |
4096); |
assert(pp_context->stmm.bo); |
} |
/* source UV surface index 1 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, w * h, |
orig_w / 4, orig_h / 2, w, I965_SURFACEFORMAT_R8G8_UNORM, |
1, 0); |
/* source YUV surface index 3 */ |
gen7_pp_set_surface2_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w, orig_h, w, |
0, h, |
SURFACE_FORMAT_PLANAR_420_8, 1, |
3); |
/* source (temporal reference) YUV surface index 4 */ |
gen7_pp_set_surface2_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w, orig_h, w, |
0, h, |
SURFACE_FORMAT_PLANAR_420_8, 1, |
4); |
/* STMM / History Statistics input surface, index 5 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
pp_context->stmm.bo, 0, |
orig_w, orig_h, w, I965_SURFACEFORMAT_R8_UNORM, |
5, 1); |
/* destination surface */ |
obj_surface = SURFACE(dst_surface->id); |
orig_w = obj_surface->orig_width; |
orig_h = obj_surface->orig_height; |
w = obj_surface->width; |
h = obj_surface->height; |
/* destination(Previous frame) Y surface index 27 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w / 4, orig_h, w, I965_SURFACEFORMAT_R8_UNORM, |
27, 1); |
/* destination(Previous frame) UV surface index 28 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, w * h, |
orig_w / 4, orig_h / 2, w, I965_SURFACEFORMAT_R8G8_UNORM, |
28, 1); |
/* destination(Current frame) Y surface index 30 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w / 4, orig_h, w, I965_SURFACEFORMAT_R8_UNORM, |
30, 1); |
/* destination(Current frame) UV surface index 31 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, w * h, |
orig_w / 4, orig_h / 2, w, I965_SURFACEFORMAT_R8G8_UNORM, |
31, 1); |
/* STMM output surface, index 33 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
pp_context->stmm.bo, 0, |
orig_w, orig_h, w, I965_SURFACEFORMAT_R8_UNORM, |
33, 1); |
/* sampler dndi */ |
dri_bo_map(pp_context->sampler_state_table.bo, True); |
assert(pp_context->sampler_state_table.bo->virtual); |
assert(sizeof(*sampler_dndi) == sizeof(int) * 8); |
sampler_dndi = pp_context->sampler_state_table.bo->virtual; |
/* sample dndi index 0 */ |
index = 0; |
sampler_dndi[index].dw0.denoise_asd_threshold = 0; |
sampler_dndi[index].dw0.dnmh_delt = 8; |
sampler_dndi[index].dw0.vdi_walker_y_stride = 0; |
sampler_dndi[index].dw0.vdi_walker_frame_sharing_enable = 0; |
sampler_dndi[index].dw0.denoise_maximum_history = 128; // 128-240 |
sampler_dndi[index].dw0.denoise_stad_threshold = 0; |
sampler_dndi[index].dw1.denoise_threshold_for_sum_of_complexity_measure = 64; |
sampler_dndi[index].dw1.denoise_moving_pixel_threshold = 0; |
sampler_dndi[index].dw1.stmm_c2 = 0; |
sampler_dndi[index].dw1.low_temporal_difference_threshold = 8; |
sampler_dndi[index].dw1.temporal_difference_threshold = 16; |
sampler_dndi[index].dw2.block_noise_estimate_noise_threshold = 15; // 0-31 |
sampler_dndi[index].dw2.bne_edge_th = 1; |
sampler_dndi[index].dw2.smooth_mv_th = 0; |
sampler_dndi[index].dw2.sad_tight_th = 5; |
sampler_dndi[index].dw2.cat_slope_minus1 = 9; |
sampler_dndi[index].dw2.good_neighbor_th = 4; |
sampler_dndi[index].dw3.maximum_stmm = 128; |
sampler_dndi[index].dw3.multipler_for_vecm = 2; |
sampler_dndi[index].dw3.blending_constant_across_time_for_small_values_of_stmm = 0; |
sampler_dndi[index].dw3.blending_constant_across_time_for_large_values_of_stmm = 64; |
sampler_dndi[index].dw3.stmm_blending_constant_select = 0; |
sampler_dndi[index].dw4.sdi_delta = 8; |
sampler_dndi[index].dw4.sdi_threshold = 128; |
sampler_dndi[index].dw4.stmm_output_shift = 7; // stmm_max - stmm_min = 2 ^ stmm_output_shift |
sampler_dndi[index].dw4.stmm_shift_up = 0; |
sampler_dndi[index].dw4.stmm_shift_down = 0; |
sampler_dndi[index].dw4.minimum_stmm = 0; |
sampler_dndi[index].dw5.fmd_temporal_difference_threshold = 0; |
sampler_dndi[index].dw5.sdi_fallback_mode_2_constant = 0; |
sampler_dndi[index].dw5.sdi_fallback_mode_1_t2_constant = 0; |
sampler_dndi[index].dw5.sdi_fallback_mode_1_t1_constant = 0; |
sampler_dndi[index].dw6.dn_enable = 0; |
sampler_dndi[index].dw6.di_enable = 1; |
sampler_dndi[index].dw6.di_partial = 0; |
sampler_dndi[index].dw6.dndi_top_first = dndi_top_first; |
sampler_dndi[index].dw6.dndi_stream_id = 1; |
sampler_dndi[index].dw6.dndi_first_frame = 1; |
sampler_dndi[index].dw6.progressive_dn = 0; |
sampler_dndi[index].dw6.mcdi_enable = 0; |
sampler_dndi[index].dw6.fmd_tear_threshold = 32; |
sampler_dndi[index].dw6.cat_th1 = 0; |
sampler_dndi[index].dw6.fmd2_vertical_difference_threshold = 32; |
sampler_dndi[index].dw6.fmd1_vertical_difference_threshold = 32; |
sampler_dndi[index].dw7.sad_tha = 5; |
sampler_dndi[index].dw7.sad_thb = 10; |
sampler_dndi[index].dw7.fmd_for_1st_field_of_current_frame = 0; |
sampler_dndi[index].dw7.mc_pixel_consistency_th = 25; |
sampler_dndi[index].dw7.fmd_for_2nd_field_of_previous_frame = 0; |
sampler_dndi[index].dw7.vdi_walker_enable = 0; |
sampler_dndi[index].dw7.neighborpixel_th = 10; |
sampler_dndi[index].dw7.column_width_minus1 = w / 16; |
dri_bo_unmap(pp_context->sampler_state_table.bo); |
/* private function & data */ |
pp_context->pp_x_steps = gen7_pp_dndi_x_steps; |
pp_context->pp_y_steps = gen7_pp_dndi_y_steps; |
pp_context->pp_set_block_parameter = gen7_pp_dndi_set_block_parameter; |
pp_static_parameter->grf1.di_statistics_surface_pitch_div2 = w / 2; |
pp_static_parameter->grf1.di_statistics_surface_height_div4 = h / 4; |
pp_static_parameter->grf1.di_top_field_first = 0; |
pp_static_parameter->grf1.pointer_to_inline_parameter = 7; |
pp_static_parameter->grf2.di_destination_packed_y_component_offset = 0; |
pp_static_parameter->grf2.di_destination_packed_u_component_offset = 1; |
pp_static_parameter->grf2.di_destination_packed_v_component_offset = 3; |
pp_static_parameter->grf4.di_hoffset_svf_from_dvf = 0; |
pp_static_parameter->grf4.di_voffset_svf_from_dvf = 0; |
pp_dndi_context->dest_w = w; |
pp_dndi_context->dest_h = h; |
dst_surface->flags = I965_SURFACE_FLAG_FRAME; |
return VA_STATUS_SUCCESS; |
} |
static int |
gen7_pp_dn_x_steps(void *private_context) |
{ |
struct pp_dn_context *pp_dn_context = private_context; |
return pp_dn_context->dest_w / 16; |
} |
static int |
gen7_pp_dn_y_steps(void *private_context) |
{ |
struct pp_dn_context *pp_dn_context = private_context; |
return pp_dn_context->dest_h / 4; |
} |
static int |
gen7_pp_dn_set_block_parameter(struct i965_post_processing_context *pp_context, int x, int y) |
{ |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
pp_inline_parameter->grf5.destination_block_horizontal_origin = x * 16; |
pp_inline_parameter->grf5.destination_block_vertical_origin = y * 4; |
return 0; |
} |
static VAStatus |
gen7_pp_nv12_dn_initialize(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct pp_dn_context *pp_dn_context = (struct pp_dn_context *)&pp_context->private_context; |
struct gen7_pp_static_parameter *pp_static_parameter = pp_context->pp_static_parameter; |
struct object_surface *obj_surface; |
struct gen7_sampler_dndi *sampler_dn; |
int index; |
int w, h; |
int orig_w, orig_h; |
int dn_strength = 15; |
int dndi_top_first = 1; |
int dn_progressive = 0; |
if (src_surface->flags == I965_SURFACE_FLAG_FRAME) { |
dndi_top_first = 1; |
dn_progressive = 1; |
} else if (src_surface->flags == I965_SURFACE_FLAG_TOP_FIELD_FIRST) { |
dndi_top_first = 1; |
dn_progressive = 0; |
} else { |
dndi_top_first = 0; |
dn_progressive = 0; |
} |
/* surface */ |
obj_surface = SURFACE(src_surface->id); |
orig_w = obj_surface->orig_width; |
orig_h = obj_surface->orig_height; |
w = obj_surface->width; |
h = obj_surface->height; |
if (pp_context->stmm.bo == NULL) { |
pp_context->stmm.bo = dri_bo_alloc(i965->intel.bufmgr, |
"STMM surface", |
w * h, |
4096); |
assert(pp_context->stmm.bo); |
} |
/* source UV surface index 1 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, w * h, |
orig_w / 4, orig_h / 2, w, I965_SURFACEFORMAT_R8G8_UNORM, |
1, 0); |
/* source YUV surface index 3 */ |
gen7_pp_set_surface2_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w, orig_h, w, |
0, h, |
SURFACE_FORMAT_PLANAR_420_8, 1, |
3); |
/* source (temporal reference) YUV surface index 4 */ |
gen7_pp_set_surface2_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w, orig_h, w, |
0, h, |
SURFACE_FORMAT_PLANAR_420_8, 1, |
4); |
/* STMM / History Statistics input surface, index 5 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
pp_context->stmm.bo, 0, |
orig_w, orig_h, w, I965_SURFACEFORMAT_R8_UNORM, |
5, 1); |
/* destination surface */ |
obj_surface = SURFACE(dst_surface->id); |
orig_w = obj_surface->orig_width; |
orig_h = obj_surface->orig_height; |
w = obj_surface->width; |
h = obj_surface->height; |
/* destination Y surface index 24 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, 0, |
orig_w / 4, orig_h, w, I965_SURFACEFORMAT_R8_UNORM, |
24, 1); |
/* destination UV surface index 25 */ |
gen7_pp_set_surface_state(ctx, pp_context, |
obj_surface->bo, w * h, |
orig_w / 4, orig_h / 2, w, I965_SURFACEFORMAT_R8G8_UNORM, |
25, 1); |
/* sampler dn */ |
dri_bo_map(pp_context->sampler_state_table.bo, True); |
assert(pp_context->sampler_state_table.bo->virtual); |
assert(sizeof(*sampler_dn) == sizeof(int) * 8); |
sampler_dn = pp_context->sampler_state_table.bo->virtual; |
/* sample dn index 1 */ |
index = 0; |
sampler_dn[index].dw0.denoise_asd_threshold = 0; |
sampler_dn[index].dw0.dnmh_delt = 8; |
sampler_dn[index].dw0.vdi_walker_y_stride = 0; |
sampler_dn[index].dw0.vdi_walker_frame_sharing_enable = 0; |
sampler_dn[index].dw0.denoise_maximum_history = 128; // 128-240 |
sampler_dn[index].dw0.denoise_stad_threshold = 0; |
sampler_dn[index].dw1.denoise_threshold_for_sum_of_complexity_measure = 64; |
sampler_dn[index].dw1.denoise_moving_pixel_threshold = 0; |
sampler_dn[index].dw1.stmm_c2 = 0; |
sampler_dn[index].dw1.low_temporal_difference_threshold = 8; |
sampler_dn[index].dw1.temporal_difference_threshold = 16; |
sampler_dn[index].dw2.block_noise_estimate_noise_threshold = dn_strength; // 0-31 |
sampler_dn[index].dw2.bne_edge_th = 1; |
sampler_dn[index].dw2.smooth_mv_th = 0; |
sampler_dn[index].dw2.sad_tight_th = 5; |
sampler_dn[index].dw2.cat_slope_minus1 = 9; |
sampler_dn[index].dw2.good_neighbor_th = 4; |
sampler_dn[index].dw3.maximum_stmm = 128; |
sampler_dn[index].dw3.multipler_for_vecm = 2; |
sampler_dn[index].dw3.blending_constant_across_time_for_small_values_of_stmm = 0; |
sampler_dn[index].dw3.blending_constant_across_time_for_large_values_of_stmm = 64; |
sampler_dn[index].dw3.stmm_blending_constant_select = 0; |
sampler_dn[index].dw4.sdi_delta = 8; |
sampler_dn[index].dw4.sdi_threshold = 128; |
sampler_dn[index].dw4.stmm_output_shift = 7; // stmm_max - stmm_min = 2 ^ stmm_output_shift |
sampler_dn[index].dw4.stmm_shift_up = 0; |
sampler_dn[index].dw4.stmm_shift_down = 0; |
sampler_dn[index].dw4.minimum_stmm = 0; |
sampler_dn[index].dw5.fmd_temporal_difference_threshold = 0; |
sampler_dn[index].dw5.sdi_fallback_mode_2_constant = 0; |
sampler_dn[index].dw5.sdi_fallback_mode_1_t2_constant = 0; |
sampler_dn[index].dw5.sdi_fallback_mode_1_t1_constant = 0; |
sampler_dn[index].dw6.dn_enable = 1; |
sampler_dn[index].dw6.di_enable = 0; |
sampler_dn[index].dw6.di_partial = 0; |
sampler_dn[index].dw6.dndi_top_first = dndi_top_first; |
sampler_dn[index].dw6.dndi_stream_id = 1; |
sampler_dn[index].dw6.dndi_first_frame = 1; |
sampler_dn[index].dw6.progressive_dn = dn_progressive; |
sampler_dn[index].dw6.mcdi_enable = 0; |
sampler_dn[index].dw6.fmd_tear_threshold = 32; |
sampler_dn[index].dw6.cat_th1 = 0; |
sampler_dn[index].dw6.fmd2_vertical_difference_threshold = 32; |
sampler_dn[index].dw6.fmd1_vertical_difference_threshold = 32; |
sampler_dn[index].dw7.sad_tha = 5; |
sampler_dn[index].dw7.sad_thb = 10; |
sampler_dn[index].dw7.fmd_for_1st_field_of_current_frame = 2; |
sampler_dn[index].dw7.mc_pixel_consistency_th = 25; |
sampler_dn[index].dw7.fmd_for_2nd_field_of_previous_frame = 1; |
sampler_dn[index].dw7.vdi_walker_enable = 0; |
sampler_dn[index].dw7.neighborpixel_th = 10; |
sampler_dn[index].dw7.column_width_minus1 = w / 16; |
dri_bo_unmap(pp_context->sampler_state_table.bo); |
/* private function & data */ |
pp_context->pp_x_steps = gen7_pp_dn_x_steps; |
pp_context->pp_y_steps = gen7_pp_dn_y_steps; |
pp_context->pp_set_block_parameter = gen7_pp_dn_set_block_parameter; |
pp_static_parameter->grf1.di_statistics_surface_pitch_div2 = w / 2; |
pp_static_parameter->grf1.di_statistics_surface_height_div4 = h / 4; |
pp_static_parameter->grf1.di_top_field_first = 0; |
pp_static_parameter->grf1.pointer_to_inline_parameter = 7; |
pp_static_parameter->grf2.di_destination_packed_y_component_offset = 0; |
pp_static_parameter->grf2.di_destination_packed_u_component_offset = 1; |
pp_static_parameter->grf2.di_destination_packed_v_component_offset = 3; |
pp_static_parameter->grf4.di_hoffset_svf_from_dvf = 0; |
pp_static_parameter->grf4.di_voffset_svf_from_dvf = 0; |
pp_dn_context->dest_w = w; |
pp_dn_context->dest_h = h; |
dst_surface->flags = src_surface->flags; |
return VA_STATUS_SUCCESS; |
} |
static VAStatus |
ironlake_pp_initialize( |
VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
int pp_index, |
void *filter_param |
) |
{ |
VAStatus va_status; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct pp_module *pp_module; |
dri_bo *bo; |
int static_param_size, inline_param_size; |
dri_bo_unreference(pp_context->surface_state_binding_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state & binding table", |
(SURFACE_STATE_PADDED_SIZE + sizeof(unsigned int)) * MAX_PP_SURFACES, |
4096); |
assert(bo); |
pp_context->surface_state_binding_table.bo = bo; |
dri_bo_unreference(pp_context->curbe.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"constant buffer", |
4096, |
4096); |
assert(bo); |
pp_context->curbe.bo = bo; |
dri_bo_unreference(pp_context->idrt.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"interface discriptor", |
sizeof(struct i965_interface_descriptor), |
4096); |
assert(bo); |
pp_context->idrt.bo = bo; |
pp_context->idrt.num_interface_descriptors = 0; |
dri_bo_unreference(pp_context->sampler_state_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"sampler state table", |
4096, |
4096); |
assert(bo); |
dri_bo_map(bo, True); |
memset(bo->virtual, 0, bo->size); |
dri_bo_unmap(bo); |
pp_context->sampler_state_table.bo = bo; |
dri_bo_unreference(pp_context->sampler_state_table.bo_8x8); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"sampler 8x8 state ", |
4096, |
4096); |
assert(bo); |
pp_context->sampler_state_table.bo_8x8 = bo; |
dri_bo_unreference(pp_context->sampler_state_table.bo_8x8_uv); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"sampler 8x8 state ", |
4096, |
4096); |
assert(bo); |
pp_context->sampler_state_table.bo_8x8_uv = bo; |
dri_bo_unreference(pp_context->vfe_state.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vfe state", |
sizeof(struct i965_vfe_state), |
4096); |
assert(bo); |
pp_context->vfe_state.bo = bo; |
static_param_size = sizeof(struct pp_static_parameter); |
inline_param_size = sizeof(struct pp_inline_parameter); |
memset(pp_context->pp_static_parameter, 0, static_param_size); |
memset(pp_context->pp_inline_parameter, 0, inline_param_size); |
assert(pp_index >= PP_NULL && pp_index < NUM_PP_MODULES); |
pp_context->current_pp = pp_index; |
pp_module = &pp_context->pp_modules[pp_index]; |
if (pp_module->initialize) |
va_status = pp_module->initialize(ctx, pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
filter_param); |
else |
va_status = VA_STATUS_ERROR_UNIMPLEMENTED; |
return va_status; |
} |
static VAStatus |
ironlake_post_processing( |
VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
int pp_index, |
void *filter_param |
) |
{ |
VAStatus va_status; |
va_status = ironlake_pp_initialize(ctx, pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
pp_index, |
filter_param); |
if (va_status == VA_STATUS_SUCCESS) { |
ironlake_pp_states_setup(ctx, pp_context); |
ironlake_pp_pipeline_setup(ctx, pp_context); |
} |
return va_status; |
} |
static VAStatus |
gen6_pp_initialize( |
VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
int pp_index, |
void * filter_param |
) |
{ |
VAStatus va_status; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct pp_module *pp_module; |
dri_bo *bo; |
int static_param_size, inline_param_size; |
dri_bo_unreference(pp_context->surface_state_binding_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state & binding table", |
(SURFACE_STATE_PADDED_SIZE + sizeof(unsigned int)) * MAX_PP_SURFACES, |
4096); |
assert(bo); |
pp_context->surface_state_binding_table.bo = bo; |
dri_bo_unreference(pp_context->curbe.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"constant buffer", |
4096, |
4096); |
assert(bo); |
pp_context->curbe.bo = bo; |
dri_bo_unreference(pp_context->idrt.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"interface discriptor", |
sizeof(struct gen6_interface_descriptor_data), |
4096); |
assert(bo); |
pp_context->idrt.bo = bo; |
pp_context->idrt.num_interface_descriptors = 0; |
dri_bo_unreference(pp_context->sampler_state_table.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"sampler state table", |
4096, |
4096); |
assert(bo); |
dri_bo_map(bo, True); |
memset(bo->virtual, 0, bo->size); |
dri_bo_unmap(bo); |
pp_context->sampler_state_table.bo = bo; |
dri_bo_unreference(pp_context->sampler_state_table.bo_8x8); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"sampler 8x8 state ", |
4096, |
4096); |
assert(bo); |
pp_context->sampler_state_table.bo_8x8 = bo; |
dri_bo_unreference(pp_context->sampler_state_table.bo_8x8_uv); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"sampler 8x8 state ", |
4096, |
4096); |
assert(bo); |
pp_context->sampler_state_table.bo_8x8_uv = bo; |
dri_bo_unreference(pp_context->vfe_state.bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vfe state", |
sizeof(struct i965_vfe_state), |
4096); |
assert(bo); |
pp_context->vfe_state.bo = bo; |
if (IS_GEN7(i965->intel.device_id)) { |
static_param_size = sizeof(struct gen7_pp_static_parameter); |
inline_param_size = sizeof(struct gen7_pp_inline_parameter); |
} else { |
static_param_size = sizeof(struct pp_static_parameter); |
inline_param_size = sizeof(struct pp_inline_parameter); |
} |
memset(pp_context->pp_static_parameter, 0, static_param_size); |
memset(pp_context->pp_inline_parameter, 0, inline_param_size); |
assert(pp_index >= PP_NULL && pp_index < NUM_PP_MODULES); |
pp_context->current_pp = pp_index; |
pp_module = &pp_context->pp_modules[pp_index]; |
if (pp_module->initialize) |
va_status = pp_module->initialize(ctx, pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
filter_param); |
else |
va_status = VA_STATUS_ERROR_UNIMPLEMENTED; |
calculate_boundary_block_mask(pp_context, dst_rect); |
return va_status; |
} |
static void |
gen6_pp_interface_descriptor_table(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct gen6_interface_descriptor_data *desc; |
dri_bo *bo; |
int pp_index = pp_context->current_pp; |
bo = pp_context->idrt.bo; |
dri_bo_map(bo, True); |
assert(bo->virtual); |
desc = bo->virtual; |
memset(desc, 0, sizeof(*desc)); |
desc->desc0.kernel_start_pointer = |
pp_context->pp_modules[pp_index].kernel.bo->offset >> 6; /* reloc */ |
desc->desc1.single_program_flow = 1; |
desc->desc1.floating_point_mode = FLOATING_POINT_IEEE_754; |
desc->desc2.sampler_count = 1; /* 1 - 4 samplers used */ |
desc->desc2.sampler_state_pointer = |
pp_context->sampler_state_table.bo->offset >> 5; |
desc->desc3.binding_table_entry_count = 0; |
desc->desc3.binding_table_pointer = (BINDING_TABLE_OFFSET >> 5); |
desc->desc4.constant_urb_entry_read_offset = 0; |
if (IS_GEN7(i965->intel.device_id)) |
desc->desc4.constant_urb_entry_read_length = 6; /* grf 1-6 */ |
else |
desc->desc4.constant_urb_entry_read_length = 4; /* grf 1-4 */ |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
offsetof(struct gen6_interface_descriptor_data, desc0), |
pp_context->pp_modules[pp_index].kernel.bo); |
dri_bo_emit_reloc(bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
desc->desc2.sampler_count << 2, |
offsetof(struct gen6_interface_descriptor_data, desc2), |
pp_context->sampler_state_table.bo); |
dri_bo_unmap(bo); |
pp_context->idrt.num_interface_descriptors++; |
} |
static void |
gen6_pp_upload_constants(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
unsigned char *constant_buffer; |
int param_size; |
assert(sizeof(struct pp_static_parameter) == 128); |
assert(sizeof(struct gen7_pp_static_parameter) == 192); |
if (IS_GEN7(i965->intel.device_id)) |
param_size = sizeof(struct gen7_pp_static_parameter); |
else |
param_size = sizeof(struct pp_static_parameter); |
dri_bo_map(pp_context->curbe.bo, 1); |
assert(pp_context->curbe.bo->virtual); |
constant_buffer = pp_context->curbe.bo->virtual; |
memcpy(constant_buffer, pp_context->pp_static_parameter, param_size); |
dri_bo_unmap(pp_context->curbe.bo); |
} |
static void |
gen6_pp_states_setup(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
gen6_pp_interface_descriptor_table(ctx, pp_context); |
gen6_pp_upload_constants(ctx, pp_context); |
} |
static void |
gen6_pp_pipeline_select(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
BEGIN_BATCH(batch, 1); |
OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_MEDIA); |
ADVANCE_BATCH(batch); |
} |
static void |
gen6_pp_state_base_address(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
BEGIN_BATCH(batch, 10); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | (10 - 2)); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_RELOC(batch, pp_context->surface_state_binding_table.bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */ |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
ADVANCE_BATCH(batch); |
} |
static void |
gen6_pp_vfe_state(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
BEGIN_BATCH(batch, 8); |
OUT_BATCH(batch, CMD_MEDIA_VFE_STATE | (8 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, |
(pp_context->urb.num_vfe_entries - 1) << 16 | |
pp_context->urb.num_vfe_entries << 8); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, |
(pp_context->urb.size_vfe_entry * 2) << 16 | /* URB Entry Allocation Size, in 256 bits unit */ |
(pp_context->urb.size_cs_entry * pp_context->urb.num_cs_entries * 2)); /* CURBE Allocation Size, in 256 bits unit */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
gen6_pp_curbe_load(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
assert(pp_context->urb.size_cs_entry * pp_context->urb.num_cs_entries * 2 * 32 <= pp_context->curbe.bo->size); |
BEGIN_BATCH(batch, 4); |
OUT_BATCH(batch, CMD_MEDIA_CURBE_LOAD | (4 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, |
pp_context->urb.size_cs_entry * pp_context->urb.num_cs_entries * 2 * 32); |
OUT_RELOC(batch, |
pp_context->curbe.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
ADVANCE_BATCH(batch); |
} |
static void |
gen6_interface_descriptor_load(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
BEGIN_BATCH(batch, 4); |
OUT_BATCH(batch, CMD_MEDIA_INTERFACE_DESCRIPTOR_LOAD | (4 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, |
pp_context->idrt.num_interface_descriptors * sizeof(struct gen6_interface_descriptor_data)); |
OUT_RELOC(batch, |
pp_context->idrt.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
ADVANCE_BATCH(batch); |
} |
static void update_block_mask_parameter(struct i965_post_processing_context *pp_context, int x, int y, int x_steps, int y_steps) |
{ |
struct pp_inline_parameter *pp_inline_parameter = pp_context->pp_inline_parameter; |
pp_inline_parameter->grf5.block_vertical_mask = 0xff; |
pp_inline_parameter->grf6.block_vertical_mask_bottom = pp_context->block_vertical_mask_bottom; |
// for the first block, it always on the left edge. the second block will reload horizontal_mask from grf6.block_horizontal_mask_middle |
pp_inline_parameter->grf5.block_horizontal_mask = pp_context->block_horizontal_mask_left; |
pp_inline_parameter->grf6.block_horizontal_mask_middle = 0xffff; |
pp_inline_parameter->grf6.block_horizontal_mask_right = pp_context->block_horizontal_mask_right; |
/* 1 x N */ |
if (x_steps == 1) { |
if (y == y_steps-1) { |
pp_inline_parameter->grf5.block_vertical_mask = pp_context->block_vertical_mask_bottom; |
} |
else { |
pp_inline_parameter->grf6.block_vertical_mask_bottom = 0xff; |
} |
} |
/* M x 1 */ |
if (y_steps == 1) { |
if (x == 0) { // all blocks in this group are on the left edge |
pp_inline_parameter->grf6.block_horizontal_mask_middle = pp_context->block_horizontal_mask_left; |
pp_inline_parameter->grf6.block_horizontal_mask_right = pp_context->block_horizontal_mask_left; |
} |
else if (x == x_steps-1) { |
pp_inline_parameter->grf5.block_horizontal_mask = pp_context->block_horizontal_mask_right; |
pp_inline_parameter->grf6.block_horizontal_mask_middle = pp_context->block_horizontal_mask_right; |
} |
else { |
pp_inline_parameter->grf5.block_horizontal_mask = 0xffff; |
pp_inline_parameter->grf6.block_horizontal_mask_middle = 0xffff; |
pp_inline_parameter->grf6.block_horizontal_mask_right = 0xffff; |
} |
} |
} |
static void |
gen6_pp_object_walker(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = pp_context->batch; |
int x, x_steps, y, y_steps; |
int param_size, command_length_in_dws; |
dri_bo *command_buffer; |
unsigned int *command_ptr; |
if (IS_GEN7(i965->intel.device_id)) |
param_size = sizeof(struct gen7_pp_inline_parameter); |
else |
param_size = sizeof(struct pp_inline_parameter); |
x_steps = pp_context->pp_x_steps(&pp_context->private_context); |
y_steps = pp_context->pp_y_steps(&pp_context->private_context); |
command_length_in_dws = 6 + (param_size >> 2); |
command_buffer = dri_bo_alloc(i965->intel.bufmgr, |
"command objects buffer", |
command_length_in_dws * 4 * x_steps * y_steps + 8, |
4096); |
dri_bo_map(command_buffer, 1); |
command_ptr = command_buffer->virtual; |
for (y = 0; y < y_steps; y++) { |
for (x = 0; x < x_steps; x++) { |
if (!pp_context->pp_set_block_parameter(pp_context, x, y)) { |
// some common block parameter update goes here, apply to all pp functions |
if (IS_GEN6(i965->intel.device_id)) |
update_block_mask_parameter (pp_context, x, y, x_steps, y_steps); |
*command_ptr++ = (CMD_MEDIA_OBJECT | (command_length_in_dws - 2)); |
*command_ptr++ = 0; |
*command_ptr++ = 0; |
*command_ptr++ = 0; |
*command_ptr++ = 0; |
*command_ptr++ = 0; |
memcpy(command_ptr, pp_context->pp_inline_parameter, param_size); |
command_ptr += (param_size >> 2); |
} |
} |
} |
if (command_length_in_dws * x_steps * y_steps % 2 == 0) |
*command_ptr++ = 0; |
*command_ptr = MI_BATCH_BUFFER_END; |
dri_bo_unmap(command_buffer); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, MI_BATCH_BUFFER_START | (2 << 6)); |
OUT_RELOC(batch, command_buffer, |
I915_GEM_DOMAIN_COMMAND, 0, |
0); |
ADVANCE_BATCH(batch); |
dri_bo_unreference(command_buffer); |
/* Have to execute the batch buffer here becuase MI_BATCH_BUFFER_END |
* will cause control to pass back to ring buffer |
*/ |
intel_batchbuffer_end_atomic(batch); |
intel_batchbuffer_flush(batch); |
intel_batchbuffer_start_atomic(batch, 0x1000); |
} |
static void |
gen6_pp_pipeline_setup(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context) |
{ |
struct intel_batchbuffer *batch = pp_context->batch; |
intel_batchbuffer_start_atomic(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen6_pp_pipeline_select(ctx, pp_context); |
gen6_pp_state_base_address(ctx, pp_context); |
gen6_pp_vfe_state(ctx, pp_context); |
gen6_pp_curbe_load(ctx, pp_context); |
gen6_interface_descriptor_load(ctx, pp_context); |
gen6_pp_vfe_state(ctx, pp_context); |
gen6_pp_object_walker(ctx, pp_context); |
intel_batchbuffer_end_atomic(batch); |
} |
static VAStatus |
gen6_post_processing( |
VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
int pp_index, |
void *filter_param |
) |
{ |
VAStatus va_status; |
va_status = gen6_pp_initialize(ctx, pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
pp_index, |
filter_param); |
if (va_status == VA_STATUS_SUCCESS) { |
gen6_pp_states_setup(ctx, pp_context); |
gen6_pp_pipeline_setup(ctx, pp_context); |
} |
return va_status; |
} |
static VAStatus |
gen75_post_processing( |
VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
int pp_index, |
void *filter_param |
) |
{ |
VAStatus va_status; |
struct intel_vebox_context * vebox_ctx = pp_context->pp_vebox_context; |
assert(pp_index == PP_NV12_DNDI); |
vebox_ctx->filters_mask = VPP_DNDI_DI; |
vebox_ctx->surface_input = src_surface->id; |
vebox_ctx->surface_output = dst_surface->id; |
va_status = gen75_vebox_process_picture(ctx, vebox_ctx); |
return va_status; |
} |
static VAStatus |
i965_post_processing_internal( |
VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
int pp_index, |
void *filter_param |
) |
{ |
VAStatus va_status; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
if(IS_HASWELL(i965->intel.device_id) && |
pp_index == PP_NV12_DNDI){ |
va_status = gen75_post_processing(ctx, pp_context, src_surface, src_rect, dst_surface, dst_rect, pp_index, filter_param); |
}else if (IS_GEN6(i965->intel.device_id) || |
IS_GEN7(i965->intel.device_id)){ |
va_status = gen6_post_processing(ctx, pp_context, src_surface, src_rect, dst_surface, dst_rect, pp_index, filter_param); |
}else{ |
va_status = ironlake_post_processing(ctx, pp_context, src_surface, src_rect, dst_surface, dst_rect, pp_index, filter_param); |
} |
return va_status; |
} |
VAStatus |
i965_DestroySurfaces(VADriverContextP ctx, |
VASurfaceID *surface_list, |
int num_surfaces); |
VAStatus |
i965_CreateSurfaces(VADriverContextP ctx, |
int width, |
int height, |
int format, |
int num_surfaces, |
VASurfaceID *surfaces); |
static void |
rgb_to_yuv(unsigned int argb, |
unsigned char *y, |
unsigned char *u, |
unsigned char *v, |
unsigned char *a) |
{ |
int r = ((argb >> 16) & 0xff); |
int g = ((argb >> 8) & 0xff); |
int b = ((argb >> 0) & 0xff); |
*y = (257 * r + 504 * g + 98 * b) / 1000 + 16; |
*v = (439 * r - 368 * g - 71 * b) / 1000 + 128; |
*u = (-148 * r - 291 * g + 439 * b) / 1000 + 128; |
*a = ((argb >> 24) & 0xff); |
} |
static void |
i965_vpp_clear_surface(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
VASurfaceID surface, |
unsigned int color) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = pp_context->batch; |
struct object_surface *obj_surface = SURFACE(surface); |
unsigned int blt_cmd, br13; |
unsigned int tiling = 0, swizzle = 0; |
int pitch; |
unsigned char y, u, v, a = 0; |
/* Currently only support NV12 surface */ |
if (!obj_surface || obj_surface->fourcc != VA_FOURCC('N', 'V', '1', '2')) |
return; |
rgb_to_yuv(color, &y, &u, &v, &a); |
if (a == 0) |
return; |
dri_bo_get_tiling(obj_surface->bo, &tiling, &swizzle); |
blt_cmd = XY_COLOR_BLT_CMD; |
pitch = obj_surface->width; |
if (tiling != I915_TILING_NONE) { |
blt_cmd |= XY_COLOR_BLT_DST_TILED; |
pitch >>= 2; |
} |
br13 = 0xf0 << 16; |
br13 |= BR13_8; |
br13 |= pitch; |
if (IS_GEN6(i965->intel.device_id) || |
IS_GEN7(i965->intel.device_id)) { |
intel_batchbuffer_start_atomic_blt(batch, 48); |
BEGIN_BLT_BATCH(batch, 12); |
} else { |
intel_batchbuffer_start_atomic(batch, 48); |
BEGIN_BATCH(batch, 12); |
} |
OUT_BATCH(batch, blt_cmd); |
OUT_BATCH(batch, br13); |
OUT_BATCH(batch, |
0 << 16 | |
0); |
OUT_BATCH(batch, |
obj_surface->height << 16 | |
obj_surface->width); |
OUT_RELOC(batch, obj_surface->bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, |
0); |
OUT_BATCH(batch, y); |
br13 = 0xf0 << 16; |
br13 |= BR13_565; |
br13 |= pitch; |
OUT_BATCH(batch, blt_cmd); |
OUT_BATCH(batch, br13); |
OUT_BATCH(batch, |
0 << 16 | |
0); |
OUT_BATCH(batch, |
obj_surface->height / 2 << 16 | |
obj_surface->width / 2); |
OUT_RELOC(batch, obj_surface->bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, |
obj_surface->width * obj_surface->y_cb_offset); |
OUT_BATCH(batch, v << 8 | u); |
ADVANCE_BATCH(batch); |
intel_batchbuffer_end_atomic(batch); |
} |
VASurfaceID |
i965_post_processing( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect, |
unsigned int flags, |
int *has_done_scaling |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
VASurfaceID in_surface_id = surface; |
VASurfaceID out_surface_id = VA_INVALID_ID; |
if (HAS_PP(i965)) { |
/* Currently only support post processing for NV12 surface */ |
if (i965->render_state.interleaved_uv) { |
struct object_surface *obj_surface; |
VAStatus status; |
struct i965_surface src_surface; |
struct i965_surface dst_surface; |
if (flags & I965_PP_FLAG_DEINTERLACING) { |
obj_surface = SURFACE(in_surface_id); |
status = i965_CreateSurfaces(ctx, |
obj_surface->orig_width, |
obj_surface->orig_height, |
VA_RT_FORMAT_YUV420, |
1, |
&out_surface_id); |
assert(status == VA_STATUS_SUCCESS); |
obj_surface = SURFACE(out_surface_id); |
i965_check_alloc_surface_bo(ctx, obj_surface, 1, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
i965_vpp_clear_surface(ctx, i965->pp_context, out_surface_id, 0); |
src_surface.id = in_surface_id; |
src_surface.type = I965_SURFACE_TYPE_SURFACE; |
src_surface.flags = (flags & I965_PP_FLAG_TOP_FIELD) ? |
I965_SURFACE_FLAG_TOP_FIELD_FIRST : I965_SURFACE_FLAG_BOTTOM_FIELD_FIRST; |
dst_surface.id = out_surface_id; |
dst_surface.type = I965_SURFACE_TYPE_SURFACE; |
dst_surface.flags = I965_SURFACE_FLAG_FRAME; |
i965_post_processing_internal(ctx, i965->pp_context, |
&src_surface, |
src_rect, |
&dst_surface, |
dst_rect, |
PP_NV12_DNDI, |
NULL); |
printf("Deinterlace is executed here\n"); |
} |
if (flags & I965_PP_FLAG_AVS) { |
struct i965_render_state *render_state = &i965->render_state; |
struct intel_region *dest_region = render_state->draw_region; |
if (out_surface_id != VA_INVALID_ID) |
in_surface_id = out_surface_id; |
status = i965_CreateSurfaces(ctx, |
dest_region->width, |
dest_region->height, |
VA_RT_FORMAT_YUV420, |
1, |
&out_surface_id); |
assert(status == VA_STATUS_SUCCESS); |
obj_surface = SURFACE(out_surface_id); |
i965_check_alloc_surface_bo(ctx, obj_surface, 0, VA_FOURCC('N','V','1','2'), SUBSAMPLE_YUV420); |
i965_vpp_clear_surface(ctx, i965->pp_context, out_surface_id, 0); |
src_surface.id = in_surface_id; |
src_surface.type = I965_SURFACE_TYPE_SURFACE; |
src_surface.flags = I965_SURFACE_FLAG_FRAME; |
dst_surface.id = out_surface_id; |
dst_surface.type = I965_SURFACE_TYPE_SURFACE; |
dst_surface.flags = I965_SURFACE_FLAG_FRAME; |
i965_post_processing_internal(ctx, i965->pp_context, |
&src_surface, |
src_rect, |
&dst_surface, |
dst_rect, |
PP_NV12_AVS, |
NULL); |
if (in_surface_id != surface) |
i965_DestroySurfaces(ctx, &in_surface_id, 1); |
*has_done_scaling = 1; |
} |
} |
} |
return out_surface_id; |
} |
static VAStatus |
i965_image_pl3_processing(VADriverContextP ctx, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_post_processing_context *pp_context = i965->pp_context; |
int fourcc = pp_get_surface_fourcc(ctx, dst_surface); |
if (fourcc == VA_FOURCC('N', 'V', '1', '2')) { |
i965_post_processing_internal(ctx, i965->pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
PP_PL3_LOAD_SAVE_N12, |
NULL); |
} else if (fourcc == VA_FOURCC('I', 'M', 'C', '1') || |
fourcc == VA_FOURCC('I', 'M', 'C', '3') || |
fourcc == VA_FOURCC('Y', 'V', '1', '2') || |
fourcc == VA_FOURCC('I', '4', '2', '0') ) { |
i965_post_processing_internal(ctx, i965->pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
PP_PL3_LOAD_SAVE_PL3, |
NULL); |
} else if (fourcc == VA_FOURCC('Y', 'U', 'Y', '2') || |
fourcc == VA_FOURCC('U', 'Y', 'V', 'Y')) { |
i965_post_processing_internal(ctx, i965->pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
PP_PL3_LOAD_SAVE_PA, |
NULL); |
} |
else { |
assert(0); |
} |
intel_batchbuffer_flush(pp_context->batch); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus |
i965_image_pl2_processing(VADriverContextP ctx, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_post_processing_context *pp_context = i965->pp_context; |
int fourcc = pp_get_surface_fourcc(ctx, dst_surface); |
if (fourcc == VA_FOURCC('N', 'V', '1', '2')) { |
i965_post_processing_internal(ctx, i965->pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
PP_NV12_LOAD_SAVE_N12, |
NULL); |
} else if (fourcc == VA_FOURCC('I', 'M', 'C', '1') || |
fourcc == VA_FOURCC('I', 'M', 'C', '3') || |
fourcc == VA_FOURCC('Y', 'V', '1', '2') || |
fourcc == VA_FOURCC('I', '4', '2', '0') ) { |
i965_post_processing_internal(ctx, i965->pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
PP_NV12_LOAD_SAVE_PL3, |
NULL); |
} else if (fourcc == VA_FOURCC('Y', 'U', 'Y', '2') || |
fourcc == VA_FOURCC('U', 'Y', 'V', 'Y')) { |
i965_post_processing_internal(ctx, i965->pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
PP_NV12_LOAD_SAVE_PA, |
NULL); |
} |
intel_batchbuffer_flush(pp_context->batch); |
return VA_STATUS_SUCCESS; |
} |
static VAStatus |
i965_image_pl1_processing(VADriverContextP ctx, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_post_processing_context *pp_context = i965->pp_context; |
int fourcc = pp_get_surface_fourcc(ctx, dst_surface); |
if (fourcc == VA_FOURCC('N', 'V', '1', '2')) { |
i965_post_processing_internal(ctx, i965->pp_context, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect, |
PP_PA_LOAD_SAVE_NV12, |
NULL); |
} |
else { |
return VA_STATUS_ERROR_UNKNOWN; |
} |
intel_batchbuffer_flush(pp_context->batch); |
return VA_STATUS_SUCCESS; |
} |
VAStatus |
i965_image_processing(VADriverContextP ctx, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
VAStatus status = VA_STATUS_ERROR_UNIMPLEMENTED; |
if (HAS_PP(i965)) { |
int fourcc = pp_get_surface_fourcc(ctx, src_surface); |
switch (fourcc) { |
case VA_FOURCC('Y', 'V', '1', '2'): |
case VA_FOURCC('I', '4', '2', '0'): |
case VA_FOURCC('I', 'M', 'C', '1'): |
case VA_FOURCC('I', 'M', 'C', '3'): |
status = i965_image_pl3_processing(ctx, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect); |
break; |
case VA_FOURCC('N', 'V', '1', '2'): |
status = i965_image_pl2_processing(ctx, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect); |
break; |
case VA_FOURCC('Y', 'U', 'Y', '2'): |
case VA_FOURCC('U', 'Y', 'V', 'Y'): |
status = i965_image_pl1_processing(ctx, |
src_surface, |
src_rect, |
dst_surface, |
dst_rect); |
break; |
default: |
status = VA_STATUS_ERROR_UNIMPLEMENTED; |
break; |
} |
} |
return status; |
} |
static void |
i965_post_processing_context_finalize(struct i965_post_processing_context *pp_context) |
{ |
int i; |
dri_bo_unreference(pp_context->surface_state_binding_table.bo); |
pp_context->surface_state_binding_table.bo = NULL; |
dri_bo_unreference(pp_context->curbe.bo); |
pp_context->curbe.bo = NULL; |
dri_bo_unreference(pp_context->sampler_state_table.bo); |
pp_context->sampler_state_table.bo = NULL; |
dri_bo_unreference(pp_context->sampler_state_table.bo_8x8); |
pp_context->sampler_state_table.bo_8x8 = NULL; |
dri_bo_unreference(pp_context->sampler_state_table.bo_8x8_uv); |
pp_context->sampler_state_table.bo_8x8_uv = NULL; |
dri_bo_unreference(pp_context->idrt.bo); |
pp_context->idrt.bo = NULL; |
pp_context->idrt.num_interface_descriptors = 0; |
dri_bo_unreference(pp_context->vfe_state.bo); |
pp_context->vfe_state.bo = NULL; |
dri_bo_unreference(pp_context->stmm.bo); |
pp_context->stmm.bo = NULL; |
for (i = 0; i < NUM_PP_MODULES; i++) { |
struct pp_module *pp_module = &pp_context->pp_modules[i]; |
dri_bo_unreference(pp_module->kernel.bo); |
pp_module->kernel.bo = NULL; |
} |
free(pp_context->pp_static_parameter); |
free(pp_context->pp_inline_parameter); |
pp_context->pp_static_parameter = NULL; |
pp_context->pp_inline_parameter = NULL; |
} |
Bool |
i965_post_processing_terminate(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_post_processing_context *pp_context = i965->pp_context; |
if (pp_context) { |
if(IS_HASWELL(i965->intel.device_id)){ |
gen75_vebox_context_destroy(ctx, pp_context->pp_vebox_context); |
} |
i965_post_processing_context_finalize(pp_context); |
free(pp_context); |
} |
i965->pp_context = NULL; |
return True; |
} |
static void |
i965_post_processing_context_init(VADriverContextP ctx, |
struct i965_post_processing_context *pp_context, |
struct intel_batchbuffer *batch) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int i; |
printf("%s\n", __FUNCTION__); |
pp_context->urb.size = URB_SIZE((&i965->intel)); |
pp_context->urb.num_vfe_entries = 32; |
pp_context->urb.size_vfe_entry = 1; /* in 512 bits unit */ |
pp_context->urb.num_cs_entries = 1; |
if (IS_GEN7(i965->intel.device_id)) |
pp_context->urb.size_cs_entry = 4; /* in 512 bits unit */ |
else |
pp_context->urb.size_cs_entry = 2; |
pp_context->urb.vfe_start = 0; |
pp_context->urb.cs_start = pp_context->urb.vfe_start + |
pp_context->urb.num_vfe_entries * pp_context->urb.size_vfe_entry; |
assert(pp_context->urb.cs_start + |
pp_context->urb.num_cs_entries * pp_context->urb.size_cs_entry <= URB_SIZE((&i965->intel))); |
assert(NUM_PP_MODULES == ARRAY_ELEMS(pp_modules_gen5)); |
assert(NUM_PP_MODULES == ARRAY_ELEMS(pp_modules_gen6)); |
assert(NUM_PP_MODULES == ARRAY_ELEMS(pp_modules_gen7)); |
assert(NUM_PP_MODULES == ARRAY_ELEMS(pp_modules_gen75)); |
if (IS_HASWELL(i965->intel.device_id)) |
memcpy(pp_context->pp_modules, pp_modules_gen75, sizeof(pp_context->pp_modules)); |
else if (IS_GEN7(i965->intel.device_id)) |
memcpy(pp_context->pp_modules, pp_modules_gen7, sizeof(pp_context->pp_modules)); |
else if (IS_GEN6(i965->intel.device_id)) |
memcpy(pp_context->pp_modules, pp_modules_gen6, sizeof(pp_context->pp_modules)); |
else if (IS_IRONLAKE(i965->intel.device_id)) |
memcpy(pp_context->pp_modules, pp_modules_gen5, sizeof(pp_context->pp_modules)); |
for (i = 0; i < NUM_PP_MODULES; i++) { |
struct pp_module *pp_module = &pp_context->pp_modules[i]; |
dri_bo_unreference(pp_module->kernel.bo); |
if (pp_module->kernel.bin && pp_module->kernel.size) { |
pp_module->kernel.bo = dri_bo_alloc(i965->intel.bufmgr, |
pp_module->kernel.name, |
pp_module->kernel.size, |
4096); |
assert(pp_module->kernel.bo); |
dri_bo_subdata(pp_module->kernel.bo, 0, pp_module->kernel.size, pp_module->kernel.bin); |
} else { |
pp_module->kernel.bo = NULL; |
} |
} |
/* static & inline parameters */ |
if (IS_GEN7(i965->intel.device_id)) { |
pp_context->pp_static_parameter = calloc(sizeof(struct gen7_pp_static_parameter), 1); |
pp_context->pp_inline_parameter = calloc(sizeof(struct gen7_pp_inline_parameter), 1); |
} else { |
pp_context->pp_static_parameter = calloc(sizeof(struct pp_static_parameter), 1); |
pp_context->pp_inline_parameter = calloc(sizeof(struct pp_inline_parameter), 1); |
} |
pp_context->batch = batch; |
} |
Bool |
i965_post_processing_init(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_post_processing_context *pp_context = i965->pp_context; |
printf("%s\n", __FUNCTION__); |
if (HAS_PP(i965)) { |
if (pp_context == NULL) { |
pp_context = calloc(1, sizeof(*pp_context)); |
i965_post_processing_context_init(ctx, pp_context, i965->batch); |
i965->pp_context = pp_context; |
if(IS_HASWELL(i965->intel.device_id)){ |
pp_context->pp_vebox_context = gen75_vebox_context_init(ctx); |
} |
} |
} |
printf("%s done\n", __FUNCTION__); |
return True; |
} |
/drivers/video/i965/i965_post_processing.h |
---|
0,0 → 1,511 |
/* |
* Copyright © 2010 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#ifndef __I965_POST_PROCESSING_H__ |
#define __I965_POST_PROCESSING_H__ |
#define MAX_PP_SURFACES 48 |
#define I965_PP_FLAG_TOP_FIELD 1 |
#define I965_PP_FLAG_BOTTOM_FIELD 2 |
#define I965_PP_FLAG_AVS 4 |
#define I965_PP_FLAG_DEINTERLACING 8 |
enum |
{ |
PP_NULL = 0, |
PP_NV12_LOAD_SAVE_N12, |
PP_NV12_LOAD_SAVE_PL3, |
PP_PL3_LOAD_SAVE_N12, |
PP_PL3_LOAD_SAVE_PL3, |
PP_NV12_SCALING, |
PP_NV12_AVS, |
PP_NV12_DNDI, |
PP_NV12_DN, |
PP_NV12_LOAD_SAVE_PA, |
PP_PL3_LOAD_SAVE_PA, |
PP_PA_LOAD_SAVE_NV12, |
NUM_PP_MODULES, |
}; |
struct pp_load_save_context |
{ |
int dest_x; |
int dest_y; |
int dest_w; |
int dest_h; |
}; |
struct pp_scaling_context |
{ |
int dest_x; /* in pixel */ |
int dest_y; /* in pixel */ |
int dest_w; |
int dest_h; |
int src_normalized_x; |
int src_normalized_y; |
}; |
struct pp_avs_context |
{ |
int dest_x; /* in pixel */ |
int dest_y; /* in pixel */ |
int dest_w; |
int dest_h; |
int src_normalized_x; |
int src_normalized_y; |
int src_w; |
int src_h; |
}; |
struct pp_dndi_context |
{ |
int dest_w; |
int dest_h; |
}; |
struct pp_dn_context |
{ |
int dest_w; |
int dest_h; |
}; |
struct i965_post_processing_context; |
struct pp_module |
{ |
struct i965_kernel kernel; |
/* others */ |
VAStatus (*initialize)(VADriverContextP ctx, struct i965_post_processing_context *pp_context, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect, |
void *filter_param); |
}; |
struct pp_static_parameter |
{ |
struct { |
/* Procamp r1.0 */ |
float procamp_constant_c0; |
/* Load and Same r1.1 */ |
unsigned int source_packed_y_offset:8; |
unsigned int source_packed_u_offset:8; |
unsigned int source_packed_v_offset:8; |
unsigned int pad0:8; |
union { |
/* Load and Save r1.2 */ |
struct { |
unsigned int destination_packed_y_offset:8; |
unsigned int destination_packed_u_offset:8; |
unsigned int destination_packed_v_offset:8; |
unsigned int pad0:8; |
} load_and_save; |
/* CSC r1.2 */ |
struct { |
unsigned int destination_rgb_format:8; |
unsigned int pad0:24; |
} csc; |
} r1_2; |
/* Procamp r1.3 */ |
float procamp_constant_c1; |
/* Procamp r1.4 */ |
float procamp_constant_c2; |
/* DI r1.5 */ |
unsigned int statistics_surface_picth:16; /* Devided by 2 */ |
unsigned int pad1:16; |
union { |
/* DI r1.6 */ |
struct { |
unsigned int pad0:24; |
unsigned int top_field_first:8; |
} di; |
/* AVS/Scaling r1.6 */ |
float normalized_video_y_scaling_step; |
} r1_6; |
/* Procamp r1.7 */ |
float procamp_constant_c5; |
} grf1; |
struct { |
/* Procamp r2.0 */ |
float procamp_constant_c3; |
/* MBZ r2.1*/ |
unsigned int pad0; |
/* WG+CSC r2.2 */ |
float wg_csc_constant_c4; |
/* WG+CSC r2.3 */ |
float wg_csc_constant_c8; |
/* Procamp r2.4 */ |
float procamp_constant_c4; |
/* MBZ r2.5 */ |
unsigned int pad1; |
/* MBZ r2.6 */ |
unsigned int pad2; |
/* WG+CSC r2.7 */ |
float wg_csc_constant_c9; |
} grf2; |
struct { |
/* WG+CSC r3.0 */ |
float wg_csc_constant_c0; |
/* Blending r3.1 */ |
float scaling_step_ratio; |
/* Blending r3.2 */ |
float normalized_alpha_y_scaling; |
/* WG+CSC r3.3 */ |
float wg_csc_constant_c4; |
/* WG+CSC r3.4 */ |
float wg_csc_constant_c1; |
/* ALL r3.5 */ |
int horizontal_origin_offset:16; |
int vertical_origin_offset:16; |
/* Shared r3.6*/ |
union { |
/* Color filll */ |
unsigned int color_pixel; |
/* WG+CSC */ |
float wg_csc_constant_c2; |
} r3_6; |
/* WG+CSC r3.7 */ |
float wg_csc_constant_c3; |
} grf3; |
struct { |
/* WG+CSC r4.0 */ |
float wg_csc_constant_c6; |
/* ALL r4.1 MBZ ???*/ |
unsigned int pad0; |
/* Shared r4.2 */ |
union { |
/* AVS */ |
struct { |
unsigned int pad1:15; |
unsigned int nlas:1; |
unsigned int pad2:16; |
} avs; |
/* DI */ |
struct { |
unsigned int motion_history_coefficient_m2:8; |
unsigned int motion_history_coefficient_m1:8; |
unsigned int pad0:16; |
} di; |
} r4_2; |
/* WG+CSC r4.3 */ |
float wg_csc_constant_c7; |
/* WG+CSC r4.4 */ |
float wg_csc_constant_c10; |
/* AVS r4.5 */ |
float source_video_frame_normalized_horizontal_origin; |
/* MBZ r4.6 */ |
unsigned int pad1; |
/* WG+CSC r4.7 */ |
float wg_csc_constant_c11; |
} grf4; |
}; |
struct pp_inline_parameter |
{ |
struct { |
/* ALL r5.0 */ |
int destination_block_horizontal_origin:16; |
int destination_block_vertical_origin:16; |
/* Shared r5.1 */ |
union { |
/* AVS/Scaling */ |
float source_surface_block_normalized_horizontal_origin; |
/* FMD */ |
struct { |
unsigned int variance_surface_vertical_origin:16; |
unsigned int pad0:16; |
} fmd; |
} r5_1; |
/* AVS/Scaling r5.2 */ |
float source_surface_block_normalized_vertical_origin; |
/* Alpha r5.3 */ |
float alpha_surface_block_normalized_horizontal_origin; |
/* Alpha r5.4 */ |
float alpha_surface_block_normalized_vertical_origin; |
/* Alpha r5.5 */ |
unsigned int alpha_mask_x:16; |
unsigned int alpha_mask_y:8; |
unsigned int block_count_x:8; |
/* r5.6 */ |
/* we only support M*1 or 1*N block partitation now. |
* -- it means asm code only need update this mask from grf6 for the last block |
*/ |
unsigned int block_horizontal_mask:16; |
unsigned int block_vertical_mask:8; |
unsigned int number_blocks:8; |
/* AVS/Scaling r5.7 */ |
float normalized_video_x_scaling_step; |
} grf5; |
struct { |
/* AVS r6.0 */ |
float video_step_delta; |
/* r6.1 */ // sizeof(int) == 4? |
unsigned int block_horizontal_mask_right:16; |
unsigned int block_vertical_mask_bottom:8; |
unsigned int pad1:8; |
/* r6.2 */ |
unsigned int block_horizontal_mask_middle:16; |
unsigned int pad2:16; |
/* r6.3-r6.7 */ |
unsigned int padx[5]; |
} grf6; |
}; |
struct gen7_pp_static_parameter |
{ |
struct { |
/* r1.0-r1.5 */ |
unsigned int padx[6]; |
/* r1.6 */ |
unsigned int di_statistics_surface_pitch_div2:16; |
unsigned int di_statistics_surface_height_div4:16; |
/* r1.7 */ |
unsigned int di_top_field_first:8; |
unsigned int pad0:16; |
unsigned int pointer_to_inline_parameter:8; /* value: 7 */ |
} grf1; |
struct { |
/* r2.0 */ |
unsigned int pad3; |
/* r2.1 */ |
unsigned int pad2:16; |
unsigned int save_avs_rgb_swap:1; /* 0: RGB, 1: BGR */ |
unsigned int avs_wa_enable:1; /* must enabled for GEN7 */ |
unsigned int pad1:1; |
unsigned int avs_wa_width:13; |
/* 2.2 */ |
float avs_wa_one_div_256_width; |
/* 2.3 */ |
float avs_wa_five_div_256_width; |
/* 2.4 - 2.6 */ |
unsigned int padx[3]; |
/* r2.7 */ |
unsigned int di_destination_packed_y_component_offset:8; |
unsigned int di_destination_packed_u_component_offset:8; |
unsigned int di_destination_packed_v_component_offset:8; |
unsigned int pad0:8; |
} grf2; |
struct { |
float sampler_load_horizontal_scaling_step_ratio; |
unsigned int padx[7]; |
} grf3; |
struct { |
float sampler_load_vertical_scaling_step; |
unsigned int pad0; |
unsigned int di_hoffset_svf_from_dvf:16; |
unsigned int di_voffset_svf_from_dvf:16; |
unsigned int padx[5]; |
} grf4; |
struct { |
float sampler_load_vertical_frame_origin; |
unsigned int padx[7]; |
} grf5; |
struct { |
float sampler_load_horizontal_frame_origin; |
unsigned int padx[7]; |
} grf6; |
}; |
struct gen7_pp_inline_parameter |
{ |
struct { |
/* r7.0 */ |
unsigned int destination_block_horizontal_origin:16; |
unsigned int destination_block_vertical_origin:16; |
/* r7.1: 0xffffffff */ |
unsigned int constant_0; |
/* r7.2 */ |
unsigned int pad0; |
/* r7.3 */ |
unsigned int pad1; |
/* r7.4 */ |
float sampler_load_main_video_x_scaling_step; |
/* r7.5 */ |
unsigned int pad2; |
/* r7.6: must be zero */ |
unsigned int avs_vertical_block_number; |
/* r7.7: 0 */ |
unsigned int group_id_number; |
} grf7; |
struct { |
unsigned int padx[8]; |
} grf8; |
}; |
struct i965_post_processing_context |
{ |
int current_pp; |
struct pp_module pp_modules[NUM_PP_MODULES]; |
void *pp_static_parameter; |
void *pp_inline_parameter; |
struct { |
dri_bo *bo; |
} surface_state_binding_table; |
struct { |
dri_bo *bo; |
} curbe; |
struct { |
dri_bo *bo; |
int num_interface_descriptors; |
} idrt; |
struct { |
dri_bo *bo; |
} vfe_state; |
struct { |
dri_bo *bo; |
dri_bo *bo_8x8; |
dri_bo *bo_8x8_uv; |
} sampler_state_table; |
struct { |
unsigned int size; |
unsigned int vfe_start; |
unsigned int cs_start; |
unsigned int num_vfe_entries; |
unsigned int num_cs_entries; |
unsigned int size_vfe_entry; |
unsigned int size_cs_entry; |
} urb; |
struct { |
dri_bo *bo; |
} stmm; |
union { |
struct pp_load_save_context pp_load_save_context; |
struct pp_scaling_context pp_scaling_context; |
struct pp_avs_context pp_avs_context; |
struct pp_dndi_context pp_dndi_context; |
struct pp_dn_context pp_dn_context; |
} private_context; |
int (*pp_x_steps)(void *private_context); |
int (*pp_y_steps)(void *private_context); |
int (*pp_set_block_parameter)(struct i965_post_processing_context *pp_context, int x, int y); |
struct intel_batchbuffer *batch; |
unsigned int block_horizontal_mask_left:16; |
unsigned int block_horizontal_mask_right:16; |
unsigned int block_vertical_mask_bottom:8; |
/* video process based on hsw vebox */ |
struct intel_vebox_context *pp_vebox_context; |
}; |
VASurfaceID |
i965_post_processing( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect, |
unsigned int flags, |
int *has_done_scaling |
); |
VAStatus |
i965_image_processing(VADriverContextP ctx, |
const struct i965_surface *src_surface, |
const VARectangle *src_rect, |
struct i965_surface *dst_surface, |
const VARectangle *dst_rect); |
Bool |
i965_post_processing_terminate(VADriverContextP ctx); |
Bool |
i965_post_processing_init(VADriverContextP ctx); |
#endif /* __I965_POST_PROCESSING_H__ */ |
/drivers/video/i965/i965_render.c |
---|
0,0 → 1,3197 |
/* |
* Copyright © 2006 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice (including the next |
* paragraph) shall be included in all copies or substantial portions of the |
* Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Eric Anholt <eric@anholt.net> |
* Keith Packard <keithp@keithp.com> |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
/* |
* Most of rendering codes are ported from xf86-video-intel/src/i965_video.c |
*/ |
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#include "intel_driver.h" |
#include "i965_defines.h" |
#include "i965_drv_video.h" |
#include "i965_structs.h" |
#include "i965_render.h" |
#define SF_KERNEL_NUM_GRF 16 |
#define SF_MAX_THREADS 1 |
static const uint32_t sf_kernel_static[][4] = |
{ |
#include "shaders/render/exa_sf.g4b" |
}; |
#define PS_KERNEL_NUM_GRF 32 |
#define PS_MAX_THREADS 32 |
#define I965_GRF_BLOCKS(nreg) ((nreg + 15) / 16 - 1) |
static const uint32_t ps_kernel_static[][4] = |
{ |
#include "shaders/render/exa_wm_xy.g4b" |
#include "shaders/render/exa_wm_src_affine.g4b" |
#include "shaders/render/exa_wm_src_sample_planar.g4b" |
#include "shaders/render/exa_wm_yuv_rgb.g4b" |
#include "shaders/render/exa_wm_write.g4b" |
}; |
static const uint32_t ps_subpic_kernel_static[][4] = |
{ |
#include "shaders/render/exa_wm_xy.g4b" |
#include "shaders/render/exa_wm_src_affine.g4b" |
#include "shaders/render/exa_wm_src_sample_argb.g4b" |
#include "shaders/render/exa_wm_write.g4b" |
}; |
/* On IRONLAKE */ |
static const uint32_t sf_kernel_static_gen5[][4] = |
{ |
#include "shaders/render/exa_sf.g4b.gen5" |
}; |
static const uint32_t ps_kernel_static_gen5[][4] = |
{ |
#include "shaders/render/exa_wm_xy.g4b.gen5" |
#include "shaders/render/exa_wm_src_affine.g4b.gen5" |
#include "shaders/render/exa_wm_src_sample_planar.g4b.gen5" |
#include "shaders/render/exa_wm_yuv_rgb.g4b.gen5" |
#include "shaders/render/exa_wm_write.g4b.gen5" |
}; |
static const uint32_t ps_subpic_kernel_static_gen5[][4] = |
{ |
#include "shaders/render/exa_wm_xy.g4b.gen5" |
#include "shaders/render/exa_wm_src_affine.g4b.gen5" |
#include "shaders/render/exa_wm_src_sample_argb.g4b.gen5" |
#include "shaders/render/exa_wm_write.g4b.gen5" |
}; |
/* programs for Sandybridge */ |
static const uint32_t sf_kernel_static_gen6[][4] = |
{ |
}; |
static const uint32_t ps_kernel_static_gen6[][4] = { |
#include "shaders/render/exa_wm_src_affine.g6b" |
#include "shaders/render/exa_wm_src_sample_planar.g6b" |
#include "shaders/render/exa_wm_yuv_rgb.g6b" |
#include "shaders/render/exa_wm_write.g6b" |
}; |
static const uint32_t ps_subpic_kernel_static_gen6[][4] = { |
#include "shaders/render/exa_wm_src_affine.g6b" |
#include "shaders/render/exa_wm_src_sample_argb.g6b" |
#include "shaders/render/exa_wm_write.g6b" |
}; |
/* programs for Ivybridge */ |
static const uint32_t sf_kernel_static_gen7[][4] = |
{ |
}; |
static const uint32_t ps_kernel_static_gen7[][4] = { |
#include "shaders/render/exa_wm_src_affine.g7b" |
#include "shaders/render/exa_wm_src_sample_planar.g7b" |
#include "shaders/render/exa_wm_yuv_rgb.g7b" |
#include "shaders/render/exa_wm_write.g7b" |
}; |
static const uint32_t ps_subpic_kernel_static_gen7[][4] = { |
#include "shaders/render/exa_wm_src_affine.g7b" |
#include "shaders/render/exa_wm_src_sample_argb.g7b" |
#include "shaders/render/exa_wm_write.g7b" |
}; |
/* Programs for Haswell */ |
static const uint32_t ps_kernel_static_gen7_haswell[][4] = { |
#include "shaders/render/exa_wm_src_affine.g7b" |
#include "shaders/render/exa_wm_src_sample_planar.g7b.haswell" |
#include "shaders/render/exa_wm_yuv_rgb.g7b" |
#include "shaders/render/exa_wm_write.g7b" |
}; |
#define SURFACE_STATE_PADDED_SIZE_I965 ALIGN(sizeof(struct i965_surface_state), 32) |
#define SURFACE_STATE_PADDED_SIZE_GEN7 ALIGN(sizeof(struct gen7_surface_state), 32) |
#define SURFACE_STATE_PADDED_SIZE MAX(SURFACE_STATE_PADDED_SIZE_I965, SURFACE_STATE_PADDED_SIZE_GEN7) |
#define SURFACE_STATE_OFFSET(index) (SURFACE_STATE_PADDED_SIZE * index) |
#define BINDING_TABLE_OFFSET SURFACE_STATE_OFFSET(MAX_RENDER_SURFACES) |
static uint32_t float_to_uint (float f) |
{ |
union { |
uint32_t i; |
float f; |
} x; |
x.f = f; |
return x.i; |
} |
enum |
{ |
SF_KERNEL = 0, |
PS_KERNEL, |
PS_SUBPIC_KERNEL |
}; |
static struct i965_kernel render_kernels_gen4[] = { |
{ |
"SF", |
SF_KERNEL, |
sf_kernel_static, |
sizeof(sf_kernel_static), |
NULL |
}, |
{ |
"PS", |
PS_KERNEL, |
ps_kernel_static, |
sizeof(ps_kernel_static), |
NULL |
}, |
{ |
"PS_SUBPIC", |
PS_SUBPIC_KERNEL, |
ps_subpic_kernel_static, |
sizeof(ps_subpic_kernel_static), |
NULL |
} |
}; |
static struct i965_kernel render_kernels_gen5[] = { |
{ |
"SF", |
SF_KERNEL, |
sf_kernel_static_gen5, |
sizeof(sf_kernel_static_gen5), |
NULL |
}, |
{ |
"PS", |
PS_KERNEL, |
ps_kernel_static_gen5, |
sizeof(ps_kernel_static_gen5), |
NULL |
}, |
{ |
"PS_SUBPIC", |
PS_SUBPIC_KERNEL, |
ps_subpic_kernel_static_gen5, |
sizeof(ps_subpic_kernel_static_gen5), |
NULL |
} |
}; |
static struct i965_kernel render_kernels_gen6[] = { |
{ |
"SF", |
SF_KERNEL, |
sf_kernel_static_gen6, |
sizeof(sf_kernel_static_gen6), |
NULL |
}, |
{ |
"PS", |
PS_KERNEL, |
ps_kernel_static_gen6, |
sizeof(ps_kernel_static_gen6), |
NULL |
}, |
{ |
"PS_SUBPIC", |
PS_SUBPIC_KERNEL, |
ps_subpic_kernel_static_gen6, |
sizeof(ps_subpic_kernel_static_gen6), |
NULL |
} |
}; |
static struct i965_kernel render_kernels_gen7[] = { |
{ |
"SF", |
SF_KERNEL, |
sf_kernel_static_gen7, |
sizeof(sf_kernel_static_gen7), |
NULL |
}, |
{ |
"PS", |
PS_KERNEL, |
ps_kernel_static_gen7, |
sizeof(ps_kernel_static_gen7), |
NULL |
}, |
{ |
"PS_SUBPIC", |
PS_SUBPIC_KERNEL, |
ps_subpic_kernel_static_gen7, |
sizeof(ps_subpic_kernel_static_gen7), |
NULL |
} |
}; |
static struct i965_kernel render_kernels_gen7_haswell[] = { |
{ |
"SF", |
SF_KERNEL, |
sf_kernel_static_gen7, |
sizeof(sf_kernel_static_gen7), |
NULL |
}, |
{ |
"PS", |
PS_KERNEL, |
ps_kernel_static_gen7_haswell, |
sizeof(ps_kernel_static_gen7_haswell), |
NULL |
}, |
{ |
"PS_SUBPIC", |
PS_SUBPIC_KERNEL, |
ps_subpic_kernel_static_gen7, |
sizeof(ps_subpic_kernel_static_gen7), |
NULL |
} |
}; |
#define URB_VS_ENTRIES 8 |
#define URB_VS_ENTRY_SIZE 1 |
#define URB_GS_ENTRIES 0 |
#define URB_GS_ENTRY_SIZE 0 |
#define URB_CLIP_ENTRIES 0 |
#define URB_CLIP_ENTRY_SIZE 0 |
#define URB_SF_ENTRIES 1 |
#define URB_SF_ENTRY_SIZE 2 |
#define URB_CS_ENTRIES 1 |
#define URB_CS_ENTRY_SIZE 1 |
static void |
i965_render_vs_unit(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct i965_vs_unit_state *vs_state; |
dri_bo_map(render_state->vs.state, 1); |
assert(render_state->vs.state->virtual); |
vs_state = render_state->vs.state->virtual; |
memset(vs_state, 0, sizeof(*vs_state)); |
if (IS_IRONLAKE(i965->intel.device_id)) |
vs_state->thread4.nr_urb_entries = URB_VS_ENTRIES >> 2; |
else |
vs_state->thread4.nr_urb_entries = URB_VS_ENTRIES; |
vs_state->thread4.urb_entry_allocation_size = URB_VS_ENTRY_SIZE - 1; |
vs_state->vs6.vs_enable = 0; |
vs_state->vs6.vert_cache_disable = 1; |
dri_bo_unmap(render_state->vs.state); |
} |
static void |
i965_render_sf_unit(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct i965_sf_unit_state *sf_state; |
dri_bo_map(render_state->sf.state, 1); |
assert(render_state->sf.state->virtual); |
sf_state = render_state->sf.state->virtual; |
memset(sf_state, 0, sizeof(*sf_state)); |
sf_state->thread0.grf_reg_count = I965_GRF_BLOCKS(SF_KERNEL_NUM_GRF); |
sf_state->thread0.kernel_start_pointer = render_state->render_kernels[SF_KERNEL].bo->offset >> 6; |
sf_state->sf1.single_program_flow = 1; /* XXX */ |
sf_state->sf1.binding_table_entry_count = 0; |
sf_state->sf1.thread_priority = 0; |
sf_state->sf1.floating_point_mode = 0; /* Mesa does this */ |
sf_state->sf1.illegal_op_exception_enable = 1; |
sf_state->sf1.mask_stack_exception_enable = 1; |
sf_state->sf1.sw_exception_enable = 1; |
/* scratch space is not used in our kernel */ |
sf_state->thread2.per_thread_scratch_space = 0; |
sf_state->thread2.scratch_space_base_pointer = 0; |
sf_state->thread3.const_urb_entry_read_length = 0; /* no const URBs */ |
sf_state->thread3.const_urb_entry_read_offset = 0; /* no const URBs */ |
sf_state->thread3.urb_entry_read_length = 1; /* 1 URB per vertex */ |
sf_state->thread3.urb_entry_read_offset = 0; |
sf_state->thread3.dispatch_grf_start_reg = 3; |
sf_state->thread4.max_threads = SF_MAX_THREADS - 1; |
sf_state->thread4.urb_entry_allocation_size = URB_SF_ENTRY_SIZE - 1; |
sf_state->thread4.nr_urb_entries = URB_SF_ENTRIES; |
sf_state->thread4.stats_enable = 1; |
sf_state->sf5.viewport_transform = 0; /* skip viewport */ |
sf_state->sf6.cull_mode = I965_CULLMODE_NONE; |
sf_state->sf6.scissor = 0; |
sf_state->sf7.trifan_pv = 2; |
sf_state->sf6.dest_org_vbias = 0x8; |
sf_state->sf6.dest_org_hbias = 0x8; |
dri_bo_emit_reloc(render_state->sf.state, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
sf_state->thread0.grf_reg_count << 1, |
offsetof(struct i965_sf_unit_state, thread0), |
render_state->render_kernels[SF_KERNEL].bo); |
dri_bo_unmap(render_state->sf.state); |
} |
static void |
i965_render_sampler(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct i965_sampler_state *sampler_state; |
int i; |
assert(render_state->wm.sampler_count > 0); |
assert(render_state->wm.sampler_count <= MAX_SAMPLERS); |
dri_bo_map(render_state->wm.sampler, 1); |
assert(render_state->wm.sampler->virtual); |
sampler_state = render_state->wm.sampler->virtual; |
for (i = 0; i < render_state->wm.sampler_count; i++) { |
memset(sampler_state, 0, sizeof(*sampler_state)); |
sampler_state->ss0.min_filter = I965_MAPFILTER_LINEAR; |
sampler_state->ss0.mag_filter = I965_MAPFILTER_LINEAR; |
sampler_state->ss1.r_wrap_mode = I965_TEXCOORDMODE_CLAMP; |
sampler_state->ss1.s_wrap_mode = I965_TEXCOORDMODE_CLAMP; |
sampler_state->ss1.t_wrap_mode = I965_TEXCOORDMODE_CLAMP; |
sampler_state++; |
} |
dri_bo_unmap(render_state->wm.sampler); |
} |
static void |
i965_subpic_render_wm_unit(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct i965_wm_unit_state *wm_state; |
assert(render_state->wm.sampler); |
dri_bo_map(render_state->wm.state, 1); |
assert(render_state->wm.state->virtual); |
wm_state = render_state->wm.state->virtual; |
memset(wm_state, 0, sizeof(*wm_state)); |
wm_state->thread0.grf_reg_count = I965_GRF_BLOCKS(PS_KERNEL_NUM_GRF); |
wm_state->thread0.kernel_start_pointer = render_state->render_kernels[PS_SUBPIC_KERNEL].bo->offset >> 6; |
wm_state->thread1.single_program_flow = 1; /* XXX */ |
if (IS_IRONLAKE(i965->intel.device_id)) |
wm_state->thread1.binding_table_entry_count = 0; /* hardware requirement */ |
else |
wm_state->thread1.binding_table_entry_count = 7; |
wm_state->thread2.scratch_space_base_pointer = 0; |
wm_state->thread2.per_thread_scratch_space = 0; /* 1024 bytes */ |
wm_state->thread3.dispatch_grf_start_reg = 3; /* XXX */ |
wm_state->thread3.const_urb_entry_read_length = 0; |
wm_state->thread3.const_urb_entry_read_offset = 0; |
wm_state->thread3.urb_entry_read_length = 1; /* XXX */ |
wm_state->thread3.urb_entry_read_offset = 0; /* XXX */ |
wm_state->wm4.stats_enable = 0; |
wm_state->wm4.sampler_state_pointer = render_state->wm.sampler->offset >> 5; |
if (IS_IRONLAKE(i965->intel.device_id)) { |
wm_state->wm4.sampler_count = 0; /* hardware requirement */ |
} else { |
wm_state->wm4.sampler_count = (render_state->wm.sampler_count + 3) / 4; |
} |
wm_state->wm5.max_threads = render_state->max_wm_threads - 1; |
wm_state->wm5.thread_dispatch_enable = 1; |
wm_state->wm5.enable_16_pix = 1; |
wm_state->wm5.enable_8_pix = 0; |
wm_state->wm5.early_depth_test = 1; |
dri_bo_emit_reloc(render_state->wm.state, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
wm_state->thread0.grf_reg_count << 1, |
offsetof(struct i965_wm_unit_state, thread0), |
render_state->render_kernels[PS_SUBPIC_KERNEL].bo); |
dri_bo_emit_reloc(render_state->wm.state, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
wm_state->wm4.sampler_count << 2, |
offsetof(struct i965_wm_unit_state, wm4), |
render_state->wm.sampler); |
dri_bo_unmap(render_state->wm.state); |
} |
static void |
i965_render_wm_unit(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct i965_wm_unit_state *wm_state; |
assert(render_state->wm.sampler); |
dri_bo_map(render_state->wm.state, 1); |
assert(render_state->wm.state->virtual); |
wm_state = render_state->wm.state->virtual; |
memset(wm_state, 0, sizeof(*wm_state)); |
wm_state->thread0.grf_reg_count = I965_GRF_BLOCKS(PS_KERNEL_NUM_GRF); |
wm_state->thread0.kernel_start_pointer = render_state->render_kernels[PS_KERNEL].bo->offset >> 6; |
wm_state->thread1.single_program_flow = 1; /* XXX */ |
if (IS_IRONLAKE(i965->intel.device_id)) |
wm_state->thread1.binding_table_entry_count = 0; /* hardware requirement */ |
else |
wm_state->thread1.binding_table_entry_count = 7; |
wm_state->thread2.scratch_space_base_pointer = 0; |
wm_state->thread2.per_thread_scratch_space = 0; /* 1024 bytes */ |
wm_state->thread3.dispatch_grf_start_reg = 2; /* XXX */ |
wm_state->thread3.const_urb_entry_read_length = 1; |
wm_state->thread3.const_urb_entry_read_offset = 0; |
wm_state->thread3.urb_entry_read_length = 1; /* XXX */ |
wm_state->thread3.urb_entry_read_offset = 0; /* XXX */ |
wm_state->wm4.stats_enable = 0; |
wm_state->wm4.sampler_state_pointer = render_state->wm.sampler->offset >> 5; |
if (IS_IRONLAKE(i965->intel.device_id)) { |
wm_state->wm4.sampler_count = 0; /* hardware requirement */ |
} else { |
wm_state->wm4.sampler_count = (render_state->wm.sampler_count + 3) / 4; |
} |
wm_state->wm5.max_threads = render_state->max_wm_threads - 1; |
wm_state->wm5.thread_dispatch_enable = 1; |
wm_state->wm5.enable_16_pix = 1; |
wm_state->wm5.enable_8_pix = 0; |
wm_state->wm5.early_depth_test = 1; |
dri_bo_emit_reloc(render_state->wm.state, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
wm_state->thread0.grf_reg_count << 1, |
offsetof(struct i965_wm_unit_state, thread0), |
render_state->render_kernels[PS_KERNEL].bo); |
dri_bo_emit_reloc(render_state->wm.state, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
wm_state->wm4.sampler_count << 2, |
offsetof(struct i965_wm_unit_state, wm4), |
render_state->wm.sampler); |
dri_bo_unmap(render_state->wm.state); |
} |
static void |
i965_render_cc_viewport(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct i965_cc_viewport *cc_viewport; |
dri_bo_map(render_state->cc.viewport, 1); |
assert(render_state->cc.viewport->virtual); |
cc_viewport = render_state->cc.viewport->virtual; |
memset(cc_viewport, 0, sizeof(*cc_viewport)); |
cc_viewport->min_depth = -1.e35; |
cc_viewport->max_depth = 1.e35; |
dri_bo_unmap(render_state->cc.viewport); |
} |
static void |
i965_subpic_render_cc_unit(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct i965_cc_unit_state *cc_state; |
assert(render_state->cc.viewport); |
dri_bo_map(render_state->cc.state, 1); |
assert(render_state->cc.state->virtual); |
cc_state = render_state->cc.state->virtual; |
memset(cc_state, 0, sizeof(*cc_state)); |
cc_state->cc0.stencil_enable = 0; /* disable stencil */ |
cc_state->cc2.depth_test = 0; /* disable depth test */ |
cc_state->cc2.logicop_enable = 0; /* disable logic op */ |
cc_state->cc3.ia_blend_enable = 0 ; /* blend alpha just like colors */ |
cc_state->cc3.blend_enable = 1; /* enable color blend */ |
cc_state->cc3.alpha_test = 0; /* disable alpha test */ |
cc_state->cc3.alpha_test_format = 0;//0:ALPHATEST_UNORM8; /*store alpha value with UNORM8 */ |
cc_state->cc3.alpha_test_func = 5;//COMPAREFUNCTION_LESS; /*pass if less than the reference */ |
cc_state->cc4.cc_viewport_state_offset = render_state->cc.viewport->offset >> 5; |
cc_state->cc5.dither_enable = 0; /* disable dither */ |
cc_state->cc5.logicop_func = 0xc; /* WHITE */ |
cc_state->cc5.statistics_enable = 1; |
cc_state->cc5.ia_blend_function = I965_BLENDFUNCTION_ADD; |
cc_state->cc5.ia_src_blend_factor = I965_BLENDFACTOR_DST_ALPHA; |
cc_state->cc5.ia_dest_blend_factor = I965_BLENDFACTOR_DST_ALPHA; |
cc_state->cc6.clamp_post_alpha_blend = 0; |
cc_state->cc6.clamp_pre_alpha_blend =0; |
/*final color = src_color*src_blend_factor +/- dst_color*dest_color_blend_factor*/ |
cc_state->cc6.blend_function = I965_BLENDFUNCTION_ADD; |
cc_state->cc6.src_blend_factor = I965_BLENDFACTOR_SRC_ALPHA; |
cc_state->cc6.dest_blend_factor = I965_BLENDFACTOR_INV_SRC_ALPHA; |
/*alpha test reference*/ |
cc_state->cc7.alpha_ref.f =0.0 ; |
dri_bo_emit_reloc(render_state->cc.state, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
offsetof(struct i965_cc_unit_state, cc4), |
render_state->cc.viewport); |
dri_bo_unmap(render_state->cc.state); |
} |
static void |
i965_render_cc_unit(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct i965_cc_unit_state *cc_state; |
assert(render_state->cc.viewport); |
dri_bo_map(render_state->cc.state, 1); |
assert(render_state->cc.state->virtual); |
cc_state = render_state->cc.state->virtual; |
memset(cc_state, 0, sizeof(*cc_state)); |
cc_state->cc0.stencil_enable = 0; /* disable stencil */ |
cc_state->cc2.depth_test = 0; /* disable depth test */ |
cc_state->cc2.logicop_enable = 1; /* enable logic op */ |
cc_state->cc3.ia_blend_enable = 0; /* blend alpha just like colors */ |
cc_state->cc3.blend_enable = 0; /* disable color blend */ |
cc_state->cc3.alpha_test = 0; /* disable alpha test */ |
cc_state->cc4.cc_viewport_state_offset = render_state->cc.viewport->offset >> 5; |
cc_state->cc5.dither_enable = 0; /* disable dither */ |
cc_state->cc5.logicop_func = 0xc; /* WHITE */ |
cc_state->cc5.statistics_enable = 1; |
cc_state->cc5.ia_blend_function = I965_BLENDFUNCTION_ADD; |
cc_state->cc5.ia_src_blend_factor = I965_BLENDFACTOR_ONE; |
cc_state->cc5.ia_dest_blend_factor = I965_BLENDFACTOR_ONE; |
dri_bo_emit_reloc(render_state->cc.state, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0, |
offsetof(struct i965_cc_unit_state, cc4), |
render_state->cc.viewport); |
dri_bo_unmap(render_state->cc.state); |
} |
static void |
i965_render_set_surface_tiling(struct i965_surface_state *ss, unsigned int tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss3.tiled_surface = 0; |
ss->ss3.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss3.tiled_surface = 1; |
ss->ss3.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss3.tiled_surface = 1; |
ss->ss3.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
static void |
i965_render_set_surface_state( |
struct i965_surface_state *ss, |
dri_bo *bo, |
unsigned long offset, |
unsigned int width, |
unsigned int height, |
unsigned int pitch, |
unsigned int format, |
unsigned int flags |
) |
{ |
unsigned int tiling; |
unsigned int swizzle; |
memset(ss, 0, sizeof(*ss)); |
switch (flags & (I965_PP_FLAG_TOP_FIELD|I965_PP_FLAG_BOTTOM_FIELD)) { |
case I965_PP_FLAG_BOTTOM_FIELD: |
ss->ss0.vert_line_stride_ofs = 1; |
/* fall-through */ |
case I965_PP_FLAG_TOP_FIELD: |
ss->ss0.vert_line_stride = 1; |
height /= 2; |
break; |
} |
ss->ss0.surface_type = I965_SURFACE_2D; |
ss->ss0.surface_format = format; |
ss->ss0.color_blend = 1; |
ss->ss1.base_addr = bo->offset + offset; |
ss->ss2.width = width - 1; |
ss->ss2.height = height - 1; |
ss->ss3.pitch = pitch - 1; |
dri_bo_get_tiling(bo, &tiling, &swizzle); |
i965_render_set_surface_tiling(ss, tiling); |
} |
static void |
gen7_render_set_surface_tiling(struct gen7_surface_state *ss, uint32_t tiling) |
{ |
switch (tiling) { |
case I915_TILING_NONE: |
ss->ss0.tiled_surface = 0; |
ss->ss0.tile_walk = 0; |
break; |
case I915_TILING_X: |
ss->ss0.tiled_surface = 1; |
ss->ss0.tile_walk = I965_TILEWALK_XMAJOR; |
break; |
case I915_TILING_Y: |
ss->ss0.tiled_surface = 1; |
ss->ss0.tile_walk = I965_TILEWALK_YMAJOR; |
break; |
} |
} |
/* Set "Shader Channel Select" */ |
void |
gen7_render_set_surface_scs(struct gen7_surface_state *ss) |
{ |
ss->ss7.shader_chanel_select_r = HSW_SCS_RED; |
ss->ss7.shader_chanel_select_g = HSW_SCS_GREEN; |
ss->ss7.shader_chanel_select_b = HSW_SCS_BLUE; |
ss->ss7.shader_chanel_select_a = HSW_SCS_ALPHA; |
} |
static void |
gen7_render_set_surface_state( |
struct gen7_surface_state *ss, |
dri_bo *bo, |
unsigned long offset, |
int width, |
int height, |
int pitch, |
int format, |
unsigned int flags |
) |
{ |
unsigned int tiling; |
unsigned int swizzle; |
memset(ss, 0, sizeof(*ss)); |
switch (flags & (I965_PP_FLAG_TOP_FIELD|I965_PP_FLAG_BOTTOM_FIELD)) { |
case I965_PP_FLAG_BOTTOM_FIELD: |
ss->ss0.vert_line_stride_ofs = 1; |
/* fall-through */ |
case I965_PP_FLAG_TOP_FIELD: |
ss->ss0.vert_line_stride = 1; |
height /= 2; |
break; |
} |
ss->ss0.surface_type = I965_SURFACE_2D; |
ss->ss0.surface_format = format; |
ss->ss1.base_addr = bo->offset + offset; |
ss->ss2.width = width - 1; |
ss->ss2.height = height - 1; |
ss->ss3.pitch = pitch - 1; |
dri_bo_get_tiling(bo, &tiling, &swizzle); |
gen7_render_set_surface_tiling(ss, tiling); |
} |
static void |
i965_render_src_surface_state( |
VADriverContextP ctx, |
int index, |
dri_bo *region, |
unsigned long offset, |
int w, |
int h, |
int pitch, |
int format, |
unsigned int flags |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
void *ss; |
dri_bo *ss_bo = render_state->wm.surface_state_binding_table_bo; |
assert(index < MAX_RENDER_SURFACES); |
dri_bo_map(ss_bo, 1); |
assert(ss_bo->virtual); |
ss = (char *)ss_bo->virtual + SURFACE_STATE_OFFSET(index); |
if (IS_GEN7(i965->intel.device_id)) { |
gen7_render_set_surface_state(ss, |
region, offset, |
w, h, |
pitch, format, flags); |
if (IS_HASWELL(i965->intel.device_id)) |
gen7_render_set_surface_scs(ss); |
dri_bo_emit_reloc(ss_bo, |
I915_GEM_DOMAIN_SAMPLER, 0, |
offset, |
SURFACE_STATE_OFFSET(index) + offsetof(struct gen7_surface_state, ss1), |
region); |
} else { |
i965_render_set_surface_state(ss, |
region, offset, |
w, h, |
pitch, format, flags); |
dri_bo_emit_reloc(ss_bo, |
I915_GEM_DOMAIN_SAMPLER, 0, |
offset, |
SURFACE_STATE_OFFSET(index) + offsetof(struct i965_surface_state, ss1), |
region); |
} |
((unsigned int *)((char *)ss_bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(ss_bo); |
render_state->wm.sampler_count++; |
} |
static void |
i965_render_src_surfaces_state( |
VADriverContextP ctx, |
VASurfaceID surface, |
unsigned int flags |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface; |
int region_pitch; |
int rw, rh; |
dri_bo *region; |
obj_surface = SURFACE(surface); |
assert(obj_surface); |
region_pitch = obj_surface->width; |
rw = obj_surface->orig_width; |
rh = obj_surface->orig_height; |
region = obj_surface->bo; |
i965_render_src_surface_state(ctx, 1, region, 0, rw, rh, region_pitch, I965_SURFACEFORMAT_R8_UNORM, flags); /* Y */ |
i965_render_src_surface_state(ctx, 2, region, 0, rw, rh, region_pitch, I965_SURFACEFORMAT_R8_UNORM, flags); |
if (obj_surface->fourcc == VA_FOURCC('N', 'V', '1', '2')) { |
i965_render_src_surface_state(ctx, 3, region, |
region_pitch * obj_surface->y_cb_offset, |
obj_surface->cb_cr_width, obj_surface->cb_cr_height, obj_surface->cb_cr_pitch, |
I965_SURFACEFORMAT_R8G8_UNORM, flags); /* UV */ |
i965_render_src_surface_state(ctx, 4, region, |
region_pitch * obj_surface->y_cb_offset, |
obj_surface->cb_cr_width, obj_surface->cb_cr_height, obj_surface->cb_cr_pitch, |
I965_SURFACEFORMAT_R8G8_UNORM, flags); |
} else { |
i965_render_src_surface_state(ctx, 3, region, |
region_pitch * obj_surface->y_cb_offset, |
obj_surface->cb_cr_width, obj_surface->cb_cr_height, obj_surface->cb_cr_pitch, |
I965_SURFACEFORMAT_R8_UNORM, flags); /* U */ |
i965_render_src_surface_state(ctx, 4, region, |
region_pitch * obj_surface->y_cb_offset, |
obj_surface->cb_cr_width, obj_surface->cb_cr_height, obj_surface->cb_cr_pitch, |
I965_SURFACEFORMAT_R8_UNORM, flags); |
i965_render_src_surface_state(ctx, 5, region, |
region_pitch * obj_surface->y_cr_offset, |
obj_surface->cb_cr_width, obj_surface->cb_cr_height, obj_surface->cb_cr_pitch, |
I965_SURFACEFORMAT_R8_UNORM, flags); /* V */ |
i965_render_src_surface_state(ctx, 6, region, |
region_pitch * obj_surface->y_cr_offset, |
obj_surface->cb_cr_width, obj_surface->cb_cr_height, obj_surface->cb_cr_pitch, |
I965_SURFACEFORMAT_R8_UNORM, flags); |
} |
} |
static void |
i965_subpic_render_src_surfaces_state(VADriverContextP ctx, |
VASurfaceID surface) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(surface); |
dri_bo *subpic_region; |
unsigned int index = obj_surface->subpic_render_idx; |
struct object_subpic *obj_subpic = SUBPIC(obj_surface->subpic[index]); |
struct object_image *obj_image = IMAGE(obj_subpic->image); |
assert(obj_surface); |
assert(obj_surface->bo); |
subpic_region = obj_image->bo; |
/*subpicture surface*/ |
i965_render_src_surface_state(ctx, 1, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->pitch, obj_subpic->format, 0); |
i965_render_src_surface_state(ctx, 2, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->pitch, obj_subpic->format, 0); |
} |
static void |
i965_render_dest_surface_state(VADriverContextP ctx, int index) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct intel_region *dest_region = render_state->draw_region; |
void *ss; |
dri_bo *ss_bo = render_state->wm.surface_state_binding_table_bo; |
int format; |
assert(index < MAX_RENDER_SURFACES); |
if (dest_region->cpp == 2) { |
format = I965_SURFACEFORMAT_B5G6R5_UNORM; |
} else { |
format = I965_SURFACEFORMAT_B8G8R8A8_UNORM; |
} |
dri_bo_map(ss_bo, 1); |
assert(ss_bo->virtual); |
ss = (char *)ss_bo->virtual + SURFACE_STATE_OFFSET(index); |
if (IS_GEN7(i965->intel.device_id)) { |
gen7_render_set_surface_state(ss, |
dest_region->bo, 0, |
dest_region->width, dest_region->height, |
dest_region->pitch, format, 0); |
if (IS_HASWELL(i965->intel.device_id)) |
gen7_render_set_surface_scs(ss); |
dri_bo_emit_reloc(ss_bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct gen7_surface_state, ss1), |
dest_region->bo); |
} else { |
i965_render_set_surface_state(ss, |
dest_region->bo, 0, |
dest_region->width, dest_region->height, |
dest_region->pitch, format, 0); |
dri_bo_emit_reloc(ss_bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, |
0, |
SURFACE_STATE_OFFSET(index) + offsetof(struct i965_surface_state, ss1), |
dest_region->bo); |
} |
((unsigned int *)((char *)ss_bo->virtual + BINDING_TABLE_OFFSET))[index] = SURFACE_STATE_OFFSET(index); |
dri_bo_unmap(ss_bo); |
} |
static void |
i965_fill_vertex_buffer( |
VADriverContextP ctx, |
float tex_coords[4], /* [(u1,v1);(u2,v2)] */ |
float vid_coords[4] /* [(x1,y1);(x2,y2)] */ |
) |
{ |
struct i965_driver_data * const i965 = i965_driver_data(ctx); |
float vb[12]; |
enum { X1, Y1, X2, Y2 }; |
static const unsigned int g_rotation_indices[][6] = { |
[VA_ROTATION_NONE] = { X2, Y2, X1, Y2, X1, Y1 }, |
[VA_ROTATION_90] = { X2, Y1, X2, Y2, X1, Y2 }, |
[VA_ROTATION_180] = { X1, Y1, X2, Y1, X2, Y2 }, |
[VA_ROTATION_270] = { X1, Y2, X1, Y1, X2, Y1 }, |
}; |
const unsigned int * const rotation_indices = |
g_rotation_indices[i965->rotation_attrib->value]; |
vb[0] = tex_coords[rotation_indices[0]]; /* bottom-right corner */ |
vb[1] = tex_coords[rotation_indices[1]]; |
vb[2] = vid_coords[X2]; |
vb[3] = vid_coords[Y2]; |
vb[4] = tex_coords[rotation_indices[2]]; /* bottom-left corner */ |
vb[5] = tex_coords[rotation_indices[3]]; |
vb[6] = vid_coords[X1]; |
vb[7] = vid_coords[Y2]; |
vb[8] = tex_coords[rotation_indices[4]]; /* top-left corner */ |
vb[9] = tex_coords[rotation_indices[5]]; |
vb[10] = vid_coords[X1]; |
vb[11] = vid_coords[Y1]; |
dri_bo_subdata(i965->render_state.vb.vertex_buffer, 0, sizeof(vb), vb); |
} |
static void |
i965_subpic_render_upload_vertex(VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *output_rect) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct object_surface *obj_surface = SURFACE(surface); |
unsigned int index = obj_surface->subpic_render_idx; |
struct object_subpic *obj_subpic = SUBPIC(obj_surface->subpic[index]); |
float tex_coords[4], vid_coords[4]; |
VARectangle dst_rect; |
if (obj_subpic->flags & VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD) |
dst_rect = obj_subpic->dst_rect; |
else { |
const float sx = (float)output_rect->width / obj_surface->orig_width; |
const float sy = (float)output_rect->height / obj_surface->orig_height; |
dst_rect.x = output_rect->x + sx * obj_subpic->dst_rect.x; |
dst_rect.y = output_rect->y + sy * obj_subpic->dst_rect.y; |
dst_rect.width = sx * obj_subpic->dst_rect.width; |
dst_rect.height = sy * obj_subpic->dst_rect.height; |
} |
tex_coords[0] = (float)obj_subpic->src_rect.x / obj_subpic->width; |
tex_coords[1] = (float)obj_subpic->src_rect.y / obj_subpic->height; |
tex_coords[2] = (float)(obj_subpic->src_rect.x + obj_subpic->src_rect.width) / obj_subpic->width; |
tex_coords[3] = (float)(obj_subpic->src_rect.y + obj_subpic->src_rect.height) / obj_subpic->height; |
vid_coords[0] = dst_rect.x; |
vid_coords[1] = dst_rect.y; |
vid_coords[2] = (float)(dst_rect.x + dst_rect.width); |
vid_coords[3] = (float)(dst_rect.y + dst_rect.height); |
i965_fill_vertex_buffer(ctx, tex_coords, vid_coords); |
} |
static void |
i965_render_upload_vertex( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct intel_region *dest_region = render_state->draw_region; |
struct object_surface *obj_surface; |
float tex_coords[4], vid_coords[4]; |
int width, height; |
obj_surface = SURFACE(surface); |
assert(surface); |
width = obj_surface->orig_width; |
height = obj_surface->orig_height; |
tex_coords[0] = (float)src_rect->x / width; |
tex_coords[1] = (float)src_rect->y / height; |
tex_coords[2] = (float)(src_rect->x + src_rect->width) / width; |
tex_coords[3] = (float)(src_rect->y + src_rect->height) / height; |
vid_coords[0] = dest_region->x + dst_rect->x; |
vid_coords[1] = dest_region->y + dst_rect->y; |
vid_coords[2] = vid_coords[0] + dst_rect->width; |
vid_coords[3] = vid_coords[1] + dst_rect->height; |
i965_fill_vertex_buffer(ctx, tex_coords, vid_coords); |
} |
static void |
i965_render_upload_constants(VADriverContextP ctx, |
VASurfaceID surface) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
unsigned short *constant_buffer; |
struct object_surface *obj_surface = SURFACE(surface); |
dri_bo_map(render_state->curbe.bo, 1); |
assert(render_state->curbe.bo->virtual); |
constant_buffer = render_state->curbe.bo->virtual; |
if (obj_surface->subsampling == SUBSAMPLE_YUV400) { |
assert(obj_surface->fourcc == VA_FOURCC('I', 'M', 'C', '1') || |
obj_surface->fourcc == VA_FOURCC('I', 'M', 'C', '3')); |
*constant_buffer = 2; |
} else { |
if (obj_surface->fourcc == VA_FOURCC('N', 'V', '1', '2')) |
*constant_buffer = 1; |
else |
*constant_buffer = 0; |
} |
dri_bo_unmap(render_state->curbe.bo); |
} |
static void |
i965_subpic_render_upload_constants(VADriverContextP ctx, |
VASurfaceID surface) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
float *constant_buffer; |
float global_alpha = 1.0; |
struct object_surface *obj_surface = SURFACE(surface); |
unsigned int index = obj_surface->subpic_render_idx; |
if(obj_surface->subpic[index] != VA_INVALID_ID){ |
struct object_subpic *obj_subpic= SUBPIC(obj_surface->subpic[index]); |
if(obj_subpic->flags & VA_SUBPICTURE_GLOBAL_ALPHA){ |
global_alpha = obj_subpic->global_alpha; |
} |
} |
dri_bo_map(render_state->curbe.bo, 1); |
assert(render_state->curbe.bo->virtual); |
constant_buffer = render_state->curbe.bo->virtual; |
*constant_buffer = global_alpha; |
dri_bo_unmap(render_state->curbe.bo); |
} |
static void |
i965_surface_render_state_setup( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect, |
unsigned int flags |
) |
{ |
i965_render_vs_unit(ctx); |
i965_render_sf_unit(ctx); |
i965_render_dest_surface_state(ctx, 0); |
i965_render_src_surfaces_state(ctx, surface, flags); |
i965_render_sampler(ctx); |
i965_render_wm_unit(ctx); |
i965_render_cc_viewport(ctx); |
i965_render_cc_unit(ctx); |
i965_render_upload_vertex(ctx, surface, src_rect, dst_rect); |
i965_render_upload_constants(ctx, surface); |
} |
static void |
i965_subpic_render_state_setup( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect |
) |
{ |
i965_render_vs_unit(ctx); |
i965_render_sf_unit(ctx); |
i965_render_dest_surface_state(ctx, 0); |
i965_subpic_render_src_surfaces_state(ctx, surface); |
i965_render_sampler(ctx); |
i965_subpic_render_wm_unit(ctx); |
i965_render_cc_viewport(ctx); |
i965_subpic_render_cc_unit(ctx); |
i965_subpic_render_upload_constants(ctx, surface); |
i965_subpic_render_upload_vertex(ctx, surface, dst_rect); |
} |
static void |
i965_render_pipeline_select(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
BEGIN_BATCH(batch, 1); |
OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_3D); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_render_state_sip(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_STATE_SIP | 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_render_state_base_address(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
if (IS_IRONLAKE(i965->intel.device_id)) { |
BEGIN_BATCH(batch, 8); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | 6); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_RELOC(batch, render_state->wm.surface_state_binding_table_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
ADVANCE_BATCH(batch); |
} else { |
BEGIN_BATCH(batch, 6); |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | 4); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_RELOC(batch, render_state->wm.surface_state_binding_table_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
OUT_BATCH(batch, 0 | BASE_ADDRESS_MODIFY); |
ADVANCE_BATCH(batch); |
} |
} |
static void |
i965_render_binding_table_pointers(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
BEGIN_BATCH(batch, 6); |
OUT_BATCH(batch, CMD_BINDING_TABLE_POINTERS | 4); |
OUT_BATCH(batch, 0); /* vs */ |
OUT_BATCH(batch, 0); /* gs */ |
OUT_BATCH(batch, 0); /* clip */ |
OUT_BATCH(batch, 0); /* sf */ |
OUT_BATCH(batch, BINDING_TABLE_OFFSET); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_render_constant_color(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
BEGIN_BATCH(batch, 5); |
OUT_BATCH(batch, CMD_CONSTANT_COLOR | 3); |
OUT_BATCH(batch, float_to_uint(1.0)); |
OUT_BATCH(batch, float_to_uint(0.0)); |
OUT_BATCH(batch, float_to_uint(1.0)); |
OUT_BATCH(batch, float_to_uint(1.0)); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_render_pipelined_pointers(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
BEGIN_BATCH(batch, 7); |
OUT_BATCH(batch, CMD_PIPELINED_POINTERS | 5); |
OUT_RELOC(batch, render_state->vs.state, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
OUT_BATCH(batch, 0); /* disable GS */ |
OUT_BATCH(batch, 0); /* disable CLIP */ |
OUT_RELOC(batch, render_state->sf.state, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
OUT_RELOC(batch, render_state->wm.state, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
OUT_RELOC(batch, render_state->cc.state, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_render_urb_layout(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
int urb_vs_start, urb_vs_size; |
int urb_gs_start, urb_gs_size; |
int urb_clip_start, urb_clip_size; |
int urb_sf_start, urb_sf_size; |
int urb_cs_start, urb_cs_size; |
urb_vs_start = 0; |
urb_vs_size = URB_VS_ENTRIES * URB_VS_ENTRY_SIZE; |
urb_gs_start = urb_vs_start + urb_vs_size; |
urb_gs_size = URB_GS_ENTRIES * URB_GS_ENTRY_SIZE; |
urb_clip_start = urb_gs_start + urb_gs_size; |
urb_clip_size = URB_CLIP_ENTRIES * URB_CLIP_ENTRY_SIZE; |
urb_sf_start = urb_clip_start + urb_clip_size; |
urb_sf_size = URB_SF_ENTRIES * URB_SF_ENTRY_SIZE; |
urb_cs_start = urb_sf_start + urb_sf_size; |
urb_cs_size = URB_CS_ENTRIES * URB_CS_ENTRY_SIZE; |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, |
CMD_URB_FENCE | |
UF0_CS_REALLOC | |
UF0_SF_REALLOC | |
UF0_CLIP_REALLOC | |
UF0_GS_REALLOC | |
UF0_VS_REALLOC | |
1); |
OUT_BATCH(batch, |
((urb_clip_start + urb_clip_size) << UF1_CLIP_FENCE_SHIFT) | |
((urb_gs_start + urb_gs_size) << UF1_GS_FENCE_SHIFT) | |
((urb_vs_start + urb_vs_size) << UF1_VS_FENCE_SHIFT)); |
OUT_BATCH(batch, |
((urb_cs_start + urb_cs_size) << UF2_CS_FENCE_SHIFT) | |
((urb_sf_start + urb_sf_size) << UF2_SF_FENCE_SHIFT)); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_render_cs_urb_layout(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_CS_URB_STATE | 0); |
OUT_BATCH(batch, |
((URB_CS_ENTRY_SIZE - 1) << 4) | /* URB Entry Allocation Size */ |
(URB_CS_ENTRIES << 0)); /* Number of URB Entries */ |
ADVANCE_BATCH(batch); |
} |
static void |
i965_render_constant_buffer(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_CONSTANT_BUFFER | (1 << 8) | (2 - 2)); |
OUT_RELOC(batch, render_state->curbe.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
URB_CS_ENTRY_SIZE - 1); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_render_drawing_rectangle(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
struct intel_region *dest_region = render_state->draw_region; |
BEGIN_BATCH(batch, 4); |
OUT_BATCH(batch, CMD_DRAWING_RECTANGLE | 2); |
OUT_BATCH(batch, 0x00000000); |
OUT_BATCH(batch, (dest_region->width - 1) | (dest_region->height - 1) << 16); |
OUT_BATCH(batch, 0x00000000); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_render_vertex_elements(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
if (IS_IRONLAKE(i965->intel.device_id)) { |
BEGIN_BATCH(batch, 5); |
OUT_BATCH(batch, CMD_VERTEX_ELEMENTS | 3); |
/* offset 0: X,Y -> {X, Y, 1.0, 1.0} */ |
OUT_BATCH(batch, (0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) | |
VE0_VALID | |
(I965_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) | |
(0 << VE0_OFFSET_SHIFT)); |
OUT_BATCH(batch, (I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) | |
(I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT)); |
/* offset 8: S0, T0 -> {S0, T0, 1.0, 1.0} */ |
OUT_BATCH(batch, (0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) | |
VE0_VALID | |
(I965_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) | |
(8 << VE0_OFFSET_SHIFT)); |
OUT_BATCH(batch, (I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) | |
(I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT)); |
ADVANCE_BATCH(batch); |
} else { |
BEGIN_BATCH(batch, 5); |
OUT_BATCH(batch, CMD_VERTEX_ELEMENTS | 3); |
/* offset 0: X,Y -> {X, Y, 1.0, 1.0} */ |
OUT_BATCH(batch, (0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) | |
VE0_VALID | |
(I965_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) | |
(0 << VE0_OFFSET_SHIFT)); |
OUT_BATCH(batch, (I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) | |
(I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT) | |
(0 << VE1_DESTINATION_ELEMENT_OFFSET_SHIFT)); |
/* offset 8: S0, T0 -> {S0, T0, 1.0, 1.0} */ |
OUT_BATCH(batch, (0 << VE0_VERTEX_BUFFER_INDEX_SHIFT) | |
VE0_VALID | |
(I965_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) | |
(8 << VE0_OFFSET_SHIFT)); |
OUT_BATCH(batch, (I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) | |
(I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT) | |
(4 << VE1_DESTINATION_ELEMENT_OFFSET_SHIFT)); |
ADVANCE_BATCH(batch); |
} |
} |
static void |
i965_render_upload_image_palette( |
VADriverContextP ctx, |
VAImageID image_id, |
unsigned int alpha |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
unsigned int i; |
struct object_image *obj_image = IMAGE(image_id); |
assert(obj_image); |
if (obj_image->image.num_palette_entries == 0) |
return; |
BEGIN_BATCH(batch, 1 + obj_image->image.num_palette_entries); |
OUT_BATCH(batch, CMD_SAMPLER_PALETTE_LOAD | (obj_image->image.num_palette_entries - 1)); |
/*fill palette*/ |
//int32_t out[16]; //0-23:color 23-31:alpha |
for (i = 0; i < obj_image->image.num_palette_entries; i++) |
OUT_BATCH(batch, (alpha << 24) | obj_image->palette[i]); |
ADVANCE_BATCH(batch); |
} |
static void |
i965_render_startup(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
BEGIN_BATCH(batch, 11); |
OUT_BATCH(batch, CMD_VERTEX_BUFFERS | 3); |
OUT_BATCH(batch, |
(0 << VB0_BUFFER_INDEX_SHIFT) | |
VB0_VERTEXDATA | |
((4 * 4) << VB0_BUFFER_PITCH_SHIFT)); |
OUT_RELOC(batch, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 0); |
if (IS_IRONLAKE(i965->intel.device_id)) |
OUT_RELOC(batch, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 12 * 4); |
else |
OUT_BATCH(batch, 3); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, |
CMD_3DPRIMITIVE | |
_3DPRIMITIVE_VERTEX_SEQUENTIAL | |
(_3DPRIM_RECTLIST << _3DPRIMITIVE_TOPOLOGY_SHIFT) | |
(0 << 9) | |
4); |
OUT_BATCH(batch, 3); /* vertex count per instance */ |
OUT_BATCH(batch, 0); /* start vertex offset */ |
OUT_BATCH(batch, 1); /* single instance */ |
OUT_BATCH(batch, 0); /* start instance location */ |
OUT_BATCH(batch, 0); /* index buffer offset, ignored */ |
ADVANCE_BATCH(batch); |
} |
static void |
i965_clear_dest_region(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
struct intel_region *dest_region = render_state->draw_region; |
unsigned int blt_cmd, br13; |
int pitch; |
blt_cmd = XY_COLOR_BLT_CMD; |
br13 = 0xf0 << 16; |
pitch = dest_region->pitch; |
if (dest_region->cpp == 4) { |
br13 |= BR13_8888; |
blt_cmd |= (XY_COLOR_BLT_WRITE_RGB | XY_COLOR_BLT_WRITE_ALPHA); |
} else { |
assert(dest_region->cpp == 2); |
br13 |= BR13_565; |
} |
if (dest_region->tiling != I915_TILING_NONE) { |
blt_cmd |= XY_COLOR_BLT_DST_TILED; |
pitch /= 4; |
} |
br13 |= pitch; |
if (IS_GEN6(i965->intel.device_id) || |
IS_GEN7(i965->intel.device_id)) { |
intel_batchbuffer_start_atomic_blt(batch, 24); |
BEGIN_BLT_BATCH(batch, 6); |
} else { |
intel_batchbuffer_start_atomic(batch, 24); |
BEGIN_BATCH(batch, 6); |
} |
OUT_BATCH(batch, blt_cmd); |
OUT_BATCH(batch, br13); |
OUT_BATCH(batch, (dest_region->y << 16) | (dest_region->x)); |
OUT_BATCH(batch, ((dest_region->y + dest_region->height) << 16) | |
(dest_region->x + dest_region->width)); |
OUT_RELOC(batch, dest_region->bo, |
I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER, |
0); |
OUT_BATCH(batch, 0x0); |
ADVANCE_BATCH(batch); |
intel_batchbuffer_end_atomic(batch); |
} |
static void |
i965_surface_render_pipeline_setup(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
i965_clear_dest_region(ctx); |
intel_batchbuffer_start_atomic(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
i965_render_pipeline_select(ctx); |
i965_render_state_sip(ctx); |
i965_render_state_base_address(ctx); |
i965_render_binding_table_pointers(ctx); |
i965_render_constant_color(ctx); |
i965_render_pipelined_pointers(ctx); |
i965_render_urb_layout(ctx); |
i965_render_cs_urb_layout(ctx); |
i965_render_constant_buffer(ctx); |
i965_render_drawing_rectangle(ctx); |
i965_render_vertex_elements(ctx); |
i965_render_startup(ctx); |
intel_batchbuffer_end_atomic(batch); |
} |
static void |
i965_subpic_render_pipeline_setup(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
intel_batchbuffer_start_atomic(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
i965_render_pipeline_select(ctx); |
i965_render_state_sip(ctx); |
i965_render_state_base_address(ctx); |
i965_render_binding_table_pointers(ctx); |
i965_render_constant_color(ctx); |
i965_render_pipelined_pointers(ctx); |
i965_render_urb_layout(ctx); |
i965_render_cs_urb_layout(ctx); |
i965_render_drawing_rectangle(ctx); |
i965_render_vertex_elements(ctx); |
i965_render_startup(ctx); |
intel_batchbuffer_end_atomic(batch); |
} |
static void |
i965_render_initialize(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
dri_bo *bo; |
/* VERTEX BUFFER */ |
dri_bo_unreference(render_state->vb.vertex_buffer); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vertex buffer", |
4096, |
4096); |
assert(bo); |
render_state->vb.vertex_buffer = bo; |
/* VS */ |
dri_bo_unreference(render_state->vs.state); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vs state", |
sizeof(struct i965_vs_unit_state), |
64); |
assert(bo); |
render_state->vs.state = bo; |
/* GS */ |
/* CLIP */ |
/* SF */ |
dri_bo_unreference(render_state->sf.state); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"sf state", |
sizeof(struct i965_sf_unit_state), |
64); |
assert(bo); |
render_state->sf.state = bo; |
/* WM */ |
dri_bo_unreference(render_state->wm.surface_state_binding_table_bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state & binding table", |
(SURFACE_STATE_PADDED_SIZE + sizeof(unsigned int)) * MAX_RENDER_SURFACES, |
4096); |
assert(bo); |
render_state->wm.surface_state_binding_table_bo = bo; |
dri_bo_unreference(render_state->wm.sampler); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"sampler state", |
MAX_SAMPLERS * sizeof(struct i965_sampler_state), |
64); |
assert(bo); |
render_state->wm.sampler = bo; |
render_state->wm.sampler_count = 0; |
dri_bo_unreference(render_state->wm.state); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"wm state", |
sizeof(struct i965_wm_unit_state), |
64); |
assert(bo); |
render_state->wm.state = bo; |
/* COLOR CALCULATOR */ |
dri_bo_unreference(render_state->cc.state); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"color calc state", |
sizeof(struct i965_cc_unit_state), |
64); |
assert(bo); |
render_state->cc.state = bo; |
dri_bo_unreference(render_state->cc.viewport); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"cc viewport", |
sizeof(struct i965_cc_viewport), |
64); |
assert(bo); |
render_state->cc.viewport = bo; |
} |
static void |
i965_render_put_surface( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect, |
unsigned int flags |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
i965_render_initialize(ctx); |
i965_surface_render_state_setup(ctx, surface, src_rect, dst_rect, flags); |
i965_surface_render_pipeline_setup(ctx); |
intel_batchbuffer_flush(batch); |
} |
static void |
i965_render_put_subpicture( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct object_surface *obj_surface = SURFACE(surface); |
unsigned int index = obj_surface->subpic_render_idx; |
struct object_subpic *obj_subpic = SUBPIC(obj_surface->subpic[index]); |
assert(obj_subpic); |
i965_render_initialize(ctx); |
i965_subpic_render_state_setup(ctx, surface, src_rect, dst_rect); |
i965_subpic_render_pipeline_setup(ctx); |
i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff); |
intel_batchbuffer_flush(batch); |
} |
/* |
* for GEN6+ |
*/ |
static void |
gen6_render_initialize(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
dri_bo *bo; |
/* VERTEX BUFFER */ |
dri_bo_unreference(render_state->vb.vertex_buffer); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vertex buffer", |
4096, |
4096); |
assert(bo); |
render_state->vb.vertex_buffer = bo; |
/* WM */ |
dri_bo_unreference(render_state->wm.surface_state_binding_table_bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state & binding table", |
(SURFACE_STATE_PADDED_SIZE + sizeof(unsigned int)) * MAX_RENDER_SURFACES, |
4096); |
assert(bo); |
render_state->wm.surface_state_binding_table_bo = bo; |
dri_bo_unreference(render_state->wm.sampler); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"sampler state", |
MAX_SAMPLERS * sizeof(struct i965_sampler_state), |
4096); |
assert(bo); |
render_state->wm.sampler = bo; |
render_state->wm.sampler_count = 0; |
/* COLOR CALCULATOR */ |
dri_bo_unreference(render_state->cc.state); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"color calc state", |
sizeof(struct gen6_color_calc_state), |
4096); |
assert(bo); |
render_state->cc.state = bo; |
/* CC VIEWPORT */ |
dri_bo_unreference(render_state->cc.viewport); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"cc viewport", |
sizeof(struct i965_cc_viewport), |
4096); |
assert(bo); |
render_state->cc.viewport = bo; |
/* BLEND STATE */ |
dri_bo_unreference(render_state->cc.blend); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"blend state", |
sizeof(struct gen6_blend_state), |
4096); |
assert(bo); |
render_state->cc.blend = bo; |
/* DEPTH & STENCIL STATE */ |
dri_bo_unreference(render_state->cc.depth_stencil); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"depth & stencil state", |
sizeof(struct gen6_depth_stencil_state), |
4096); |
assert(bo); |
render_state->cc.depth_stencil = bo; |
} |
static void |
gen6_render_color_calc_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct gen6_color_calc_state *color_calc_state; |
dri_bo_map(render_state->cc.state, 1); |
assert(render_state->cc.state->virtual); |
color_calc_state = render_state->cc.state->virtual; |
memset(color_calc_state, 0, sizeof(*color_calc_state)); |
color_calc_state->constant_r = 1.0; |
color_calc_state->constant_g = 0.0; |
color_calc_state->constant_b = 1.0; |
color_calc_state->constant_a = 1.0; |
dri_bo_unmap(render_state->cc.state); |
} |
static void |
gen6_render_blend_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct gen6_blend_state *blend_state; |
dri_bo_map(render_state->cc.blend, 1); |
assert(render_state->cc.blend->virtual); |
blend_state = render_state->cc.blend->virtual; |
memset(blend_state, 0, sizeof(*blend_state)); |
blend_state->blend1.logic_op_enable = 1; |
blend_state->blend1.logic_op_func = 0xc; |
dri_bo_unmap(render_state->cc.blend); |
} |
static void |
gen6_render_depth_stencil_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct gen6_depth_stencil_state *depth_stencil_state; |
dri_bo_map(render_state->cc.depth_stencil, 1); |
assert(render_state->cc.depth_stencil->virtual); |
depth_stencil_state = render_state->cc.depth_stencil->virtual; |
memset(depth_stencil_state, 0, sizeof(*depth_stencil_state)); |
dri_bo_unmap(render_state->cc.depth_stencil); |
} |
static void |
gen6_render_setup_states( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect, |
unsigned int flags |
) |
{ |
i965_render_dest_surface_state(ctx, 0); |
i965_render_src_surfaces_state(ctx, surface, flags); |
i965_render_sampler(ctx); |
i965_render_cc_viewport(ctx); |
gen6_render_color_calc_state(ctx); |
gen6_render_blend_state(ctx); |
gen6_render_depth_stencil_state(ctx); |
i965_render_upload_constants(ctx, surface); |
i965_render_upload_vertex(ctx, surface, src_rect, dst_rect); |
} |
static void |
gen6_emit_invarient_states(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_3D); |
OUT_BATCH(batch, GEN6_3DSTATE_MULTISAMPLE | (3 - 2)); |
OUT_BATCH(batch, GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_CENTER | |
GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_1); /* 1 sample/pixel */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, GEN6_3DSTATE_SAMPLE_MASK | (2 - 2)); |
OUT_BATCH(batch, 1); |
/* Set system instruction pointer */ |
OUT_BATCH(batch, CMD_STATE_SIP | 0); |
OUT_BATCH(batch, 0); |
} |
static void |
gen6_emit_state_base_address(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | (10 - 2)); |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* General state base address */ |
OUT_RELOC(batch, render_state->wm.surface_state_binding_table_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Dynamic state base address */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Indirect object base address */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Instruction base address */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* General state upper bound */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Dynamic state upper bound */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Indirect object upper bound */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Instruction access upper bound */ |
} |
static void |
gen6_emit_viewport_state_pointers(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
OUT_BATCH(batch, GEN6_3DSTATE_VIEWPORT_STATE_POINTERS | |
GEN6_3DSTATE_VIEWPORT_STATE_MODIFY_CC | |
(4 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_RELOC(batch, render_state->cc.viewport, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
} |
static void |
gen6_emit_urb(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
OUT_BATCH(batch, GEN6_3DSTATE_URB | (3 - 2)); |
OUT_BATCH(batch, ((1 - 1) << GEN6_3DSTATE_URB_VS_SIZE_SHIFT) | |
(24 << GEN6_3DSTATE_URB_VS_ENTRIES_SHIFT)); /* at least 24 on GEN6 */ |
OUT_BATCH(batch, (0 << GEN6_3DSTATE_URB_GS_SIZE_SHIFT) | |
(0 << GEN6_3DSTATE_URB_GS_ENTRIES_SHIFT)); /* no GS thread */ |
} |
static void |
gen6_emit_cc_state_pointers(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
OUT_BATCH(batch, GEN6_3DSTATE_CC_STATE_POINTERS | (4 - 2)); |
OUT_RELOC(batch, render_state->cc.blend, I915_GEM_DOMAIN_INSTRUCTION, 0, 1); |
OUT_RELOC(batch, render_state->cc.depth_stencil, I915_GEM_DOMAIN_INSTRUCTION, 0, 1); |
OUT_RELOC(batch, render_state->cc.state, I915_GEM_DOMAIN_INSTRUCTION, 0, 1); |
} |
static void |
gen6_emit_sampler_state_pointers(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
OUT_BATCH(batch, GEN6_3DSTATE_SAMPLER_STATE_POINTERS | |
GEN6_3DSTATE_SAMPLER_STATE_MODIFY_PS | |
(4 - 2)); |
OUT_BATCH(batch, 0); /* VS */ |
OUT_BATCH(batch, 0); /* GS */ |
OUT_RELOC(batch,render_state->wm.sampler, I915_GEM_DOMAIN_INSTRUCTION, 0, 0); |
} |
static void |
gen6_emit_binding_table(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
/* Binding table pointers */ |
OUT_BATCH(batch, CMD_BINDING_TABLE_POINTERS | |
GEN6_BINDING_TABLE_MODIFY_PS | |
(4 - 2)); |
OUT_BATCH(batch, 0); /* vs */ |
OUT_BATCH(batch, 0); /* gs */ |
/* Only the PS uses the binding table */ |
OUT_BATCH(batch, BINDING_TABLE_OFFSET); |
} |
static void |
gen6_emit_depth_buffer_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
OUT_BATCH(batch, CMD_DEPTH_BUFFER | (7 - 2)); |
OUT_BATCH(batch, (I965_SURFACE_NULL << CMD_DEPTH_BUFFER_TYPE_SHIFT) | |
(I965_DEPTHFORMAT_D32_FLOAT << CMD_DEPTH_BUFFER_FORMAT_SHIFT)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, CMD_CLEAR_PARAMS | (2 - 2)); |
OUT_BATCH(batch, 0); |
} |
static void |
gen6_emit_drawing_rectangle(VADriverContextP ctx) |
{ |
i965_render_drawing_rectangle(ctx); |
} |
static void |
gen6_emit_vs_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
/* disable VS constant buffer */ |
OUT_BATCH(batch, GEN6_3DSTATE_CONSTANT_VS | (5 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, GEN6_3DSTATE_VS | (6 - 2)); |
OUT_BATCH(batch, 0); /* without VS kernel */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* pass-through */ |
} |
static void |
gen6_emit_gs_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
/* disable GS constant buffer */ |
OUT_BATCH(batch, GEN6_3DSTATE_CONSTANT_GS | (5 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, GEN6_3DSTATE_GS | (7 - 2)); |
OUT_BATCH(batch, 0); /* without GS kernel */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* pass-through */ |
} |
static void |
gen6_emit_clip_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
OUT_BATCH(batch, GEN6_3DSTATE_CLIP | (4 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* pass-through */ |
OUT_BATCH(batch, 0); |
} |
static void |
gen6_emit_sf_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
OUT_BATCH(batch, GEN6_3DSTATE_SF | (20 - 2)); |
OUT_BATCH(batch, (1 << GEN6_3DSTATE_SF_NUM_OUTPUTS_SHIFT) | |
(1 << GEN6_3DSTATE_SF_URB_ENTRY_READ_LENGTH_SHIFT) | |
(0 << GEN6_3DSTATE_SF_URB_ENTRY_READ_OFFSET_SHIFT)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, GEN6_3DSTATE_SF_CULL_NONE); |
OUT_BATCH(batch, 2 << GEN6_3DSTATE_SF_TRIFAN_PROVOKE_SHIFT); /* DW4 */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* DW9 */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* DW14 */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* DW19 */ |
} |
static void |
gen6_emit_wm_state(VADriverContextP ctx, int kernel) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
OUT_BATCH(batch, GEN6_3DSTATE_CONSTANT_PS | |
GEN6_3DSTATE_CONSTANT_BUFFER_0_ENABLE | |
(5 - 2)); |
OUT_RELOC(batch, |
render_state->curbe.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, GEN6_3DSTATE_WM | (9 - 2)); |
OUT_RELOC(batch, render_state->render_kernels[kernel].bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BATCH(batch, (1 << GEN6_3DSTATE_WM_SAMPLER_COUNT_SHITF) | |
(5 << GEN6_3DSTATE_WM_BINDING_TABLE_ENTRY_COUNT_SHIFT)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, (6 << GEN6_3DSTATE_WM_DISPATCH_START_GRF_0_SHIFT)); /* DW4 */ |
OUT_BATCH(batch, ((render_state->max_wm_threads - 1) << GEN6_3DSTATE_WM_MAX_THREADS_SHIFT) | |
GEN6_3DSTATE_WM_DISPATCH_ENABLE | |
GEN6_3DSTATE_WM_16_DISPATCH_ENABLE); |
OUT_BATCH(batch, (1 << GEN6_3DSTATE_WM_NUM_SF_OUTPUTS_SHIFT) | |
GEN6_3DSTATE_WM_PERSPECTIVE_PIXEL_BARYCENTRIC); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
} |
static void |
gen6_emit_vertex_element_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
/* Set up our vertex elements, sourced from the single vertex buffer. */ |
OUT_BATCH(batch, CMD_VERTEX_ELEMENTS | (5 - 2)); |
/* offset 0: X,Y -> {X, Y, 1.0, 1.0} */ |
OUT_BATCH(batch, (0 << GEN6_VE0_VERTEX_BUFFER_INDEX_SHIFT) | |
GEN6_VE0_VALID | |
(I965_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) | |
(0 << VE0_OFFSET_SHIFT)); |
OUT_BATCH(batch, (I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) | |
(I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT)); |
/* offset 8: S0, T0 -> {S0, T0, 1.0, 1.0} */ |
OUT_BATCH(batch, (0 << GEN6_VE0_VERTEX_BUFFER_INDEX_SHIFT) | |
GEN6_VE0_VALID | |
(I965_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) | |
(8 << VE0_OFFSET_SHIFT)); |
OUT_BATCH(batch, (I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) | |
(I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT)); |
} |
static void |
gen6_emit_vertices(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
BEGIN_BATCH(batch, 11); |
OUT_BATCH(batch, CMD_VERTEX_BUFFERS | 3); |
OUT_BATCH(batch, |
(0 << GEN6_VB0_BUFFER_INDEX_SHIFT) | |
GEN6_VB0_VERTEXDATA | |
((4 * 4) << VB0_BUFFER_PITCH_SHIFT)); |
OUT_RELOC(batch, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 0); |
OUT_RELOC(batch, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 12 * 4); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, |
CMD_3DPRIMITIVE | |
_3DPRIMITIVE_VERTEX_SEQUENTIAL | |
(_3DPRIM_RECTLIST << _3DPRIMITIVE_TOPOLOGY_SHIFT) | |
(0 << 9) | |
4); |
OUT_BATCH(batch, 3); /* vertex count per instance */ |
OUT_BATCH(batch, 0); /* start vertex offset */ |
OUT_BATCH(batch, 1); /* single instance */ |
OUT_BATCH(batch, 0); /* start instance location */ |
OUT_BATCH(batch, 0); /* index buffer offset, ignored */ |
ADVANCE_BATCH(batch); |
} |
static void |
gen6_render_emit_states(VADriverContextP ctx, int kernel) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
intel_batchbuffer_start_atomic(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen6_emit_invarient_states(ctx); |
gen6_emit_state_base_address(ctx); |
gen6_emit_viewport_state_pointers(ctx); |
gen6_emit_urb(ctx); |
gen6_emit_cc_state_pointers(ctx); |
gen6_emit_sampler_state_pointers(ctx); |
gen6_emit_vs_state(ctx); |
gen6_emit_gs_state(ctx); |
gen6_emit_clip_state(ctx); |
gen6_emit_sf_state(ctx); |
gen6_emit_wm_state(ctx, kernel); |
gen6_emit_binding_table(ctx); |
gen6_emit_depth_buffer_state(ctx); |
gen6_emit_drawing_rectangle(ctx); |
gen6_emit_vertex_element_state(ctx); |
gen6_emit_vertices(ctx); |
intel_batchbuffer_end_atomic(batch); |
} |
static void |
gen6_render_put_surface( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect, |
unsigned int flags |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
gen6_render_initialize(ctx); |
gen6_render_setup_states(ctx, surface, src_rect, dst_rect, flags); |
i965_clear_dest_region(ctx); |
gen6_render_emit_states(ctx, PS_KERNEL); |
intel_batchbuffer_flush(batch); |
} |
static void |
gen6_subpicture_render_blend_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct gen6_blend_state *blend_state; |
dri_bo_unmap(render_state->cc.state); |
dri_bo_map(render_state->cc.blend, 1); |
assert(render_state->cc.blend->virtual); |
blend_state = render_state->cc.blend->virtual; |
memset(blend_state, 0, sizeof(*blend_state)); |
blend_state->blend0.dest_blend_factor = I965_BLENDFACTOR_INV_SRC_ALPHA; |
blend_state->blend0.source_blend_factor = I965_BLENDFACTOR_SRC_ALPHA; |
blend_state->blend0.blend_func = I965_BLENDFUNCTION_ADD; |
blend_state->blend0.blend_enable = 1; |
blend_state->blend1.post_blend_clamp_enable = 1; |
blend_state->blend1.pre_blend_clamp_enable = 1; |
blend_state->blend1.clamp_range = 0; /* clamp range [0, 1] */ |
dri_bo_unmap(render_state->cc.blend); |
} |
static void |
gen6_subpicture_render_setup_states( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect |
) |
{ |
i965_render_dest_surface_state(ctx, 0); |
i965_subpic_render_src_surfaces_state(ctx, surface); |
i965_render_sampler(ctx); |
i965_render_cc_viewport(ctx); |
gen6_render_color_calc_state(ctx); |
gen6_subpicture_render_blend_state(ctx); |
gen6_render_depth_stencil_state(ctx); |
i965_subpic_render_upload_constants(ctx, surface); |
i965_subpic_render_upload_vertex(ctx, surface, dst_rect); |
} |
static void |
gen6_render_put_subpicture( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct object_surface *obj_surface = SURFACE(surface); |
unsigned int index = obj_surface->subpic_render_idx; |
struct object_subpic *obj_subpic = SUBPIC(obj_surface->subpic[index]); |
assert(obj_subpic); |
gen6_render_initialize(ctx); |
gen6_subpicture_render_setup_states(ctx, surface, src_rect, dst_rect); |
gen6_render_emit_states(ctx, PS_SUBPIC_KERNEL); |
i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff); |
intel_batchbuffer_flush(batch); |
} |
/* |
* for GEN7 |
*/ |
static void |
gen7_render_initialize(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
dri_bo *bo; |
/* VERTEX BUFFER */ |
dri_bo_unreference(render_state->vb.vertex_buffer); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"vertex buffer", |
4096, |
4096); |
assert(bo); |
render_state->vb.vertex_buffer = bo; |
/* WM */ |
dri_bo_unreference(render_state->wm.surface_state_binding_table_bo); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"surface state & binding table", |
(SURFACE_STATE_PADDED_SIZE + sizeof(unsigned int)) * MAX_RENDER_SURFACES, |
4096); |
assert(bo); |
render_state->wm.surface_state_binding_table_bo = bo; |
dri_bo_unreference(render_state->wm.sampler); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"sampler state", |
MAX_SAMPLERS * sizeof(struct gen7_sampler_state), |
4096); |
assert(bo); |
render_state->wm.sampler = bo; |
render_state->wm.sampler_count = 0; |
/* COLOR CALCULATOR */ |
dri_bo_unreference(render_state->cc.state); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"color calc state", |
sizeof(struct gen6_color_calc_state), |
4096); |
assert(bo); |
render_state->cc.state = bo; |
/* CC VIEWPORT */ |
dri_bo_unreference(render_state->cc.viewport); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"cc viewport", |
sizeof(struct i965_cc_viewport), |
4096); |
assert(bo); |
render_state->cc.viewport = bo; |
/* BLEND STATE */ |
dri_bo_unreference(render_state->cc.blend); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"blend state", |
sizeof(struct gen6_blend_state), |
4096); |
assert(bo); |
render_state->cc.blend = bo; |
/* DEPTH & STENCIL STATE */ |
dri_bo_unreference(render_state->cc.depth_stencil); |
bo = dri_bo_alloc(i965->intel.bufmgr, |
"depth & stencil state", |
sizeof(struct gen6_depth_stencil_state), |
4096); |
assert(bo); |
render_state->cc.depth_stencil = bo; |
} |
static void |
gen7_render_color_calc_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct gen6_color_calc_state *color_calc_state; |
dri_bo_map(render_state->cc.state, 1); |
assert(render_state->cc.state->virtual); |
color_calc_state = render_state->cc.state->virtual; |
memset(color_calc_state, 0, sizeof(*color_calc_state)); |
color_calc_state->constant_r = 1.0; |
color_calc_state->constant_g = 0.0; |
color_calc_state->constant_b = 1.0; |
color_calc_state->constant_a = 1.0; |
dri_bo_unmap(render_state->cc.state); |
} |
static void |
gen7_render_blend_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct gen6_blend_state *blend_state; |
dri_bo_map(render_state->cc.blend, 1); |
assert(render_state->cc.blend->virtual); |
blend_state = render_state->cc.blend->virtual; |
memset(blend_state, 0, sizeof(*blend_state)); |
blend_state->blend1.logic_op_enable = 1; |
blend_state->blend1.logic_op_func = 0xc; |
blend_state->blend1.pre_blend_clamp_enable = 1; |
dri_bo_unmap(render_state->cc.blend); |
} |
static void |
gen7_render_depth_stencil_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct gen6_depth_stencil_state *depth_stencil_state; |
dri_bo_map(render_state->cc.depth_stencil, 1); |
assert(render_state->cc.depth_stencil->virtual); |
depth_stencil_state = render_state->cc.depth_stencil->virtual; |
memset(depth_stencil_state, 0, sizeof(*depth_stencil_state)); |
dri_bo_unmap(render_state->cc.depth_stencil); |
} |
static void |
gen7_render_sampler(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct gen7_sampler_state *sampler_state; |
int i; |
assert(render_state->wm.sampler_count > 0); |
assert(render_state->wm.sampler_count <= MAX_SAMPLERS); |
dri_bo_map(render_state->wm.sampler, 1); |
assert(render_state->wm.sampler->virtual); |
sampler_state = render_state->wm.sampler->virtual; |
for (i = 0; i < render_state->wm.sampler_count; i++) { |
memset(sampler_state, 0, sizeof(*sampler_state)); |
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; |
sampler_state++; |
} |
dri_bo_unmap(render_state->wm.sampler); |
} |
static void |
gen7_render_setup_states( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect, |
unsigned int flags |
) |
{ |
i965_render_dest_surface_state(ctx, 0); |
i965_render_src_surfaces_state(ctx, surface, flags); |
gen7_render_sampler(ctx); |
i965_render_cc_viewport(ctx); |
gen7_render_color_calc_state(ctx); |
gen7_render_blend_state(ctx); |
gen7_render_depth_stencil_state(ctx); |
i965_render_upload_constants(ctx, surface); |
i965_render_upload_vertex(ctx, surface, src_rect, dst_rect); |
} |
static void |
gen7_emit_invarient_states(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
BEGIN_BATCH(batch, 1); |
OUT_BATCH(batch, CMD_PIPELINE_SELECT | PIPELINE_SELECT_3D); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 4); |
OUT_BATCH(batch, GEN6_3DSTATE_MULTISAMPLE | (4 - 2)); |
OUT_BATCH(batch, GEN6_3DSTATE_MULTISAMPLE_PIXEL_LOCATION_CENTER | |
GEN6_3DSTATE_MULTISAMPLE_NUMSAMPLES_1); /* 1 sample/pixel */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN6_3DSTATE_SAMPLE_MASK | (2 - 2)); |
OUT_BATCH(batch, 1); |
ADVANCE_BATCH(batch); |
/* Set system instruction pointer */ |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, CMD_STATE_SIP | 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
gen7_emit_state_base_address(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
OUT_BATCH(batch, CMD_STATE_BASE_ADDRESS | (10 - 2)); |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* General state base address */ |
OUT_RELOC(batch, render_state->wm.surface_state_binding_table_bo, I915_GEM_DOMAIN_INSTRUCTION, 0, BASE_ADDRESS_MODIFY); /* Surface state base address */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Dynamic state base address */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Indirect object base address */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Instruction base address */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* General state upper bound */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Dynamic state upper bound */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Indirect object upper bound */ |
OUT_BATCH(batch, BASE_ADDRESS_MODIFY); /* Instruction access upper bound */ |
} |
static void |
gen7_emit_viewport_state_pointers(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_CC | (2 - 2)); |
OUT_RELOC(batch, |
render_state->cc.viewport, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_VIEWPORT_STATE_POINTERS_SF_CL | (2 - 2)); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} |
/* |
* URB layout on GEN7 |
* ---------------------------------------- |
* | PS Push Constants (8KB) | VS entries | |
* ---------------------------------------- |
*/ |
static void |
gen7_emit_urb(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
unsigned int num_urb_entries = 32; |
if (IS_HASWELL(i965->intel.device_id)) |
num_urb_entries = 64; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_PUSH_CONSTANT_ALLOC_PS | (2 - 2)); |
OUT_BATCH(batch, 8); /* in 1KBs */ |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_URB_VS | (2 - 2)); |
OUT_BATCH(batch, |
(num_urb_entries << GEN7_URB_ENTRY_NUMBER_SHIFT) | |
(2 - 1) << GEN7_URB_ENTRY_SIZE_SHIFT | |
(1 << GEN7_URB_STARTING_ADDRESS_SHIFT)); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_URB_GS | (2 - 2)); |
OUT_BATCH(batch, |
(0 << GEN7_URB_ENTRY_SIZE_SHIFT) | |
(1 << GEN7_URB_STARTING_ADDRESS_SHIFT)); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_URB_HS | (2 - 2)); |
OUT_BATCH(batch, |
(0 << GEN7_URB_ENTRY_SIZE_SHIFT) | |
(2 << GEN7_URB_STARTING_ADDRESS_SHIFT)); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_URB_DS | (2 - 2)); |
OUT_BATCH(batch, |
(0 << GEN7_URB_ENTRY_SIZE_SHIFT) | |
(2 << GEN7_URB_STARTING_ADDRESS_SHIFT)); |
ADVANCE_BATCH(batch); |
} |
static void |
gen7_emit_cc_state_pointers(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN6_3DSTATE_CC_STATE_POINTERS | (2 - 2)); |
OUT_RELOC(batch, |
render_state->cc.state, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
1); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_BLEND_STATE_POINTERS | (2 - 2)); |
OUT_RELOC(batch, |
render_state->cc.blend, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
1); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_DEPTH_STENCIL_STATE_POINTERS | (2 - 2)); |
OUT_RELOC(batch, |
render_state->cc.depth_stencil, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
1); |
ADVANCE_BATCH(batch); |
} |
static void |
gen7_emit_sampler_state_pointers(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_SAMPLER_STATE_POINTERS_PS | (2 - 2)); |
OUT_RELOC(batch, |
render_state->wm.sampler, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
ADVANCE_BATCH(batch); |
} |
static void |
gen7_emit_binding_table(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_BINDING_TABLE_POINTERS_PS | (2 - 2)); |
OUT_BATCH(batch, BINDING_TABLE_OFFSET); |
ADVANCE_BATCH(batch); |
} |
static void |
gen7_emit_depth_buffer_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
BEGIN_BATCH(batch, 7); |
OUT_BATCH(batch, GEN7_3DSTATE_DEPTH_BUFFER | (7 - 2)); |
OUT_BATCH(batch, |
(I965_DEPTHFORMAT_D32_FLOAT << 18) | |
(I965_SURFACE_NULL << 29)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, GEN7_3DSTATE_CLEAR_PARAMS | (3 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
gen7_emit_drawing_rectangle(VADriverContextP ctx) |
{ |
i965_render_drawing_rectangle(ctx); |
} |
static void |
gen7_emit_vs_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
/* disable VS constant buffer */ |
OUT_BATCH(batch, GEN6_3DSTATE_CONSTANT_VS | (7 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, GEN6_3DSTATE_VS | (6 - 2)); |
OUT_BATCH(batch, 0); /* without VS kernel */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* pass-through */ |
} |
static void |
gen7_emit_bypass_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
/* bypass GS */ |
BEGIN_BATCH(batch, 7); |
OUT_BATCH(batch, GEN6_3DSTATE_CONSTANT_GS | (7 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 7); |
OUT_BATCH(batch, GEN6_3DSTATE_GS | (7 - 2)); |
OUT_BATCH(batch, 0); /* without GS kernel */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* pass-through */ |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_BINDING_TABLE_POINTERS_GS | (2 - 2)); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
/* disable HS */ |
BEGIN_BATCH(batch, 7); |
OUT_BATCH(batch, GEN7_3DSTATE_CONSTANT_HS | (7 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 7); |
OUT_BATCH(batch, GEN7_3DSTATE_HS | (7 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_BINDING_TABLE_POINTERS_HS | (2 - 2)); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
/* Disable TE */ |
BEGIN_BATCH(batch, 4); |
OUT_BATCH(batch, GEN7_3DSTATE_TE | (4 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
/* Disable DS */ |
BEGIN_BATCH(batch, 7); |
OUT_BATCH(batch, GEN7_3DSTATE_CONSTANT_DS | (7 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 6); |
OUT_BATCH(batch, GEN7_3DSTATE_DS | (6 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 2); |
OUT_BATCH(batch, GEN7_3DSTATE_BINDING_TABLE_POINTERS_DS | (2 - 2)); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
/* Disable STREAMOUT */ |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, GEN7_3DSTATE_STREAMOUT | (3 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
gen7_emit_clip_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
OUT_BATCH(batch, GEN6_3DSTATE_CLIP | (4 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* pass-through */ |
OUT_BATCH(batch, 0); |
} |
static void |
gen7_emit_sf_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
BEGIN_BATCH(batch, 14); |
OUT_BATCH(batch, GEN7_3DSTATE_SBE | (14 - 2)); |
OUT_BATCH(batch, |
(1 << GEN7_SBE_NUM_OUTPUTS_SHIFT) | |
(1 << GEN7_SBE_URB_ENTRY_READ_LENGTH_SHIFT) | |
(0 << GEN7_SBE_URB_ENTRY_READ_OFFSET_SHIFT)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* DW4 */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); /* DW9 */ |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 7); |
OUT_BATCH(batch, GEN6_3DSTATE_SF | (7 - 2)); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, GEN6_3DSTATE_SF_CULL_NONE); |
OUT_BATCH(batch, 2 << GEN6_3DSTATE_SF_TRIFAN_PROVOKE_SHIFT); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
gen7_emit_wm_state(VADriverContextP ctx, int kernel) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
unsigned int max_threads_shift = GEN7_PS_MAX_THREADS_SHIFT_IVB; |
unsigned int num_samples = 0; |
if (IS_HASWELL(i965->intel.device_id)) { |
max_threads_shift = GEN7_PS_MAX_THREADS_SHIFT_HSW; |
num_samples = 1 << GEN7_PS_SAMPLE_MASK_SHIFT_HSW; |
} |
BEGIN_BATCH(batch, 3); |
OUT_BATCH(batch, GEN6_3DSTATE_WM | (3 - 2)); |
OUT_BATCH(batch, |
GEN7_WM_DISPATCH_ENABLE | |
GEN7_WM_PERSPECTIVE_PIXEL_BARYCENTRIC); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 7); |
OUT_BATCH(batch, GEN6_3DSTATE_CONSTANT_PS | (7 - 2)); |
OUT_BATCH(batch, 1); |
OUT_BATCH(batch, 0); |
OUT_RELOC(batch, |
render_state->curbe.bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 8); |
OUT_BATCH(batch, GEN7_3DSTATE_PS | (8 - 2)); |
OUT_RELOC(batch, |
render_state->render_kernels[kernel].bo, |
I915_GEM_DOMAIN_INSTRUCTION, 0, |
0); |
OUT_BATCH(batch, |
(1 << GEN7_PS_SAMPLER_COUNT_SHIFT) | |
(5 << GEN7_PS_BINDING_TABLE_ENTRY_COUNT_SHIFT)); |
OUT_BATCH(batch, 0); /* scratch space base offset */ |
OUT_BATCH(batch, |
((render_state->max_wm_threads - 1) << max_threads_shift) | num_samples | |
GEN7_PS_PUSH_CONSTANT_ENABLE | |
GEN7_PS_ATTRIBUTE_ENABLE | |
GEN7_PS_16_DISPATCH_ENABLE); |
OUT_BATCH(batch, |
(6 << GEN7_PS_DISPATCH_START_GRF_SHIFT_0)); |
OUT_BATCH(batch, 0); /* kernel 1 pointer */ |
OUT_BATCH(batch, 0); /* kernel 2 pointer */ |
ADVANCE_BATCH(batch); |
} |
static void |
gen7_emit_vertex_element_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
/* Set up our vertex elements, sourced from the single vertex buffer. */ |
OUT_BATCH(batch, CMD_VERTEX_ELEMENTS | (5 - 2)); |
/* offset 0: X,Y -> {X, Y, 1.0, 1.0} */ |
OUT_BATCH(batch, (0 << GEN6_VE0_VERTEX_BUFFER_INDEX_SHIFT) | |
GEN6_VE0_VALID | |
(I965_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) | |
(0 << VE0_OFFSET_SHIFT)); |
OUT_BATCH(batch, (I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) | |
(I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT)); |
/* offset 8: S0, T0 -> {S0, T0, 1.0, 1.0} */ |
OUT_BATCH(batch, (0 << GEN6_VE0_VERTEX_BUFFER_INDEX_SHIFT) | |
GEN6_VE0_VALID | |
(I965_SURFACEFORMAT_R32G32_FLOAT << VE0_FORMAT_SHIFT) | |
(8 << VE0_OFFSET_SHIFT)); |
OUT_BATCH(batch, (I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_0_SHIFT) | |
(I965_VFCOMPONENT_STORE_SRC << VE1_VFCOMPONENT_1_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_2_SHIFT) | |
(I965_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT)); |
} |
static void |
gen7_emit_vertices(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct i965_render_state *render_state = &i965->render_state; |
BEGIN_BATCH(batch, 5); |
OUT_BATCH(batch, CMD_VERTEX_BUFFERS | (5 - 2)); |
OUT_BATCH(batch, |
(0 << GEN6_VB0_BUFFER_INDEX_SHIFT) | |
GEN6_VB0_VERTEXDATA | |
GEN7_VB0_ADDRESS_MODIFYENABLE | |
((4 * 4) << VB0_BUFFER_PITCH_SHIFT)); |
OUT_RELOC(batch, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 0); |
OUT_RELOC(batch, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 12 * 4); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
BEGIN_BATCH(batch, 7); |
OUT_BATCH(batch, CMD_3DPRIMITIVE | (7 - 2)); |
OUT_BATCH(batch, |
_3DPRIM_RECTLIST | |
GEN7_3DPRIM_VERTEXBUFFER_ACCESS_SEQUENTIAL); |
OUT_BATCH(batch, 3); /* vertex count per instance */ |
OUT_BATCH(batch, 0); /* start vertex offset */ |
OUT_BATCH(batch, 1); /* single instance */ |
OUT_BATCH(batch, 0); /* start instance location */ |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} |
static void |
gen7_render_emit_states(VADriverContextP ctx, int kernel) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
intel_batchbuffer_start_atomic(batch, 0x1000); |
intel_batchbuffer_emit_mi_flush(batch); |
gen7_emit_invarient_states(ctx); |
gen7_emit_state_base_address(ctx); |
gen7_emit_viewport_state_pointers(ctx); |
gen7_emit_urb(ctx); |
gen7_emit_cc_state_pointers(ctx); |
gen7_emit_sampler_state_pointers(ctx); |
gen7_emit_bypass_state(ctx); |
gen7_emit_vs_state(ctx); |
gen7_emit_clip_state(ctx); |
gen7_emit_sf_state(ctx); |
gen7_emit_wm_state(ctx, kernel); |
gen7_emit_binding_table(ctx); |
gen7_emit_depth_buffer_state(ctx); |
gen7_emit_drawing_rectangle(ctx); |
gen7_emit_vertex_element_state(ctx); |
gen7_emit_vertices(ctx); |
intel_batchbuffer_end_atomic(batch); |
} |
static void |
gen7_render_put_surface( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect, |
unsigned int flags |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
gen7_render_initialize(ctx); |
gen7_render_setup_states(ctx, surface, src_rect, dst_rect, flags); |
i965_clear_dest_region(ctx); |
gen7_render_emit_states(ctx, PS_KERNEL); |
intel_batchbuffer_flush(batch); |
} |
static void |
gen7_subpicture_render_blend_state(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
struct gen6_blend_state *blend_state; |
dri_bo_unmap(render_state->cc.state); |
dri_bo_map(render_state->cc.blend, 1); |
assert(render_state->cc.blend->virtual); |
blend_state = render_state->cc.blend->virtual; |
memset(blend_state, 0, sizeof(*blend_state)); |
blend_state->blend0.dest_blend_factor = I965_BLENDFACTOR_INV_SRC_ALPHA; |
blend_state->blend0.source_blend_factor = I965_BLENDFACTOR_SRC_ALPHA; |
blend_state->blend0.blend_func = I965_BLENDFUNCTION_ADD; |
blend_state->blend0.blend_enable = 1; |
blend_state->blend1.post_blend_clamp_enable = 1; |
blend_state->blend1.pre_blend_clamp_enable = 1; |
blend_state->blend1.clamp_range = 0; /* clamp range [0, 1] */ |
dri_bo_unmap(render_state->cc.blend); |
} |
static void |
gen7_subpicture_render_setup_states( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect |
) |
{ |
i965_render_dest_surface_state(ctx, 0); |
i965_subpic_render_src_surfaces_state(ctx, surface); |
i965_render_sampler(ctx); |
i965_render_cc_viewport(ctx); |
gen7_render_color_calc_state(ctx); |
gen7_subpicture_render_blend_state(ctx); |
gen7_render_depth_stencil_state(ctx); |
i965_subpic_render_upload_constants(ctx, surface); |
i965_subpic_render_upload_vertex(ctx, surface, dst_rect); |
} |
static void |
gen7_render_put_subpicture( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct intel_batchbuffer *batch = i965->batch; |
struct object_surface *obj_surface = SURFACE(surface); |
unsigned int index = obj_surface->subpic_render_idx; |
struct object_subpic *obj_subpic = SUBPIC(obj_surface->subpic[index]); |
assert(obj_subpic); |
gen7_render_initialize(ctx); |
gen7_subpicture_render_setup_states(ctx, surface, src_rect, dst_rect); |
gen7_render_emit_states(ctx, PS_SUBPIC_KERNEL); |
i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff); |
intel_batchbuffer_flush(batch); |
} |
/* |
* global functions |
*/ |
VAStatus |
i965_DestroySurfaces(VADriverContextP ctx, |
VASurfaceID *surface_list, |
int num_surfaces); |
void |
intel_render_put_surface( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect, |
unsigned int flags |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
int has_done_scaling = 0; |
VASurfaceID in_surface_id = surface; |
VASurfaceID out_surface_id = i965_post_processing(ctx, surface, src_rect, dst_rect, flags, &has_done_scaling); |
assert((!has_done_scaling) || (out_surface_id != VA_INVALID_ID)); |
if (out_surface_id != VA_INVALID_ID) |
in_surface_id = out_surface_id; |
if (IS_GEN7(i965->intel.device_id)) |
gen7_render_put_surface(ctx, in_surface_id, has_done_scaling ? dst_rect : src_rect, dst_rect, flags); |
else if (IS_GEN6(i965->intel.device_id)) |
gen6_render_put_surface(ctx, in_surface_id, has_done_scaling ? dst_rect : src_rect, dst_rect, flags); |
else |
i965_render_put_surface(ctx, in_surface_id, has_done_scaling ? dst_rect : src_rect, dst_rect, flags); |
if (in_surface_id != surface) |
i965_DestroySurfaces(ctx, &in_surface_id, 1); |
} |
void |
intel_render_put_subpicture( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect |
) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
if (IS_GEN7(i965->intel.device_id)) |
gen7_render_put_subpicture(ctx, surface, src_rect, dst_rect); |
else if (IS_GEN6(i965->intel.device_id)) |
gen6_render_put_subpicture(ctx, surface, src_rect, dst_rect); |
else |
i965_render_put_subpicture(ctx, surface, src_rect, dst_rect); |
} |
Bool |
i965_render_init(VADriverContextP ctx) |
{ |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
int i; |
printf("%s\n", __FUNCTION__); |
/* kernel */ |
assert(NUM_RENDER_KERNEL == (sizeof(render_kernels_gen5) / |
sizeof(render_kernels_gen5[0]))); |
assert(NUM_RENDER_KERNEL == (sizeof(render_kernels_gen6) / |
sizeof(render_kernels_gen6[0]))); |
if (IS_GEN7(i965->intel.device_id)) |
memcpy(render_state->render_kernels, |
(IS_HASWELL(i965->intel.device_id) ? render_kernels_gen7_haswell : render_kernels_gen7), |
sizeof(render_state->render_kernels)); |
else if (IS_GEN6(i965->intel.device_id)) |
memcpy(render_state->render_kernels, render_kernels_gen6, sizeof(render_state->render_kernels)); |
else if (IS_IRONLAKE(i965->intel.device_id)) |
memcpy(render_state->render_kernels, render_kernels_gen5, sizeof(render_state->render_kernels)); |
else |
memcpy(render_state->render_kernels, render_kernels_gen4, sizeof(render_state->render_kernels)); |
for (i = 0; i < NUM_RENDER_KERNEL; i++) { |
struct i965_kernel *kernel = &render_state->render_kernels[i]; |
if (!kernel->size) |
continue; |
kernel->bo = dri_bo_alloc(i965->intel.bufmgr, |
kernel->name, |
kernel->size, 0x1000); |
assert(kernel->bo); |
dri_bo_subdata(kernel->bo, 0, kernel->size, kernel->bin); |
} |
/* constant buffer */ |
render_state->curbe.bo = dri_bo_alloc(i965->intel.bufmgr, |
"constant buffer", |
4096, 64); |
assert(render_state->curbe.bo); |
if (IS_IVB_GT1(i965->intel.device_id) || |
IS_HSW_GT1(i965->intel.device_id)) { |
render_state->max_wm_threads = 48; |
} else if (IS_IVB_GT2(i965->intel.device_id) || |
IS_HSW_GT2(i965->intel.device_id)) { |
render_state->max_wm_threads = 172; |
} else if (IS_SNB_GT1(i965->intel.device_id)) { |
render_state->max_wm_threads = 40; |
} else if (IS_SNB_GT2(i965->intel.device_id)) { |
render_state->max_wm_threads = 80; |
} else if (IS_IRONLAKE(i965->intel.device_id)) { |
render_state->max_wm_threads = 72; /* 12 * 6 */ |
} else if (IS_G4X(i965->intel.device_id)) { |
render_state->max_wm_threads = 50; /* 12 * 5 */ |
} else { |
/* should never get here !!! */ |
assert(0); |
} |
return True; |
} |
Bool |
i965_render_terminate(VADriverContextP ctx) |
{ |
int i; |
struct i965_driver_data *i965 = i965_driver_data(ctx); |
struct i965_render_state *render_state = &i965->render_state; |
dri_bo_unreference(render_state->curbe.bo); |
render_state->curbe.bo = NULL; |
for (i = 0; i < NUM_RENDER_KERNEL; i++) { |
struct i965_kernel *kernel = &render_state->render_kernels[i]; |
dri_bo_unreference(kernel->bo); |
kernel->bo = NULL; |
} |
dri_bo_unreference(render_state->vb.vertex_buffer); |
render_state->vb.vertex_buffer = NULL; |
dri_bo_unreference(render_state->vs.state); |
render_state->vs.state = NULL; |
dri_bo_unreference(render_state->sf.state); |
render_state->sf.state = NULL; |
dri_bo_unreference(render_state->wm.sampler); |
render_state->wm.sampler = NULL; |
dri_bo_unreference(render_state->wm.state); |
render_state->wm.state = NULL; |
dri_bo_unreference(render_state->wm.surface_state_binding_table_bo); |
dri_bo_unreference(render_state->cc.viewport); |
render_state->cc.viewport = NULL; |
dri_bo_unreference(render_state->cc.state); |
render_state->cc.state = NULL; |
dri_bo_unreference(render_state->cc.blend); |
render_state->cc.blend = NULL; |
dri_bo_unreference(render_state->cc.depth_stencil); |
render_state->cc.depth_stencil = NULL; |
if (render_state->draw_region) { |
dri_bo_unreference(render_state->draw_region->bo); |
free(render_state->draw_region); |
render_state->draw_region = NULL; |
} |
return True; |
} |
/drivers/video/i965/i965_render.h |
---|
0,0 → 1,108 |
/* |
* Copyright © 2006 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the "Software"), |
* to deal in the Software without restriction, including without limitation |
* the rights to use, copy, modify, merge, publish, distribute, sublicense, |
* and/or sell copies of the Software, and to permit persons to whom the |
* Software is furnished to do so, subject to the following conditions: |
* |
* The above copyright notice and this permission notice (including the next |
* paragraph) shall be included in all copies or substantial portions of the |
* Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
* DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* |
*/ |
#ifndef _I965_RENDER_H_ |
#define _I965_RENDER_H_ |
#define MAX_SAMPLERS 16 |
#define MAX_RENDER_SURFACES (MAX_SAMPLERS + 1) |
#define NUM_RENDER_KERNEL 3 |
#include "i965_post_processing.h" |
struct i965_kernel; |
struct i965_render_state |
{ |
struct { |
dri_bo *vertex_buffer; |
} vb; |
struct { |
dri_bo *state; |
} vs; |
struct { |
dri_bo *state; |
} sf; |
struct { |
int sampler_count; |
dri_bo *sampler; |
dri_bo *state; |
dri_bo *surface_state_binding_table_bo; |
} wm; |
struct { |
dri_bo *state; |
dri_bo *viewport; |
dri_bo *blend; |
dri_bo *depth_stencil; |
} cc; |
struct { |
dri_bo *bo; |
} curbe; |
unsigned short interleaved_uv; |
unsigned short inited; |
struct intel_region *draw_region; |
int pp_flag; /* 0: disable, 1: enable */ |
struct i965_kernel render_kernels[3]; |
int max_wm_threads; |
}; |
Bool i965_render_init(VADriverContextP ctx); |
Bool i965_render_terminate(VADriverContextP ctx); |
void |
intel_render_put_surface( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect, |
unsigned int flags |
); |
void |
intel_render_put_subpicture( |
VADriverContextP ctx, |
VASurfaceID surface, |
const VARectangle *src_rect, |
const VARectangle *dst_rect |
); |
struct gen7_surface_state; |
void |
gen7_render_set_surface_scs(struct gen7_surface_state *ss); |
#endif /* _I965_RENDER_H_ */ |
/drivers/video/i965/i965_structs.h |
---|
0,0 → 1,1445 |
#ifndef _I965_STRUCTS_H_ |
#define _I965_STRUCTS_H_ |
struct i965_vfe_state |
{ |
struct { |
unsigned int per_thread_scratch_space:4; |
unsigned int pad3:3; |
unsigned int extend_vfe_state_present:1; |
unsigned int pad2:2; |
unsigned int scratch_base:22; |
} vfe0; |
struct { |
unsigned int debug_counter_control:2; |
unsigned int children_present:1; |
unsigned int vfe_mode:4; |
unsigned int pad2:2; |
unsigned int num_urb_entries:7; |
unsigned int urb_entry_alloc_size:9; |
unsigned int max_threads:7; |
} vfe1; |
struct { |
unsigned int pad4:4; |
unsigned int interface_descriptor_base:28; |
} vfe2; |
}; |
struct i965_vfe_state_ex |
{ |
struct { |
unsigned int pad:8; |
unsigned int obj_id:24; |
} vfex0; |
union { |
struct { |
unsigned int residual_grf_offset:5; |
unsigned int pad0:3; |
unsigned int weight_grf_offset:5; |
unsigned int pad1:3; |
unsigned int residual_data_offset:8; |
unsigned int sub_field_present_flag:2; |
unsigned int residual_data_fix_offset_flag:1; |
unsigned int pad2:5; |
} avc; |
unsigned int vc1; |
} vfex1; |
struct { |
unsigned int remap_index_0:4; |
unsigned int remap_index_1:4; |
unsigned int remap_index_2:4; |
unsigned int remap_index_3:4; |
unsigned int remap_index_4:4; |
unsigned int remap_index_5:4; |
unsigned int remap_index_6:4; |
unsigned int remap_index_7:4; |
}remap_table0; |
struct { |
unsigned int remap_index_8:4; |
unsigned int remap_index_9:4; |
unsigned int remap_index_10:4; |
unsigned int remap_index_11:4; |
unsigned int remap_index_12:4; |
unsigned int remap_index_13:4; |
unsigned int remap_index_14:4; |
unsigned int remap_index_15:4; |
} remap_table1; |
struct { |
unsigned int mask:8; |
unsigned int pad:22; |
unsigned int type:1; |
unsigned int enable:1; |
} scoreboard0; |
struct { |
int delta_x0:4; |
int delta_y0:4; |
int delta_x1:4; |
int delta_y1:4; |
int delta_x2:4; |
int delta_y2:4; |
int delta_x3:4; |
int delta_y3:4; |
} scoreboard1; |
struct { |
int delta_x4:4; |
int delta_y4:4; |
int delta_x5:4; |
int delta_y5:4; |
int delta_x6:4; |
int delta_y6:4; |
int delta_x7:4; |
int delta_y7:4; |
} scoreboard2; |
unsigned int pad; |
}; |
struct i965_vld_state |
{ |
struct { |
unsigned int pad6:6; |
unsigned int scan_order:1; |
unsigned int intra_vlc_format:1; |
unsigned int quantizer_scale_type:1; |
unsigned int concealment_motion_vector:1; |
unsigned int frame_predict_frame_dct:1; |
unsigned int top_field_first:1; |
unsigned int picture_structure:2; |
unsigned int intra_dc_precision:2; |
unsigned int f_code_0_0:4; |
unsigned int f_code_0_1:4; |
unsigned int f_code_1_0:4; |
unsigned int f_code_1_1:4; |
} vld0; |
struct { |
unsigned int pad2:9; |
unsigned int picture_coding_type:2; |
unsigned int pad:21; |
} vld1; |
struct { |
unsigned int index_0:4; |
unsigned int index_1:4; |
unsigned int index_2:4; |
unsigned int index_3:4; |
unsigned int index_4:4; |
unsigned int index_5:4; |
unsigned int index_6:4; |
unsigned int index_7:4; |
} desc_remap_table0; |
struct { |
unsigned int index_8:4; |
unsigned int index_9:4; |
unsigned int index_10:4; |
unsigned int index_11:4; |
unsigned int index_12:4; |
unsigned int index_13:4; |
unsigned int index_14:4; |
unsigned int index_15:4; |
} desc_remap_table1; |
}; |
struct i965_interface_descriptor |
{ |
struct { |
unsigned int grf_reg_blocks:4; |
unsigned int pad:2; |
unsigned int kernel_start_pointer:26; |
} desc0; |
struct { |
unsigned int pad:7; |
unsigned int software_exception:1; |
unsigned int pad2:3; |
unsigned int maskstack_exception:1; |
unsigned int pad3:1; |
unsigned int illegal_opcode_exception:1; |
unsigned int pad4:2; |
unsigned int floating_point_mode:1; |
unsigned int thread_priority:1; |
unsigned int single_program_flow:1; |
unsigned int pad5:1; |
unsigned int const_urb_entry_read_offset:6; |
unsigned int const_urb_entry_read_len:6; |
} desc1; |
struct { |
unsigned int pad:2; |
unsigned int sampler_count:3; |
unsigned int sampler_state_pointer:27; |
} desc2; |
struct { |
unsigned int binding_table_entry_count:5; |
unsigned int binding_table_pointer:27; |
} desc3; |
}; |
struct i965_surface_state |
{ |
struct { |
unsigned int cube_pos_z:1; |
unsigned int cube_neg_z:1; |
unsigned int cube_pos_y:1; |
unsigned int cube_neg_y:1; |
unsigned int cube_pos_x:1; |
unsigned int cube_neg_x:1; |
unsigned int pad:2; |
unsigned int render_cache_read_mode:1; |
unsigned int cube_map_corner_mode:1; |
unsigned int mipmap_layout_mode:1; |
unsigned int vert_line_stride_ofs:1; |
unsigned int vert_line_stride:1; |
unsigned int color_blend:1; |
unsigned int writedisable_blue:1; |
unsigned int writedisable_green:1; |
unsigned int writedisable_red:1; |
unsigned int writedisable_alpha:1; |
unsigned int surface_format:9; |
unsigned int data_return_format:1; |
unsigned int pad0:1; |
unsigned int surface_type:3; |
} ss0; |
struct { |
unsigned int base_addr; |
} ss1; |
struct { |
unsigned int render_target_rotation:2; |
unsigned int mip_count:4; |
unsigned int width:13; |
unsigned int height:13; |
} ss2; |
struct { |
unsigned int tile_walk:1; |
unsigned int tiled_surface:1; |
unsigned int pad:1; |
unsigned int pitch:18; |
unsigned int depth:11; |
} ss3; |
struct { |
unsigned int pad:19; |
unsigned int min_array_elt:9; |
unsigned int min_lod:4; |
} ss4; |
struct { |
unsigned int pad:20; |
unsigned int y_offset:4; |
unsigned int pad2:1; |
unsigned int x_offset:7; |
} ss5; |
}; |
struct thread0 |
{ |
unsigned int pad0:1; |
unsigned int grf_reg_count:3; |
unsigned int pad1:2; |
unsigned int kernel_start_pointer:26; |
}; |
struct thread1 |
{ |
unsigned int ext_halt_exception_enable:1; |
unsigned int sw_exception_enable:1; |
unsigned int mask_stack_exception_enable:1; |
unsigned int timeout_exception_enable:1; |
unsigned int illegal_op_exception_enable:1; |
unsigned int pad0:3; |
unsigned int depth_coef_urb_read_offset:6; /* WM only */ |
unsigned int pad1:2; |
unsigned int floating_point_mode:1; |
unsigned int thread_priority:1; |
unsigned int binding_table_entry_count:8; |
unsigned int pad3:5; |
unsigned int single_program_flow:1; |
}; |
struct thread2 |
{ |
unsigned int per_thread_scratch_space:4; |
unsigned int pad0:6; |
unsigned int scratch_space_base_pointer:22; |
}; |
struct thread3 |
{ |
unsigned int dispatch_grf_start_reg:4; |
unsigned int urb_entry_read_offset:6; |
unsigned int pad0:1; |
unsigned int urb_entry_read_length:6; |
unsigned int pad1:1; |
unsigned int const_urb_entry_read_offset:6; |
unsigned int pad2:1; |
unsigned int const_urb_entry_read_length:6; |
unsigned int pad3:1; |
}; |
struct i965_vs_unit_state |
{ |
struct thread0 thread0; |
struct thread1 thread1; |
struct thread2 thread2; |
struct thread3 thread3; |
struct { |
unsigned int pad0:10; |
unsigned int stats_enable:1; |
unsigned int nr_urb_entries:7; |
unsigned int pad1:1; |
unsigned int urb_entry_allocation_size:5; |
unsigned int pad2:1; |
unsigned int max_threads:4; |
unsigned int pad3:3; |
} thread4; |
struct { |
unsigned int sampler_count:3; |
unsigned int pad0:2; |
unsigned int sampler_state_pointer:27; |
} vs5; |
struct { |
unsigned int vs_enable:1; |
unsigned int vert_cache_disable:1; |
unsigned int pad0:30; |
} vs6; |
}; |
struct i965_gs_unit_state |
{ |
struct thread0 thread0; |
struct thread1 thread1; |
struct thread2 thread2; |
struct thread3 thread3; |
struct { |
unsigned int pad0:10; |
unsigned int stats_enable:1; |
unsigned int nr_urb_entries:7; |
unsigned int pad1:1; |
unsigned int urb_entry_allocation_size:5; |
unsigned int pad2:1; |
unsigned int max_threads:1; |
unsigned int pad3:6; |
} thread4; |
struct { |
unsigned int sampler_count:3; |
unsigned int pad0:2; |
unsigned int sampler_state_pointer:27; |
} gs5; |
struct { |
unsigned int max_vp_index:4; |
unsigned int pad0:26; |
unsigned int reorder_enable:1; |
unsigned int pad1:1; |
} gs6; |
}; |
struct i965_clip_unit_state |
{ |
struct thread0 thread0; |
struct thread1 thread1; |
struct thread2 thread2; |
struct thread3 thread3; |
struct { |
unsigned int pad0:9; |
unsigned int gs_output_stats:1; /* not always */ |
unsigned int stats_enable:1; |
unsigned int nr_urb_entries:7; |
unsigned int pad1:1; |
unsigned int urb_entry_allocation_size:5; |
unsigned int pad2:1; |
unsigned int max_threads:6; /* may be less */ |
unsigned int pad3:1; |
} thread4; |
struct { |
unsigned int pad0:13; |
unsigned int clip_mode:3; |
unsigned int userclip_enable_flags:8; |
unsigned int userclip_must_clip:1; |
unsigned int pad1:1; |
unsigned int guard_band_enable:1; |
unsigned int viewport_z_clip_enable:1; |
unsigned int viewport_xy_clip_enable:1; |
unsigned int vertex_position_space:1; |
unsigned int api_mode:1; |
unsigned int pad2:1; |
} clip5; |
struct { |
unsigned int pad0:5; |
unsigned int clipper_viewport_state_ptr:27; |
} clip6; |
float viewport_xmin; |
float viewport_xmax; |
float viewport_ymin; |
float viewport_ymax; |
}; |
struct i965_sf_unit_state |
{ |
struct thread0 thread0; |
struct { |
unsigned int pad0:7; |
unsigned int sw_exception_enable:1; |
unsigned int pad1:3; |
unsigned int mask_stack_exception_enable:1; |
unsigned int pad2:1; |
unsigned int illegal_op_exception_enable:1; |
unsigned int pad3:2; |
unsigned int floating_point_mode:1; |
unsigned int thread_priority:1; |
unsigned int binding_table_entry_count:8; |
unsigned int pad4:5; |
unsigned int single_program_flow:1; |
} sf1; |
struct thread2 thread2; |
struct thread3 thread3; |
struct { |
unsigned int pad0:10; |
unsigned int stats_enable:1; |
unsigned int nr_urb_entries:7; |
unsigned int pad1:1; |
unsigned int urb_entry_allocation_size:5; |
unsigned int pad2:1; |
unsigned int max_threads:6; |
unsigned int pad3:1; |
} thread4; |
struct { |
unsigned int front_winding:1; |
unsigned int viewport_transform:1; |
unsigned int pad0:3; |
unsigned int sf_viewport_state_offset:27; |
} sf5; |
struct { |
unsigned int pad0:9; |
unsigned int dest_org_vbias:4; |
unsigned int dest_org_hbias:4; |
unsigned int scissor:1; |
unsigned int disable_2x2_trifilter:1; |
unsigned int disable_zero_pix_trifilter:1; |
unsigned int point_rast_rule:2; |
unsigned int line_endcap_aa_region_width:2; |
unsigned int line_width:4; |
unsigned int fast_scissor_disable:1; |
unsigned int cull_mode:2; |
unsigned int aa_enable:1; |
} sf6; |
struct { |
unsigned int point_size:11; |
unsigned int use_point_size_state:1; |
unsigned int subpixel_precision:1; |
unsigned int sprite_point:1; |
unsigned int pad0:11; |
unsigned int trifan_pv:2; |
unsigned int linestrip_pv:2; |
unsigned int tristrip_pv:2; |
unsigned int line_last_pixel_enable:1; |
} sf7; |
}; |
struct i965_sampler_state |
{ |
struct { |
unsigned int shadow_function:3; |
unsigned int lod_bias:11; |
unsigned int min_filter:3; |
unsigned int mag_filter:3; |
unsigned int mip_filter:2; |
unsigned int base_level:5; |
unsigned int pad:1; |
unsigned int lod_preclamp:1; |
unsigned int border_color_mode:1; |
unsigned int pad0:1; |
unsigned int disable:1; |
} ss0; |
struct { |
unsigned int r_wrap_mode:3; |
unsigned int t_wrap_mode:3; |
unsigned int s_wrap_mode:3; |
unsigned int pad:3; |
unsigned int max_lod:10; |
unsigned int min_lod:10; |
} ss1; |
struct { |
unsigned int pad:5; |
unsigned int border_color_pointer:27; |
} ss2; |
struct { |
unsigned int pad:19; |
unsigned int max_aniso:3; |
unsigned int chroma_key_mode:1; |
unsigned int chroma_key_index:2; |
unsigned int chroma_key_enable:1; |
unsigned int monochrome_filter_width:3; |
unsigned int monochrome_filter_height:3; |
} ss3; |
}; |
struct i965_wm_unit_state |
{ |
struct thread0 thread0; |
struct thread1 thread1; |
struct thread2 thread2; |
struct thread3 thread3; |
struct { |
unsigned int stats_enable:1; |
unsigned int pad0:1; |
unsigned int sampler_count:3; |
unsigned int sampler_state_pointer:27; |
} wm4; |
struct { |
unsigned int enable_8_pix:1; |
unsigned int enable_16_pix:1; |
unsigned int enable_32_pix:1; |
unsigned int pad0:7; |
unsigned int legacy_global_depth_bias:1; |
unsigned int line_stipple:1; |
unsigned int depth_offset:1; |
unsigned int polygon_stipple:1; |
unsigned int line_aa_region_width:2; |
unsigned int line_endcap_aa_region_width:2; |
unsigned int early_depth_test:1; |
unsigned int thread_dispatch_enable:1; |
unsigned int program_uses_depth:1; |
unsigned int program_computes_depth:1; |
unsigned int program_uses_killpixel:1; |
unsigned int legacy_line_rast: 1; |
unsigned int transposed_urb_read:1; |
unsigned int max_threads:7; |
} wm5; |
float global_depth_offset_constant; |
float global_depth_offset_scale; |
}; |
struct i965_cc_viewport |
{ |
float min_depth; |
float max_depth; |
}; |
struct i965_cc_unit_state |
{ |
struct { |
unsigned int pad0:3; |
unsigned int bf_stencil_pass_depth_pass_op:3; |
unsigned int bf_stencil_pass_depth_fail_op:3; |
unsigned int bf_stencil_fail_op:3; |
unsigned int bf_stencil_func:3; |
unsigned int bf_stencil_enable:1; |
unsigned int pad1:2; |
unsigned int stencil_write_enable:1; |
unsigned int stencil_pass_depth_pass_op:3; |
unsigned int stencil_pass_depth_fail_op:3; |
unsigned int stencil_fail_op:3; |
unsigned int stencil_func:3; |
unsigned int stencil_enable:1; |
} cc0; |
struct { |
unsigned int bf_stencil_ref:8; |
unsigned int stencil_write_mask:8; |
unsigned int stencil_test_mask:8; |
unsigned int stencil_ref:8; |
} cc1; |
struct { |
unsigned int logicop_enable:1; |
unsigned int pad0:10; |
unsigned int depth_write_enable:1; |
unsigned int depth_test_function:3; |
unsigned int depth_test:1; |
unsigned int bf_stencil_write_mask:8; |
unsigned int bf_stencil_test_mask:8; |
} cc2; |
struct { |
unsigned int pad0:8; |
unsigned int alpha_test_func:3; |
unsigned int alpha_test:1; |
unsigned int blend_enable:1; |
unsigned int ia_blend_enable:1; |
unsigned int pad1:1; |
unsigned int alpha_test_format:1; |
unsigned int pad2:16; |
} cc3; |
struct { |
unsigned int pad0:5; |
unsigned int cc_viewport_state_offset:27; |
} cc4; |
struct { |
unsigned int pad0:2; |
unsigned int ia_dest_blend_factor:5; |
unsigned int ia_src_blend_factor:5; |
unsigned int ia_blend_function:3; |
unsigned int statistics_enable:1; |
unsigned int logicop_func:4; |
unsigned int pad1:11; |
unsigned int dither_enable:1; |
} cc5; |
struct { |
unsigned int clamp_post_alpha_blend:1; |
unsigned int clamp_pre_alpha_blend:1; |
unsigned int clamp_range:2; |
unsigned int pad0:11; |
unsigned int y_dither_offset:2; |
unsigned int x_dither_offset:2; |
unsigned int dest_blend_factor:5; |
unsigned int src_blend_factor:5; |
unsigned int blend_function:3; |
} cc6; |
struct { |
union { |
float f; |
unsigned char ub[4]; |
} alpha_ref; |
} cc7; |
}; |
struct i965_sampler_8x8 |
{ |
struct { |
unsigned int pad0:16; |
unsigned int chroma_key_index:2; |
unsigned int chroma_key_enable:1; |
unsigned int pad1:8; |
unsigned int ief_filter_size:1; |
unsigned int ief_filter_type:1; |
unsigned int ief_bypass:1; |
unsigned int pad2:1; |
unsigned int avs_filter_type:1; |
} dw0; |
struct { |
unsigned int pad0:5; |
unsigned int sampler_8x8_state_pointer:27; |
} dw1; |
struct { |
unsigned int weak_edge_threshold:4; |
unsigned int strong_edge_threshold:4; |
unsigned int global_noise_estimation:8; |
unsigned int pad0:16; |
} dw2; |
struct { |
unsigned int r3x_coefficient:5; |
unsigned int pad0:1; |
unsigned int r3c_coefficient:5; |
unsigned int pad1:3; |
unsigned int gain_factor:6; |
unsigned int non_edge_weight:3; |
unsigned int pad2:1; |
unsigned int regular_weight:3; |
unsigned int pad3:1; |
unsigned int strong_edge_weight:3; |
unsigned int pad4:1; |
} dw3; |
struct { |
unsigned int pad0:2; |
unsigned int mr_boost:1; |
unsigned int mr_threshold:4; |
unsigned int steepness_boost:1; |
unsigned int steepness_threshold:4; |
unsigned int pad1:2; |
unsigned int r5x_coefficient:5; |
unsigned int pad2:1; |
unsigned int r5cx_coefficient:5; |
unsigned int pad3:1; |
unsigned int r5c_coefficient:5; |
unsigned int pad4:1; |
} dw4; |
struct { |
unsigned int pwl1_point_1:8; |
unsigned int pwl1_point_2:8; |
unsigned int pwl1_point_3:8; |
unsigned int pwl1_point_4:8; |
} dw5; |
struct { |
unsigned int pwl1_point_5:8; |
unsigned int pwl1_point_6:8; |
unsigned int pwl1_r3_bias_0:8; |
unsigned int pwl1_r3_bias_1:8; |
} dw6; |
struct { |
unsigned int pwl1_r3_bias_2:8; |
unsigned int pwl1_r3_bias_3:8; |
unsigned int pwl1_r3_bias_4:8; |
unsigned int pwl1_r3_bias_5:8; |
} dw7; |
struct { |
unsigned int pwl1_r3_bias_6:8; |
unsigned int pwl1_r5_bias_0:8; |
unsigned int pwl1_r5_bias_1:8; |
unsigned int pwl1_r5_bias_2:8; |
} dw8; |
struct { |
unsigned int pwl1_r5_bias_3:8; |
unsigned int pwl1_r5_bias_4:8; |
unsigned int pwl1_r5_bias_5:8; |
unsigned int pwl1_r5_bias_6:8; |
} dw9; |
struct { |
int pwl1_r3_slope_0:8; |
int pwl1_r3_slope_1:8; |
int pwl1_r3_slope_2:8; |
int pwl1_r3_slope_3:8; |
} dw10; |
struct { |
int pwl1_r3_slope_4:8; |
int pwl1_r3_slope_5:8; |
int pwl1_r3_slope_6:8; |
int pwl1_r5_slope_0:8; |
} dw11; |
struct { |
int pwl1_r5_slope_1:8; |
int pwl1_r5_slope_2:8; |
int pwl1_r5_slope_3:8; |
int pwl1_r5_slope_4:8; |
} dw12; |
struct { |
int pwl1_r5_slope_5:8; |
int pwl1_r5_slope_6:8; |
unsigned int limiter_boost:4; |
unsigned int pad0:4; |
unsigned int minimum_limiter:4; |
unsigned int maximum_limiter:4; |
} dw13; |
struct { |
unsigned int pad0:8; |
unsigned int clip_limiter:10; |
unsigned int pad1:14; |
} dw14; |
unsigned int dw15; /* Just a pad */ |
}; |
struct i965_sampler_8x8_coefficient |
{ |
struct { |
int table_0x_filter_c0:8; |
int table_0x_filter_c1:8; |
int table_0x_filter_c2:8; |
int table_0x_filter_c3:8; |
} dw0; |
struct { |
int table_0x_filter_c4:8; |
int table_0x_filter_c5:8; |
int table_0x_filter_c6:8; |
int table_0x_filter_c7:8; |
} dw1; |
struct { |
int table_0y_filter_c0:8; |
int table_0y_filter_c1:8; |
int table_0y_filter_c2:8; |
int table_0y_filter_c3:8; |
} dw2; |
struct { |
int table_0y_filter_c4:8; |
int table_0y_filter_c5:8; |
int table_0y_filter_c6:8; |
int table_0y_filter_c7:8; |
} dw3; |
struct { |
int table_1x_filter_c0:8; |
int table_1x_filter_c1:8; |
int table_1x_filter_c2:8; |
int table_1x_filter_c3:8; |
} dw4; |
struct { |
int table_1x_filter_c4:8; |
int table_1x_filter_c5:8; |
int table_1x_filter_c6:8; |
int table_1x_filter_c7:8; |
} dw5; |
struct { |
int table_1y_filter_c0:8; |
int table_1y_filter_c1:8; |
int table_1y_filter_c2:8; |
int table_1y_filter_c3:8; |
} dw6; |
struct { |
int table_1y_filter_c4:8; |
int table_1y_filter_c5:8; |
int table_1y_filter_c6:8; |
int table_1y_filter_c7:8; |
} dw7; |
}; |
struct i965_sampler_8x8_state |
{ |
struct i965_sampler_8x8_coefficient coefficients[17]; |
struct { |
unsigned int transition_area_with_8_pixels:3; |
unsigned int pad0:1; |
unsigned int transition_area_with_4_pixels:3; |
unsigned int pad1:1; |
unsigned int max_derivative_8_pixels:8; |
unsigned int max_derivative_4_pixels:8; |
unsigned int default_sharpness_level:8; |
} dw136; |
struct { |
unsigned int bit_field_name:1; |
unsigned int adaptive_filter_for_all_channel:1; |
unsigned int pad0:19; |
unsigned int bypass_y_adaptive_filtering:1; |
unsigned int bypass_x_adaptive_filtering:1; |
unsigned int pad1:9; |
} dw137; |
}; |
struct i965_surface_state2 |
{ |
struct { |
unsigned int surface_base_address; |
} ss0; |
struct { |
unsigned int cbcr_pixel_offset_v_direction:2; |
unsigned int pad0:4; |
unsigned int width:13; |
unsigned int height:13; |
} ss1; |
struct { |
unsigned int tile_walk:1; |
unsigned int tiled_surface:1; |
unsigned int half_pitch_for_chroma:1; |
unsigned int pitch:17; |
unsigned int pad0:2; |
unsigned int surface_object_control_data:4; |
unsigned int pad1:1; |
unsigned int interleave_chroma:1; |
unsigned int surface_format:4; |
} ss2; |
struct { |
unsigned int y_offset_for_cb:13; |
unsigned int pad0:3; |
unsigned int x_offset_for_cb:13; |
unsigned int pad1:3; |
} ss3; |
struct { |
unsigned int y_offset_for_cr:13; |
unsigned int pad0:3; |
unsigned int x_offset_for_cr:13; |
unsigned int pad1:3; |
} ss4; |
}; |
struct i965_sampler_dndi |
{ |
struct { |
unsigned int denoise_asd_threshold:8; |
unsigned int denoise_history_delta:8; |
unsigned int denoise_maximum_history:8; |
unsigned int denoise_stad_threshold:8; |
} dw0; |
struct { |
unsigned int denoise_threshold_for_sum_of_complexity_measure:8; |
unsigned int denoise_moving_pixel_threshold:5; |
unsigned int stmm_c2:3; |
unsigned int low_temporal_difference_threshold:6; |
unsigned int pad0:2; |
unsigned int temporal_difference_threshold:6; |
unsigned int pad1:2; |
} dw1; |
struct { |
unsigned int block_noise_estimate_noise_threshold:8; |
unsigned int block_noise_estimate_edge_threshold:8; |
unsigned int denoise_edge_threshold:8; |
unsigned int good_neighbor_threshold:8; |
} dw2; |
struct { |
unsigned int maximum_stmm:8; |
unsigned int multipler_for_vecm:6; |
unsigned int pad0:2; |
unsigned int blending_constant_across_time_for_small_values_of_stmm:8; |
unsigned int blending_constant_across_time_for_large_values_of_stmm:7; |
unsigned int stmm_blending_constant_select:1; |
} dw3; |
struct { |
unsigned int sdi_delta:8; |
unsigned int sdi_threshold:8; |
unsigned int stmm_output_shift:4; |
unsigned int stmm_shift_up:2; |
unsigned int stmm_shift_down:2; |
unsigned int minimum_stmm:8; |
} dw4; |
struct { |
unsigned int fmd_temporal_difference_threshold:8; |
unsigned int sdi_fallback_mode_2_constant:8; |
unsigned int sdi_fallback_mode_1_t2_constant:8; |
unsigned int sdi_fallback_mode_1_t1_constant:8; |
} dw5; |
struct { |
unsigned int dn_enable:1; |
unsigned int di_enable:1; |
unsigned int di_partial:1; |
unsigned int dndi_top_first:1; |
unsigned int dndi_stream_id:1; |
unsigned int dndi_first_frame:1; |
unsigned int progressive_dn:1; |
unsigned int pad0:1; |
unsigned int fmd_tear_threshold:6; |
unsigned int pad1:2; |
unsigned int fmd2_vertical_difference_threshold:8; |
unsigned int fmd1_vertical_difference_threshold:8; |
} dw6; |
struct { |
unsigned int pad0:8; |
unsigned int fmd_for_1st_field_of_current_frame:2; |
unsigned int pad1:6; |
unsigned int fmd_for_2nd_field_of_previous_frame:2; |
unsigned int vdi_walker_enable:1; |
unsigned int pad2:4; |
unsigned int column_width_minus1:9; |
} dw7; |
}; |
struct gen6_blend_state |
{ |
struct { |
unsigned int dest_blend_factor:5; |
unsigned int source_blend_factor:5; |
unsigned int pad3:1; |
unsigned int blend_func:3; |
unsigned int pad2:1; |
unsigned int ia_dest_blend_factor:5; |
unsigned int ia_source_blend_factor:5; |
unsigned int pad1:1; |
unsigned int ia_blend_func:3; |
unsigned int pad0:1; |
unsigned int ia_blend_enable:1; |
unsigned int blend_enable:1; |
} blend0; |
struct { |
unsigned int post_blend_clamp_enable:1; |
unsigned int pre_blend_clamp_enable:1; |
unsigned int clamp_range:2; |
unsigned int pad0:4; |
unsigned int x_dither_offset:2; |
unsigned int y_dither_offset:2; |
unsigned int dither_enable:1; |
unsigned int alpha_test_func:3; |
unsigned int alpha_test_enable:1; |
unsigned int pad1:1; |
unsigned int logic_op_func:4; |
unsigned int logic_op_enable:1; |
unsigned int pad2:1; |
unsigned int write_disable_b:1; |
unsigned int write_disable_g:1; |
unsigned int write_disable_r:1; |
unsigned int write_disable_a:1; |
unsigned int pad3:1; |
unsigned int alpha_to_coverage_dither:1; |
unsigned int alpha_to_one:1; |
unsigned int alpha_to_coverage:1; |
} blend1; |
}; |
struct gen6_color_calc_state |
{ |
struct { |
unsigned int alpha_test_format:1; |
unsigned int pad0:14; |
unsigned int round_disable:1; |
unsigned int bf_stencil_ref:8; |
unsigned int stencil_ref:8; |
} cc0; |
union { |
float alpha_ref_f; |
struct { |
unsigned int ui:8; |
unsigned int pad0:24; |
} alpha_ref_fi; |
} cc1; |
float constant_r; |
float constant_g; |
float constant_b; |
float constant_a; |
}; |
struct gen6_depth_stencil_state |
{ |
struct { |
unsigned int pad0:3; |
unsigned int bf_stencil_pass_depth_pass_op:3; |
unsigned int bf_stencil_pass_depth_fail_op:3; |
unsigned int bf_stencil_fail_op:3; |
unsigned int bf_stencil_func:3; |
unsigned int bf_stencil_enable:1; |
unsigned int pad1:2; |
unsigned int stencil_write_enable:1; |
unsigned int stencil_pass_depth_pass_op:3; |
unsigned int stencil_pass_depth_fail_op:3; |
unsigned int stencil_fail_op:3; |
unsigned int stencil_func:3; |
unsigned int stencil_enable:1; |
} ds0; |
struct { |
unsigned int bf_stencil_write_mask:8; |
unsigned int bf_stencil_test_mask:8; |
unsigned int stencil_write_mask:8; |
unsigned int stencil_test_mask:8; |
} ds1; |
struct { |
unsigned int pad0:26; |
unsigned int depth_write_enable:1; |
unsigned int depth_test_func:3; |
unsigned int pad1:1; |
unsigned int depth_test_enable:1; |
} ds2; |
}; |
struct gen6_interface_descriptor_data |
{ |
struct { |
unsigned int pad0:6; |
unsigned int kernel_start_pointer:26; |
} desc0; |
struct { |
unsigned int pad0:7; |
unsigned int software_exception_enable:1; |
unsigned int pad1:3; |
unsigned int maskstack_exception_enable:1; |
unsigned int pad2:1; |
unsigned int illegal_opcode_exception_enable:1; |
unsigned int pad3:2; |
unsigned int floating_point_mode:1; |
unsigned int thread_priority:1; |
unsigned int single_program_flow:1; |
unsigned int pad4:13; |
} desc1; |
struct { |
unsigned int pad0:2; |
unsigned int sampler_count:3; |
unsigned int sampler_state_pointer:27; |
} desc2; |
struct { |
unsigned int binding_table_entry_count:5; |
unsigned int binding_table_pointer:27; |
} desc3; |
struct { |
unsigned int constant_urb_entry_read_offset:16; |
unsigned int constant_urb_entry_read_length:16; |
} desc4; |
union { |
struct { |
unsigned int num_threads:8; |
unsigned int barrier_return_byte:8; |
unsigned int shared_local_memory_size:5; |
unsigned int barrier_enable:1; |
unsigned int rounding_mode:2; |
unsigned int barrier_return_grf_offset:8; |
} gen7; |
struct { |
unsigned int barrier_id:4; |
unsigned int pad0:28; |
} gen6; |
} desc5; |
struct { |
unsigned int cross_thread_constant_data_read_length:8; |
unsigned int pad0:24; |
} desc6; |
struct { |
unsigned int pad0; |
} desc7; |
}; |
struct gen7_surface_state |
{ |
struct { |
unsigned int cube_pos_z:1; |
unsigned int cube_neg_z:1; |
unsigned int cube_pos_y:1; |
unsigned int cube_neg_y:1; |
unsigned int cube_pos_x:1; |
unsigned int cube_neg_x:1; |
unsigned int pad2:2; |
unsigned int render_cache_read_write:1; |
unsigned int pad1:1; |
unsigned int surface_array_spacing:1; |
unsigned int vert_line_stride_ofs:1; |
unsigned int vert_line_stride:1; |
unsigned int tile_walk:1; |
unsigned int tiled_surface:1; |
unsigned int horizontal_alignment:1; |
unsigned int vertical_alignment:2; |
unsigned int surface_format:9; /**< BRW_SURFACEFORMAT_x */ |
unsigned int pad0:1; |
unsigned int is_array:1; |
unsigned int surface_type:3; /**< BRW_SURFACE_1D/2D/3D/CUBE */ |
} ss0; |
struct { |
unsigned int base_addr; |
} ss1; |
struct { |
unsigned int width:14; |
unsigned int pad1:2; |
unsigned int height:14; |
unsigned int pad0:2; |
} ss2; |
struct { |
unsigned int pitch:18; |
unsigned int pad:3; |
unsigned int depth:11; |
} ss3; |
struct { |
unsigned int multisample_position_palette_index:3; |
unsigned int num_multisamples:3; |
unsigned int multisampled_surface_storage_format:1; |
unsigned int render_target_view_extent:11; |
unsigned int min_array_elt:11; |
unsigned int rotation:2; |
unsigned int pad0:1; |
} ss4; |
struct { |
unsigned int mip_count:4; |
unsigned int min_lod:4; |
unsigned int pad1:12; |
unsigned int y_offset:4; |
unsigned int pad0:1; |
unsigned int x_offset:7; |
} ss5; |
struct { |
unsigned int pad; /* Multisample Control Surface stuff */ |
} ss6; |
struct { |
unsigned int resource_min_lod:12; |
unsigned int pad0:4; |
unsigned int shader_chanel_select_a:3; |
unsigned int shader_chanel_select_b:3; |
unsigned int shader_chanel_select_g:3; |
unsigned int shader_chanel_select_r:3; |
unsigned int alpha_clear_color:1; |
unsigned int blue_clear_color:1; |
unsigned int green_clear_color:1; |
unsigned int red_clear_color:1; |
} ss7; |
}; |
struct gen7_sampler_state |
{ |
struct |
{ |
unsigned int aniso_algorithm:1; |
unsigned int lod_bias:13; |
unsigned int min_filter:3; |
unsigned int mag_filter:3; |
unsigned int mip_filter:2; |
unsigned int base_level:5; |
unsigned int pad1:1; |
unsigned int lod_preclamp:1; |
unsigned int default_color_mode:1; |
unsigned int pad0:1; |
unsigned int disable:1; |
} ss0; |
struct |
{ |
unsigned int cube_control_mode:1; |
unsigned int shadow_function:3; |
unsigned int pad:4; |
unsigned int max_lod:12; |
unsigned int min_lod:12; |
} ss1; |
struct |
{ |
unsigned int pad:5; |
unsigned int default_color_pointer:27; |
} ss2; |
struct |
{ |
unsigned int r_wrap_mode:3; |
unsigned int t_wrap_mode:3; |
unsigned int s_wrap_mode:3; |
unsigned int pad:1; |
unsigned int non_normalized_coord:1; |
unsigned int trilinear_quality:2; |
unsigned int address_round:6; |
unsigned int max_aniso:3; |
unsigned int chroma_key_mode:1; |
unsigned int chroma_key_index:2; |
unsigned int chroma_key_enable:1; |
unsigned int pad0:6; |
} ss3; |
}; |
struct gen7_surface_state2 |
{ |
struct { |
unsigned int surface_base_address; |
} ss0; |
struct { |
unsigned int cbcr_pixel_offset_v_direction:2; |
unsigned int picture_structure:2; |
unsigned int width:14; |
unsigned int height:14; |
} ss1; |
struct { |
unsigned int tile_walk:1; |
unsigned int tiled_surface:1; |
unsigned int half_pitch_for_chroma:1; |
unsigned int pitch:18; |
unsigned int pad0:1; |
unsigned int surface_object_control_data:4; |
unsigned int pad1:1; |
unsigned int interleave_chroma:1; |
unsigned int surface_format:4; |
} ss2; |
struct { |
unsigned int y_offset_for_cb:15; |
unsigned int pad0:1; |
unsigned int x_offset_for_cb:14; |
unsigned int pad1:2; |
} ss3; |
struct { |
unsigned int y_offset_for_cr:15; |
unsigned int pad0:1; |
unsigned int x_offset_for_cr:14; |
unsigned int pad1:2; |
} ss4; |
struct { |
unsigned int pad0; |
} ss5; |
struct { |
unsigned int pad0; |
} ss6; |
struct { |
unsigned int pad0; |
} ss7; |
}; |
struct gen7_sampler_8x8 |
{ |
struct { |
unsigned int global_noise_estimation:8; |
unsigned int pad0:8; |
unsigned int chroma_key_index:2; |
unsigned int chroma_key_enable:1; |
unsigned int pad1:10; |
unsigned int ief_bypass:1; |
unsigned int pad2:1; |
unsigned int disable_8x8_filter:1; |
} dw0; |
struct { |
unsigned int pad0:5; |
unsigned int sampler_8x8_state_pointer:27; |
} dw1; |
struct { |
unsigned int weak_edge_threshold:6; |
unsigned int pad0:2; |
unsigned int strong_edge_threshold:6; |
unsigned int pad1:2; |
unsigned int r5x_coefficient:5; |
unsigned int r5cx_coefficient:5; |
unsigned int r5c_coefficient:5; |
unsigned int pad2:1; |
} dw2; |
struct { |
unsigned int r3x_coefficient:5; |
unsigned int pad0:1; |
unsigned int r3c_coefficient:5; |
unsigned int pad1:3; |
unsigned int gain_factor:6; |
unsigned int non_edge_weight:3; |
unsigned int pad2:1; |
unsigned int regular_weight:3; |
unsigned int pad3:1; |
unsigned int strong_edge_weight:3; |
unsigned int ief4_smooth_enable:1; |
} dw3; |
}; |
struct gen7_sampler_dndi |
{ |
struct { |
unsigned int denoise_asd_threshold:8; |
unsigned int dnmh_delt:4; |
unsigned int vdi_walker_y_stride:2; |
unsigned int vdi_walker_frame_sharing_enable:1; |
unsigned int pad0:1; |
unsigned int denoise_maximum_history:8; |
unsigned int denoise_stad_threshold:8; |
} dw0; |
struct { |
unsigned int denoise_threshold_for_sum_of_complexity_measure:8; |
unsigned int denoise_moving_pixel_threshold:5; |
unsigned int stmm_c2:3; |
unsigned int low_temporal_difference_threshold:6; |
unsigned int pad0:2; |
unsigned int temporal_difference_threshold:6; |
unsigned int pad1:2; |
} dw1; |
struct { |
unsigned int block_noise_estimate_noise_threshold:8; |
unsigned int bne_edge_th:4; |
unsigned int pad0:2; |
unsigned int smooth_mv_th:2; |
unsigned int sad_tight_th:4; |
unsigned int cat_slope_minus1:4; |
unsigned int good_neighbor_th:6; |
unsigned int pad1:2; |
} dw2; |
struct { |
unsigned int maximum_stmm:8; |
unsigned int multipler_for_vecm:6; |
unsigned int pad0:2; |
unsigned int blending_constant_across_time_for_small_values_of_stmm:8; |
unsigned int blending_constant_across_time_for_large_values_of_stmm:7; |
unsigned int stmm_blending_constant_select:1; |
} dw3; |
struct { |
unsigned int sdi_delta:8; |
unsigned int sdi_threshold:8; |
unsigned int stmm_output_shift:4; |
unsigned int stmm_shift_up:2; |
unsigned int stmm_shift_down:2; |
unsigned int minimum_stmm:8; |
} dw4; |
struct { |
unsigned int fmd_temporal_difference_threshold:8; |
unsigned int sdi_fallback_mode_2_constant:8; |
unsigned int sdi_fallback_mode_1_t2_constant:8; |
unsigned int sdi_fallback_mode_1_t1_constant:8; |
} dw5; |
struct { |
unsigned int dn_enable:1; |
unsigned int di_enable:1; |
unsigned int di_partial:1; |
unsigned int dndi_top_first:1; |
unsigned int dndi_stream_id:1; |
unsigned int dndi_first_frame:1; |
unsigned int progressive_dn:1; |
unsigned int mcdi_enable:1; |
unsigned int fmd_tear_threshold:6; |
unsigned int cat_th1:2; |
unsigned int fmd2_vertical_difference_threshold:8; |
unsigned int fmd1_vertical_difference_threshold:8; |
} dw6; |
struct { |
unsigned int sad_tha:4; |
unsigned int sad_thb:4; |
unsigned int fmd_for_1st_field_of_current_frame:2; |
unsigned int mc_pixel_consistency_th:6; |
unsigned int fmd_for_2nd_field_of_previous_frame:2; |
unsigned int vdi_walker_enable:1; |
unsigned int neighborpixel_th:4; |
unsigned int column_width_minus1:9; |
} dw7; |
}; |
#endif /* _I965_STRUCTS_H_ */ |
/drivers/video/i965/intel_batchbuffer.c |
---|
0,0 → 1,339 |
/************************************************************************** |
* |
* Copyright 2006 Tungsten Graphics, Inc., Cedar Park, Texas. |
* All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
**************************************************************************/ |
#include <stdlib.h> |
#include <string.h> |
#include <assert.h> |
#include "intel_batchbuffer.h" |
#define MAX_BATCH_SIZE 0x400000 |
static void |
intel_batchbuffer_reset(struct intel_batchbuffer *batch, int buffer_size) |
{ |
struct intel_driver_data *intel = batch->intel; |
int batch_size = buffer_size; |
printf("%s\n", __FUNCTION__); |
assert(batch->flag == I915_EXEC_RENDER || |
batch->flag == I915_EXEC_BLT || |
batch->flag == I915_EXEC_BSD || |
batch->flag == I915_EXEC_VEBOX); |
dri_bo_unreference(batch->buffer); |
batch->buffer = dri_bo_alloc(intel->bufmgr, |
"batch buffer", |
batch_size, |
0x1000); |
assert(batch->buffer); |
dri_bo_map(batch->buffer, 1); |
assert(batch->buffer->virtual); |
batch->map = batch->buffer->virtual; |
batch->size = batch_size; |
batch->ptr = batch->map; |
batch->atomic = 0; |
} |
static unsigned int |
intel_batchbuffer_space(struct intel_batchbuffer *batch) |
{ |
return (batch->size - BATCH_RESERVED) - (batch->ptr - batch->map); |
} |
struct intel_batchbuffer * |
intel_batchbuffer_new(struct intel_driver_data *intel, int flag, int buffer_size) |
{ |
struct intel_batchbuffer *batch = calloc(1, sizeof(*batch)); |
assert(flag == I915_EXEC_RENDER || |
flag == I915_EXEC_BSD || |
flag == I915_EXEC_BLT || |
flag == I915_EXEC_VEBOX); |
printf("%s\n", __FUNCTION__); |
if (!buffer_size || buffer_size < BATCH_SIZE) { |
buffer_size = BATCH_SIZE; |
} |
/* the buffer size can't exceed 4M */ |
if (buffer_size > MAX_BATCH_SIZE) { |
buffer_size = MAX_BATCH_SIZE; |
} |
batch->intel = intel; |
batch->flag = flag; |
batch->run = drm_intel_bo_mrb_exec; |
intel_batchbuffer_reset(batch, buffer_size); |
return batch; |
} |
void intel_batchbuffer_free(struct intel_batchbuffer *batch) |
{ |
if (batch->map) { |
dri_bo_unmap(batch->buffer); |
batch->map = NULL; |
} |
dri_bo_unreference(batch->buffer); |
free(batch); |
} |
void |
intel_batchbuffer_flush(struct intel_batchbuffer *batch) |
{ |
unsigned int used = batch->ptr - batch->map; |
if (used == 0) { |
return; |
} |
if ((used & 4) == 0) { |
*(unsigned int*)batch->ptr = 0; |
batch->ptr += 4; |
} |
*(unsigned int*)batch->ptr = MI_BATCH_BUFFER_END; |
batch->ptr += 4; |
dri_bo_unmap(batch->buffer); |
used = batch->ptr - batch->map; |
batch->run(batch->buffer, used, 0, 0, 0, batch->flag); |
intel_batchbuffer_reset(batch, batch->size); |
} |
void |
intel_batchbuffer_emit_dword(struct intel_batchbuffer *batch, unsigned int x) |
{ |
assert(intel_batchbuffer_space(batch) >= 4); |
*(unsigned int *)batch->ptr = x; |
batch->ptr += 4; |
} |
void |
intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch, dri_bo *bo, |
uint32_t read_domains, uint32_t write_domains, |
uint32_t delta) |
{ |
assert(batch->ptr - batch->map < batch->size); |
dri_bo_emit_reloc(batch->buffer, read_domains, write_domains, |
delta, batch->ptr - batch->map, bo); |
intel_batchbuffer_emit_dword(batch, bo->offset + delta); |
} |
void |
intel_batchbuffer_require_space(struct intel_batchbuffer *batch, |
unsigned int size) |
{ |
assert(size < batch->size - 8); |
if (intel_batchbuffer_space(batch) < size) { |
intel_batchbuffer_flush(batch); |
} |
} |
void |
intel_batchbuffer_data(struct intel_batchbuffer *batch, |
void *data, |
unsigned int size) |
{ |
assert((size & 3) == 0); |
intel_batchbuffer_require_space(batch, size); |
assert(batch->ptr); |
memcpy(batch->ptr, data, size); |
batch->ptr += size; |
} |
void |
intel_batchbuffer_emit_mi_flush(struct intel_batchbuffer *batch) |
{ |
struct intel_driver_data *intel = batch->intel; |
if (IS_GEN6(intel->device_id) || |
IS_GEN7(intel->device_id)) { |
if (batch->flag == I915_EXEC_RENDER) { |
BEGIN_BATCH(batch, 4); |
OUT_BATCH(batch, CMD_PIPE_CONTROL | 0x2); |
if (IS_GEN6(intel->device_id)) |
OUT_BATCH(batch, |
CMD_PIPE_CONTROL_WC_FLUSH | |
CMD_PIPE_CONTROL_TC_FLUSH | |
CMD_PIPE_CONTROL_NOWRITE); |
else |
OUT_BATCH(batch, |
CMD_PIPE_CONTROL_WC_FLUSH | |
CMD_PIPE_CONTROL_TC_FLUSH | |
CMD_PIPE_CONTROL_DC_FLUSH | |
CMD_PIPE_CONTROL_NOWRITE); |
OUT_BATCH(batch, 0); |
OUT_BATCH(batch, 0); |
ADVANCE_BATCH(batch); |
} else { |
if (batch->flag == I915_EXEC_BLT) { |
BEGIN_BLT_BATCH(batch, 4); |
OUT_BLT_BATCH(batch, MI_FLUSH_DW); |
OUT_BLT_BATCH(batch, 0); |
OUT_BLT_BATCH(batch, 0); |
OUT_BLT_BATCH(batch, 0); |
ADVANCE_BLT_BATCH(batch); |
}else if (batch->flag == I915_EXEC_VEBOX) { |
BEGIN_VEB_BATCH(batch, 4); |
OUT_VEB_BATCH(batch, MI_FLUSH_DW); |
OUT_VEB_BATCH(batch, 0); |
OUT_VEB_BATCH(batch, 0); |
OUT_VEB_BATCH(batch, 0); |
ADVANCE_VEB_BATCH(batch); |
} else { |
assert(batch->flag == I915_EXEC_BSD); |
BEGIN_BCS_BATCH(batch, 4); |
OUT_BCS_BATCH(batch, MI_FLUSH_DW | MI_FLUSH_DW_VIDEO_PIPELINE_CACHE_INVALIDATE); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
OUT_BCS_BATCH(batch, 0); |
ADVANCE_BCS_BATCH(batch); |
} |
} |
} else { |
if (batch->flag == I915_EXEC_RENDER) { |
BEGIN_BATCH(batch, 1); |
OUT_BATCH(batch, MI_FLUSH | MI_FLUSH_STATE_INSTRUCTION_CACHE_INVALIDATE); |
ADVANCE_BATCH(batch); |
} else { |
assert(batch->flag == I915_EXEC_BSD); |
BEGIN_BCS_BATCH(batch, 1); |
OUT_BCS_BATCH(batch, MI_FLUSH | MI_FLUSH_STATE_INSTRUCTION_CACHE_INVALIDATE); |
ADVANCE_BCS_BATCH(batch); |
} |
} |
} |
void |
intel_batchbuffer_begin_batch(struct intel_batchbuffer *batch, int total) |
{ |
batch->emit_total = total * 4; |
batch->emit_start = batch->ptr; |
} |
void |
intel_batchbuffer_advance_batch(struct intel_batchbuffer *batch) |
{ |
assert(batch->emit_total == (batch->ptr - batch->emit_start)); |
} |
void |
intel_batchbuffer_check_batchbuffer_flag(struct intel_batchbuffer *batch, int flag) |
{ |
if (flag != I915_EXEC_RENDER && |
flag != I915_EXEC_BLT && |
flag != I915_EXEC_BSD && |
flag != I915_EXEC_VEBOX) |
return; |
if (batch->flag == flag) |
return; |
intel_batchbuffer_flush(batch); |
batch->flag = flag; |
} |
int |
intel_batchbuffer_check_free_space(struct intel_batchbuffer *batch, int size) |
{ |
return intel_batchbuffer_space(batch) >= size; |
} |
static void |
intel_batchbuffer_start_atomic_helper(struct intel_batchbuffer *batch, |
int flag, |
unsigned int size) |
{ |
assert(!batch->atomic); |
intel_batchbuffer_check_batchbuffer_flag(batch, flag); |
intel_batchbuffer_require_space(batch, size); |
batch->atomic = 1; |
} |
void |
intel_batchbuffer_start_atomic(struct intel_batchbuffer *batch, unsigned int size) |
{ |
intel_batchbuffer_start_atomic_helper(batch, I915_EXEC_RENDER, size); |
} |
void |
intel_batchbuffer_start_atomic_blt(struct intel_batchbuffer *batch, unsigned int size) |
{ |
intel_batchbuffer_start_atomic_helper(batch, I915_EXEC_BLT, size); |
} |
void |
intel_batchbuffer_start_atomic_bcs(struct intel_batchbuffer *batch, unsigned int size) |
{ |
intel_batchbuffer_start_atomic_helper(batch, I915_EXEC_BSD, size); |
} |
void |
intel_batchbuffer_start_atomic_veb(struct intel_batchbuffer *batch, unsigned int size) |
{ |
intel_batchbuffer_start_atomic_helper(batch, I915_EXEC_VEBOX, size); |
} |
void |
intel_batchbuffer_end_atomic(struct intel_batchbuffer *batch) |
{ |
assert(batch->atomic); |
batch->atomic = 0; |
} |
int |
intel_batchbuffer_used_size(struct intel_batchbuffer *batch) |
{ |
return batch->ptr - batch->map; |
} |
void |
intel_batchbuffer_align(struct intel_batchbuffer *batch, unsigned int alignedment) |
{ |
int used = batch->ptr - batch->map; |
int pad_size; |
assert((alignedment & 3) == 0); |
pad_size = ALIGN(used, alignedment) - used; |
assert((pad_size & 3) == 0); |
assert(intel_batchbuffer_space(batch) >= pad_size); |
while (pad_size >= 4) { |
intel_batchbuffer_emit_dword(batch, 0); |
pad_size -= 4; |
} |
} |
/drivers/video/i965/intel_batchbuffer.h |
---|
0,0 → 1,95 |
#ifndef _INTEL_BATCHBUFFER_H_ |
#define _INTEL_BATCHBUFFER_H_ |
#include <xf86drm.h> |
#include <drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
#include "intel_driver.h" |
struct intel_batchbuffer |
{ |
struct intel_driver_data *intel; |
dri_bo *buffer; |
unsigned int size; |
unsigned char *map; |
unsigned char *ptr; |
int atomic; |
int flag; |
int emit_total; |
unsigned char *emit_start; |
int (*run)(drm_intel_bo *bo, int used, |
drm_clip_rect_t *cliprects, int num_cliprects, |
int DR4, unsigned int ring_flag); |
}; |
struct intel_batchbuffer *intel_batchbuffer_new(struct intel_driver_data *intel, int flag, int buffer_size); |
void intel_batchbuffer_free(struct intel_batchbuffer *batch); |
void intel_batchbuffer_start_atomic(struct intel_batchbuffer *batch, unsigned int size); |
void intel_batchbuffer_start_atomic_bcs(struct intel_batchbuffer *batch, unsigned int size); |
void intel_batchbuffer_start_atomic_blt(struct intel_batchbuffer *batch, unsigned int size); |
void intel_batchbuffer_start_atomic_veb(struct intel_batchbuffer *batch, unsigned int size); |
void intel_batchbuffer_end_atomic(struct intel_batchbuffer *batch); |
void intel_batchbuffer_emit_dword(struct intel_batchbuffer *batch, unsigned int x); |
void intel_batchbuffer_emit_reloc(struct intel_batchbuffer *batch, dri_bo *bo, |
uint32_t read_domains, uint32_t write_domains, |
uint32_t delta); |
void intel_batchbuffer_require_space(struct intel_batchbuffer *batch, unsigned int size); |
void intel_batchbuffer_data(struct intel_batchbuffer *batch, void *data, unsigned int size); |
void intel_batchbuffer_emit_mi_flush(struct intel_batchbuffer *batch); |
void intel_batchbuffer_flush(struct intel_batchbuffer *batch); |
void intel_batchbuffer_begin_batch(struct intel_batchbuffer *batch, int total); |
void intel_batchbuffer_advance_batch(struct intel_batchbuffer *batch); |
void intel_batchbuffer_check_batchbuffer_flag(struct intel_batchbuffer *batch, int flag); |
int intel_batchbuffer_check_free_space(struct intel_batchbuffer *batch, int size); |
int intel_batchbuffer_used_size(struct intel_batchbuffer *batch); |
void intel_batchbuffer_align(struct intel_batchbuffer *batch, unsigned int alignedment); |
#define __BEGIN_BATCH(batch, n, f) do { \ |
assert(f == batch->flag); \ |
intel_batchbuffer_check_batchbuffer_flag(batch, f); \ |
intel_batchbuffer_require_space(batch, (n) * 4); \ |
intel_batchbuffer_begin_batch(batch, (n)); \ |
} while (0) |
#define __OUT_BATCH(batch, d) do { \ |
intel_batchbuffer_emit_dword(batch, d); \ |
} while (0) |
#define __OUT_RELOC(batch, bo, read_domains, write_domain, delta) do { \ |
assert((delta) >= 0); \ |
intel_batchbuffer_emit_reloc(batch, bo, \ |
read_domains, write_domain, \ |
delta); \ |
} while (0) |
#define __ADVANCE_BATCH(batch) do { \ |
intel_batchbuffer_advance_batch(batch); \ |
} while (0) |
#define BEGIN_BATCH(batch, n) __BEGIN_BATCH(batch, n, I915_EXEC_RENDER) |
#define BEGIN_BLT_BATCH(batch, n) __BEGIN_BATCH(batch, n, I915_EXEC_BLT) |
#define BEGIN_BCS_BATCH(batch, n) __BEGIN_BATCH(batch, n, I915_EXEC_BSD) |
#define BEGIN_VEB_BATCH(batch, n) __BEGIN_BATCH(batch, n, I915_EXEC_VEBOX) |
#define OUT_BATCH(batch, d) __OUT_BATCH(batch, d) |
#define OUT_BLT_BATCH(batch, d) __OUT_BATCH(batch, d) |
#define OUT_BCS_BATCH(batch, d) __OUT_BATCH(batch, d) |
#define OUT_VEB_BATCH(batch, d) __OUT_BATCH(batch, d) |
#define OUT_RELOC(batch, bo, read_domains, write_domain, delta) \ |
__OUT_RELOC(batch, bo, read_domains, write_domain, delta) |
#define OUT_BLT_RELOC(batch, bo, read_domains, write_domain, delta) \ |
__OUT_RELOC(batch, bo, read_domains, write_domain, delta) |
#define OUT_BCS_RELOC(batch, bo, read_domains, write_domain, delta) \ |
__OUT_RELOC(batch, bo, read_domains, write_domain, delta) |
#define ADVANCE_BATCH(batch) __ADVANCE_BATCH(batch) |
#define ADVANCE_BLT_BATCH(batch) __ADVANCE_BATCH(batch) |
#define ADVANCE_BCS_BATCH(batch) __ADVANCE_BATCH(batch) |
#define ADVANCE_VEB_BATCH(batch) __ADVANCE_BATCH(batch) |
#endif /* _INTEL_BATCHBUFFER_H_ */ |
/drivers/video/i965/intel_compiler.h |
---|
0,0 → 1,26 |
#ifndef _INTEL_COMPILER_H_ |
#define _INTEL_COMPILER_H_ |
/** |
* Function inlining |
*/ |
#if defined(__GNUC__) |
# define INLINE __inline__ |
#elif (__STDC_VERSION__ >= 199901L) /* C99 */ |
# define INLINE inline |
#else |
# define INLINE |
#endif |
/** |
* Function visibility |
*/ |
#if defined(__GNUC__) |
# define DLL_HIDDEN __attribute__((visibility("hidden"))) |
# define DLL_EXPORT __attribute__((visibility("default"))) |
#else |
# define DLL_HIDDEN |
# define DLL_EXPORT |
#endif |
#endif /* _INTEL_COMPILER_H_ */ |
/drivers/video/i965/intel_driver.c |
---|
0,0 → 1,99 |
/* |
* Copyright © 2009 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* Zou Nan hai <nanhai.zou@intel.com> |
* |
*/ |
#include "sysdeps.h" |
#include "intel_batchbuffer.h" |
#include "intel_memman.h" |
#include "intel_driver.h" |
static Bool |
intel_driver_get_param(struct intel_driver_data *intel, int param, int *value) |
{ |
struct drm_i915_getparam gp; |
gp.param = param; |
gp.value = value; |
return (drmIoctl(intel->fd, DRM_IOCTL_I915_GETPARAM, &gp) == 0); |
} |
static void intel_driver_get_revid(struct intel_driver_data *intel, int *value) |
{ |
*value = 2; /* assume it is at least B-steping */ |
return; |
} |
Bool |
intel_driver_init(VADriverContextP ctx) |
{ |
struct intel_driver_data *intel = intel_driver_data(ctx); |
struct drm_state * const drm_state = (struct drm_state *)ctx->drm_state; |
int has_exec2, has_bsd, has_blt; |
assert(drm_state); |
assert(VA_CHECK_DRM_AUTH_TYPE(ctx, VA_DRM_AUTH_DRI1) || |
VA_CHECK_DRM_AUTH_TYPE(ctx, VA_DRM_AUTH_DRI2) || |
VA_CHECK_DRM_AUTH_TYPE(ctx, VA_DRM_AUTH_CUSTOM)); |
printf("%s context %p\n", __FUNCTION__, ctx); |
intel->fd = drm_state->fd; |
intel->dri2Enabled = 1; |
intel->locked = 0; |
// pthread_mutex_init(&intel->ctxmutex, NULL); |
intel_driver_get_param(intel, I915_PARAM_CHIPSET_ID, &intel->device_id); |
if (intel_driver_get_param(intel, I915_PARAM_HAS_EXECBUF2, &has_exec2)) |
intel->has_exec2 = has_exec2; |
if (intel_driver_get_param(intel, I915_PARAM_HAS_BSD, &has_bsd)) |
intel->has_bsd = has_bsd; |
if (intel_driver_get_param(intel, I915_PARAM_HAS_BLT, &has_blt)) |
intel->has_blt = has_blt; |
printf("device_id=%x has_exec2=%d has_bsd=%d has_blt=%d\n", |
intel->device_id, intel->has_exec2, intel->has_bsd, intel->has_blt); |
intel_driver_get_revid(intel, &intel->revision); |
intel_memman_init(intel); |
return True; |
} |
Bool |
intel_driver_terminate(VADriverContextP ctx) |
{ |
struct intel_driver_data *intel = intel_driver_data(ctx); |
intel_memman_terminate(intel); |
// pthread_mutex_destroy(&intel->ctxmutex); |
return True; |
} |
/drivers/video/i965/intel_driver.h |
---|
0,0 → 1,300 |
#ifndef _INTEL_DRIVER_H_ |
#define _INTEL_DRIVER_H_ |
#include <stddef.h> |
#include <pthread.h> |
#include <signal.h> |
#include <drm.h> |
#include <i915_drm.h> |
#include <intel_bufmgr.h> |
#include <va/va_backend.h> |
#include "va_backend_compat.h" |
#include "intel_compiler.h" |
#define BATCH_SIZE 0x80000 |
#define BATCH_RESERVED 0x10 |
#define CMD_MI (0x0 << 29) |
#define CMD_2D (0x2 << 29) |
#define CMD_3D (0x3 << 29) |
#define MI_NOOP (CMD_MI | 0) |
#define MI_BATCH_BUFFER_END (CMD_MI | (0xA << 23)) |
#define MI_BATCH_BUFFER_START (CMD_MI | (0x31 << 23)) |
#define MI_FLUSH (CMD_MI | (0x4 << 23)) |
#define MI_FLUSH_STATE_INSTRUCTION_CACHE_INVALIDATE (0x1 << 0) |
#define MI_FLUSH_DW (CMD_MI | (0x26 << 23) | 0x2) |
#define MI_FLUSH_DW_VIDEO_PIPELINE_CACHE_INVALIDATE (0x1 << 7) |
#define XY_COLOR_BLT_CMD (CMD_2D | (0x50 << 22) | 0x04) |
#define XY_COLOR_BLT_WRITE_ALPHA (1 << 21) |
#define XY_COLOR_BLT_WRITE_RGB (1 << 20) |
#define XY_COLOR_BLT_DST_TILED (1 << 11) |
/* BR13 */ |
#define BR13_8 (0x0 << 24) |
#define BR13_565 (0x1 << 24) |
#define BR13_1555 (0x2 << 24) |
#define BR13_8888 (0x3 << 24) |
#define CMD_PIPE_CONTROL (CMD_3D | (3 << 27) | (2 << 24) | (0 << 16)) |
#define CMD_PIPE_CONTROL_NOWRITE (0 << 14) |
#define CMD_PIPE_CONTROL_WRITE_QWORD (1 << 14) |
#define CMD_PIPE_CONTROL_WRITE_DEPTH (2 << 14) |
#define CMD_PIPE_CONTROL_WRITE_TIME (3 << 14) |
#define CMD_PIPE_CONTROL_DEPTH_STALL (1 << 13) |
#define CMD_PIPE_CONTROL_WC_FLUSH (1 << 12) |
#define CMD_PIPE_CONTROL_IS_FLUSH (1 << 11) |
#define CMD_PIPE_CONTROL_TC_FLUSH (1 << 10) |
#define CMD_PIPE_CONTROL_NOTIFY_ENABLE (1 << 8) |
#define CMD_PIPE_CONTROL_DC_FLUSH (1 << 5) |
#define CMD_PIPE_CONTROL_GLOBAL_GTT (1 << 2) |
#define CMD_PIPE_CONTROL_LOCAL_PGTT (0 << 2) |
#define CMD_PIPE_CONTROL_DEPTH_CACHE_FLUSH (1 << 0) |
struct intel_batchbuffer; |
#define ALIGN(i, n) (((i) + (n) - 1) & ~((n) - 1)) |
#define MIN(a, b) ((a) < (b) ? (a) : (b)) |
#define MAX(a, b) ((a) > (b) ? (a) : (b)) |
#define ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0])) |
#define Bool int |
#define True 1 |
#define False 0 |
#define SET_BLOCKED_SIGSET() do { \ |
sigset_t bl_mask; \ |
sigfillset(&bl_mask); \ |
sigdelset(&bl_mask, SIGFPE); \ |
sigdelset(&bl_mask, SIGILL); \ |
sigdelset(&bl_mask, SIGSEGV); \ |
sigdelset(&bl_mask, SIGBUS); \ |
sigdelset(&bl_mask, SIGKILL); \ |
pthread_sigmask(SIG_SETMASK, &bl_mask, &intel->sa_mask); \ |
} while (0) |
#define RESTORE_BLOCKED_SIGSET() do { \ |
pthread_sigmask(SIG_SETMASK, &intel->sa_mask, NULL); \ |
} while (0) |
#define PPTHREAD_MUTEX_LOCK() do { \ |
SET_BLOCKED_SIGSET(); \ |
pthread_mutex_lock(&intel->ctxmutex); \ |
} while (0) |
#define PPTHREAD_MUTEX_UNLOCK() do { \ |
pthread_mutex_unlock(&intel->ctxmutex); \ |
RESTORE_BLOCKED_SIGSET(); \ |
} while (0) |
#define WARN_ONCE(...) do { \ |
static int g_once = 1; \ |
if (g_once) { \ |
g_once = 0; \ |
printf("WARNING: " __VA_ARGS__); \ |
} \ |
} while (0) |
struct intel_driver_data |
{ |
int fd; |
int device_id; |
int revision; |
int dri2Enabled; |
sigset_t sa_mask; |
// pthread_mutex_t ctxmutex; |
int locked; |
dri_bufmgr *bufmgr; |
unsigned int has_exec2 : 1; /* Flag: has execbuffer2? */ |
unsigned int has_bsd : 1; /* Flag: has bitstream decoder for H.264? */ |
unsigned int has_blt : 1; /* Flag: has BLT unit? */ |
}; |
Bool intel_driver_init(VADriverContextP ctx); |
Bool intel_driver_terminate(VADriverContextP ctx); |
static INLINE struct intel_driver_data * |
intel_driver_data(VADriverContextP ctx) |
{ |
return (struct intel_driver_data *)ctx->pDriverData; |
} |
struct intel_region |
{ |
int x; |
int y; |
unsigned int width; |
unsigned int height; |
unsigned int cpp; |
unsigned int pitch; |
unsigned int tiling; |
unsigned int swizzle; |
dri_bo *bo; |
}; |
#define PCI_CHIP_GM45_GM 0x2A42 |
#define PCI_CHIP_IGD_E_G 0x2E02 |
#define PCI_CHIP_Q45_G 0x2E12 |
#define PCI_CHIP_G45_G 0x2E22 |
#define PCI_CHIP_G41_G 0x2E32 |
#define PCI_CHIP_B43_G 0x2E42 |
#define PCI_CHIP_B43_G1 0x2E92 |
#define PCI_CHIP_IRONLAKE_D_G 0x0042 |
#define PCI_CHIP_IRONLAKE_M_G 0x0046 |
#ifndef PCI_CHIP_SANDYBRIDGE_GT1 |
#define PCI_CHIP_SANDYBRIDGE_GT1 0x0102 /* Desktop */ |
#define PCI_CHIP_SANDYBRIDGE_GT2 0x0112 |
#define PCI_CHIP_SANDYBRIDGE_GT2_PLUS 0x0122 |
#define PCI_CHIP_SANDYBRIDGE_M_GT1 0x0106 /* Mobile */ |
#define PCI_CHIP_SANDYBRIDGE_M_GT2 0x0116 |
#define PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS 0x0126 |
#define PCI_CHIP_SANDYBRIDGE_S_GT 0x010A /* Server */ |
#endif |
#define PCI_CHIP_IVYBRIDGE_GT1 0x0152 /* Desktop */ |
#define PCI_CHIP_IVYBRIDGE_GT2 0x0162 |
#define PCI_CHIP_IVYBRIDGE_M_GT1 0x0156 /* Mobile */ |
#define PCI_CHIP_IVYBRIDGE_M_GT2 0x0166 |
#define PCI_CHIP_IVYBRIDGE_S_GT1 0x015a /* Server */ |
#define PCI_CHIP_IVYBRIDGE_S_GT2 0x016a |
#define PCI_CHIP_HASWELL_GT1 0x0402 /* Desktop */ |
#define PCI_CHIP_HASWELL_GT2 0x0412 |
#define PCI_CHIP_HASWELL_GT2_PLUS 0x0422 |
#define PCI_CHIP_HASWELL_M_GT1 0x0406 /* Mobile */ |
#define PCI_CHIP_HASWELL_M_GT2 0x0416 |
#define PCI_CHIP_HASWELL_M_GT2_PLUS 0x0426 |
#define PCI_CHIP_HASWELL_S_GT1 0x040a /* Server */ |
#define PCI_CHIP_HASWELL_S_GT2 0x041a |
#define PCI_CHIP_HASWELL_S_GT2_PLUS 0x042a |
#define PCI_CHIP_HASWELL_SDV_GT1 0x0c02 /* Desktop */ |
#define PCI_CHIP_HASWELL_SDV_GT2 0x0c12 |
#define PCI_CHIP_HASWELL_SDV_GT2_PLUS 0x0c22 |
#define PCI_CHIP_HASWELL_SDV_M_GT1 0x0c06 /* Mobile */ |
#define PCI_CHIP_HASWELL_SDV_M_GT2 0x0c16 |
#define PCI_CHIP_HASWELL_SDV_M_GT2_PLUS 0x0c26 |
#define PCI_CHIP_HASWELL_SDV_S_GT1 0x0c0a /* Server */ |
#define PCI_CHIP_HASWELL_SDV_S_GT2 0x0c1a |
#define PCI_CHIP_HASWELL_SDV_S_GT2_PLUS 0x0c2a |
#define PCI_CHIP_HASWELL_ULT_GT1 0x0A02 /* Desktop */ |
#define PCI_CHIP_HASWELL_ULT_GT2 0x0A12 |
#define PCI_CHIP_HASWELL_ULT_GT2_PLUS 0x0A22 |
#define PCI_CHIP_HASWELL_ULT_M_GT1 0x0A06 /* Mobile */ |
#define PCI_CHIP_HASWELL_ULT_M_GT2 0x0A16 |
#define PCI_CHIP_HASWELL_ULT_M_GT2_PLUS 0x0A26 |
#define PCI_CHIP_HASWELL_ULT_S_GT1 0x0A0A /* Server */ |
#define PCI_CHIP_HASWELL_ULT_S_GT2 0x0A1A |
#define PCI_CHIP_HASWELL_ULT_S_GT2_PLUS 0x0A2A |
#define PCI_CHIP_HASWELL_CRW_GT1 0x0D12 /* Desktop */ |
#define PCI_CHIP_HASWELL_CRW_GT2 0x0D22 |
#define PCI_CHIP_HASWELL_CRW_GT2_PLUS 0x0D32 |
#define PCI_CHIP_HASWELL_CRW_M_GT1 0x0D16 /* Mobile */ |
#define PCI_CHIP_HASWELL_CRW_M_GT2 0x0D26 |
#define PCI_CHIP_HASWELL_CRW_M_GT2_PLUS 0x0D36 |
#define PCI_CHIP_HASWELL_CRW_S_GT1 0x0D1A /* Server */ |
#define PCI_CHIP_HASWELL_CRW_S_GT2 0x0D2A |
#define PCI_CHIP_HASWELL_CRW_S_GT2_PLUS 0x0D3A |
#define IS_G45(devid) (devid == PCI_CHIP_IGD_E_G || \ |
devid == PCI_CHIP_Q45_G || \ |
devid == PCI_CHIP_G45_G || \ |
devid == PCI_CHIP_G41_G || \ |
devid == PCI_CHIP_B43_G || \ |
devid == PCI_CHIP_B43_G1) |
#define IS_GM45(devid) (devid == PCI_CHIP_GM45_GM) |
#define IS_G4X(devid) (IS_G45(devid) || IS_GM45(devid)) |
#define IS_IRONLAKE_D(devid) (devid == PCI_CHIP_IRONLAKE_D_G) |
#define IS_IRONLAKE_M(devid) (devid == PCI_CHIP_IRONLAKE_M_G) |
#define IS_IRONLAKE(devid) (IS_IRONLAKE_D(devid) || IS_IRONLAKE_M(devid)) |
#define IS_SNB_GT1(devid) (devid == PCI_CHIP_SANDYBRIDGE_GT1 || \ |
devid == PCI_CHIP_SANDYBRIDGE_M_GT1 || \ |
devid == PCI_CHIP_SANDYBRIDGE_S_GT) |
#define IS_SNB_GT2(devid) (devid == PCI_CHIP_SANDYBRIDGE_GT2 || \ |
devid == PCI_CHIP_SANDYBRIDGE_GT2_PLUS || \ |
devid == PCI_CHIP_SANDYBRIDGE_M_GT2 || \ |
devid == PCI_CHIP_SANDYBRIDGE_M_GT2_PLUS) |
#define IS_GEN6(devid) (IS_SNB_GT1(devid) || \ |
IS_SNB_GT2(devid)) |
#define IS_IVB_GT1(devid) (devid == PCI_CHIP_IVYBRIDGE_GT1 || \ |
devid == PCI_CHIP_IVYBRIDGE_M_GT1 || \ |
devid == PCI_CHIP_IVYBRIDGE_S_GT1) |
#define IS_IVB_GT2(devid) (devid == PCI_CHIP_IVYBRIDGE_GT2 || \ |
devid == PCI_CHIP_IVYBRIDGE_M_GT2 || \ |
devid == PCI_CHIP_IVYBRIDGE_S_GT2) |
#define IS_IVYBRIDGE(devid) (IS_IVB_GT1(devid) || \ |
IS_IVB_GT2(devid)) |
#define IS_HSW_GT1(devid) (devid == PCI_CHIP_HASWELL_GT1 || \ |
devid == PCI_CHIP_HASWELL_M_GT1 || \ |
devid == PCI_CHIP_HASWELL_S_GT1 || \ |
devid == PCI_CHIP_HASWELL_SDV_GT1 || \ |
devid == PCI_CHIP_HASWELL_SDV_M_GT1 || \ |
devid == PCI_CHIP_HASWELL_SDV_S_GT1 || \ |
devid == PCI_CHIP_HASWELL_CRW_GT1 || \ |
devid == PCI_CHIP_HASWELL_CRW_M_GT1 || \ |
devid == PCI_CHIP_HASWELL_CRW_S_GT1 || \ |
devid == PCI_CHIP_HASWELL_ULT_GT1 || \ |
devid == PCI_CHIP_HASWELL_ULT_M_GT1 || \ |
devid == PCI_CHIP_HASWELL_ULT_S_GT1) |
#define IS_HSW_GT2(devid) (devid == PCI_CHIP_HASWELL_GT2|| \ |
devid == PCI_CHIP_HASWELL_M_GT2|| \ |
devid == PCI_CHIP_HASWELL_S_GT2|| \ |
devid == PCI_CHIP_HASWELL_SDV_GT2|| \ |
devid == PCI_CHIP_HASWELL_SDV_M_GT2|| \ |
devid == PCI_CHIP_HASWELL_SDV_S_GT2|| \ |
devid == PCI_CHIP_HASWELL_CRW_GT2|| \ |
devid == PCI_CHIP_HASWELL_CRW_M_GT2|| \ |
devid == PCI_CHIP_HASWELL_CRW_S_GT2|| \ |
devid == PCI_CHIP_HASWELL_ULT_GT2|| \ |
devid == PCI_CHIP_HASWELL_ULT_GT2_PLUS|| \ |
devid == PCI_CHIP_HASWELL_ULT_M_GT2|| \ |
devid == PCI_CHIP_HASWELL_ULT_M_GT2_PLUS|| \ |
devid == PCI_CHIP_HASWELL_ULT_S_GT2 || \ |
devid == PCI_CHIP_HASWELL_ULT_S_GT2_PLUS || \ |
devid == PCI_CHIP_HASWELL_GT2_PLUS|| \ |
devid == PCI_CHIP_HASWELL_M_GT2_PLUS || \ |
devid == PCI_CHIP_HASWELL_S_GT2_PLUS || \ |
devid == PCI_CHIP_HASWELL_SDV_GT2_PLUS|| \ |
devid == PCI_CHIP_HASWELL_SDV_M_GT2_PLUS|| \ |
devid == PCI_CHIP_HASWELL_SDV_S_GT2_PLUS|| \ |
devid == PCI_CHIP_HASWELL_CRW_GT2_PLUS|| \ |
devid == PCI_CHIP_HASWELL_CRW_M_GT2_PLUS|| \ |
devid == PCI_CHIP_HASWELL_CRW_S_GT2_PLUS) |
#define IS_HASWELL(devid) (IS_HSW_GT1(devid) || \ |
IS_HSW_GT2(devid)) |
#define IS_GEN7(devid) (IS_IVYBRIDGE(devid) || \ |
IS_HASWELL(devid)) |
#ifndef I915_EXEC_VEBOX |
#define I915_EXEC_VEBOX 4 |
#endif |
#endif /* _INTEL_DRIVER_H_ */ |
/drivers/video/i965/intel_memman.c |
---|
0,0 → 1,49 |
/* |
* Copyright © 2009 Intel Corporation |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
* |
* Authors: |
* Xiang Haihao <haihao.xiang@intel.com> |
* Zou Nan hai <nanhai.zou@intel.com> |
* |
*/ |
#include <assert.h> |
#include "intel_driver.h" |
Bool |
intel_memman_init(struct intel_driver_data *intel) |
{ |
intel->bufmgr = intel_bufmgr_gem_init(intel->fd, BATCH_SIZE); |
assert(intel->bufmgr); |
intel_bufmgr_gem_enable_reuse(intel->bufmgr); |
return True; |
} |
Bool |
intel_memman_terminate(struct intel_driver_data *intel) |
{ |
drm_intel_bufmgr_destroy(intel->bufmgr); |
return True; |
} |
/drivers/video/i965/intel_memman.h |
---|
0,0 → 1,7 |
#ifndef _INTEL_MEMMAN_H_ |
#define _INTEL_MEMMAN_H_ |
Bool intel_memman_init(struct intel_driver_data *intel); |
Bool intel_memman_terminate(struct intel_driver_data *intel); |
#endif /* _INTEL_MEMMAN_H_ */ |
/drivers/video/i965/object_heap.c |
---|
0,0 → 1,247 |
/* |
* Copyright (c) 2007 Intel Corporation. All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
*/ |
#include "object_heap.h" |
#include "assert.h" |
#include <stdio.h> |
#include <string.h> |
#include <stdlib.h> |
#define ASSERT assert |
#define LAST_FREE -1 |
#define ALLOCATED -2 |
/* |
* Expands the heap |
* Return 0 on success, -1 on error |
*/ |
static int object_heap_expand( object_heap_p heap ) |
{ |
int i; |
void *new_heap_index; |
int next_free; |
int new_heap_size = heap->heap_size + heap->heap_increment; |
int bucket_index = new_heap_size / heap->heap_increment - 1; |
if (bucket_index >= heap->num_buckets) { |
int new_num_buckets = heap->num_buckets + 8; |
void **new_bucket; |
new_bucket = realloc(heap->bucket, new_num_buckets * sizeof(void *)); |
if (NULL == new_bucket) { |
return -1; |
} |
heap->num_buckets = new_num_buckets; |
heap->bucket = new_bucket; |
} |
new_heap_index = (void *) malloc( heap->heap_increment * heap->object_size ); |
if ( NULL == new_heap_index ) |
{ |
return -1; /* Out of memory */ |
} |
heap->bucket[bucket_index] = new_heap_index; |
next_free = heap->next_free; |
for(i = new_heap_size; i-- > heap->heap_size; ) |
{ |
object_base_p obj = (object_base_p) (new_heap_index + (i - heap->heap_size) * heap->object_size); |
obj->id = i + heap->id_offset; |
obj->next_free = next_free; |
next_free = i; |
} |
heap->next_free = next_free; |
heap->heap_size = new_heap_size; |
return 0; /* Success */ |
} |
/* |
* Return 0 on success, -1 on error |
*/ |
int object_heap_init( object_heap_p heap, int object_size, int id_offset) |
{ |
heap->object_size = object_size; |
heap->id_offset = id_offset & OBJECT_HEAP_OFFSET_MASK; |
heap->heap_size = 0; |
heap->heap_increment = 16; |
heap->next_free = LAST_FREE; |
_i965InitMutex(&heap->mutex); |
heap->num_buckets = 0; |
heap->bucket = NULL; |
return object_heap_expand(heap); |
} |
/* |
* Allocates an object |
* Returns the object ID on success, returns -1 on error |
*/ |
int object_heap_allocate( object_heap_p heap ) |
{ |
object_base_p obj; |
int bucket_index, obj_index; |
_i965LockMutex(&heap->mutex); |
if ( LAST_FREE == heap->next_free ) |
{ |
if( -1 == object_heap_expand( heap ) ) |
{ |
_i965UnlockMutex(&heap->mutex); |
return -1; /* Out of memory */ |
} |
} |
ASSERT( heap->next_free >= 0 ); |
bucket_index = heap->next_free / heap->heap_increment; |
obj_index = heap->next_free % heap->heap_increment; |
obj = (object_base_p) (heap->bucket[bucket_index] + obj_index * heap->object_size); |
heap->next_free = obj->next_free; |
_i965UnlockMutex(&heap->mutex); |
obj->next_free = ALLOCATED; |
return obj->id; |
} |
/* |
* Lookup an object by object ID |
* Returns a pointer to the object on success, returns NULL on error |
*/ |
object_base_p object_heap_lookup( object_heap_p heap, int id ) |
{ |
object_base_p obj; |
int bucket_index, obj_index; |
_i965LockMutex(&heap->mutex); |
if ( (id < heap->id_offset) || (id > (heap->heap_size+heap->id_offset)) ) |
{ |
_i965UnlockMutex(&heap->mutex); |
return NULL; |
} |
id &= OBJECT_HEAP_ID_MASK; |
bucket_index = id / heap->heap_increment; |
obj_index = id % heap->heap_increment; |
obj = (object_base_p) (heap->bucket[bucket_index] + obj_index * heap->object_size); |
_i965UnlockMutex(&heap->mutex); |
/* Check if the object has in fact been allocated */ |
if ( obj->next_free != ALLOCATED ) |
{ |
return NULL; |
} |
return obj; |
} |
/* |
* Iterate over all objects in the heap. |
* Returns a pointer to the first object on the heap, returns NULL if heap is empty. |
*/ |
object_base_p object_heap_first( object_heap_p heap, object_heap_iterator *iter ) |
{ |
*iter = -1; |
return object_heap_next( heap, iter ); |
} |
/* |
* Iterate over all objects in the heap. |
* Returns a pointer to the next object on the heap, returns NULL if heap is empty. |
*/ |
object_base_p object_heap_next( object_heap_p heap, object_heap_iterator *iter ) |
{ |
object_base_p obj; |
int i = *iter + 1; |
int bucket_index, obj_index; |
_i965LockMutex(&heap->mutex); |
while ( i < heap->heap_size) |
{ |
bucket_index = i / heap->heap_increment; |
obj_index = i % heap->heap_increment; |
obj = (object_base_p) (heap->bucket[bucket_index] + obj_index * heap->object_size); |
if (obj->next_free == ALLOCATED) |
{ |
_i965UnlockMutex(&heap->mutex); |
*iter = i; |
return obj; |
} |
i++; |
} |
_i965UnlockMutex(&heap->mutex); |
*iter = i; |
return NULL; |
} |
/* |
* Frees an object |
*/ |
void object_heap_free( object_heap_p heap, object_base_p obj ) |
{ |
/* Don't complain about NULL pointers */ |
if (NULL != obj) |
{ |
/* Check if the object has in fact been allocated */ |
ASSERT( obj->next_free == ALLOCATED ); |
_i965LockMutex(&heap->mutex); |
obj->next_free = heap->next_free; |
heap->next_free = obj->id & OBJECT_HEAP_ID_MASK; |
_i965UnlockMutex(&heap->mutex); |
} |
} |
/* |
* Destroys a heap, the heap must be empty. |
*/ |
void object_heap_destroy( object_heap_p heap ) |
{ |
object_base_p obj; |
int i; |
int bucket_index, obj_index; |
_i965DestroyMutex(&heap->mutex); |
/* Check if heap is empty */ |
for (i = 0; i < heap->heap_size; i++) |
{ |
/* Check if object is not still allocated */ |
bucket_index = i / heap->heap_increment; |
obj_index = i % heap->heap_increment; |
obj = (object_base_p) (heap->bucket[bucket_index] + obj_index * heap->object_size); |
ASSERT( obj->next_free != ALLOCATED ); |
} |
for (i = 0; i < heap->heap_size / heap->heap_increment; i++) { |
free(heap->bucket[i]); |
} |
free(heap->bucket); |
heap->bucket = NULL; |
heap->heap_size = 0; |
heap->next_free = LAST_FREE; |
} |
/drivers/video/i965/object_heap.h |
---|
0,0 → 1,93 |
/* |
* Copyright (c) 2007 Intel Corporation. All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
*/ |
#ifndef _OBJECT_HEAP_H_ |
#define _OBJECT_HEAP_H_ |
#include "i965_mutext.h" |
#define OBJECT_HEAP_OFFSET_MASK 0x7F000000 |
#define OBJECT_HEAP_ID_MASK 0x00FFFFFF |
typedef struct object_base *object_base_p; |
typedef struct object_heap *object_heap_p; |
struct object_base { |
int id; |
int next_free; |
}; |
struct object_heap { |
int object_size; |
int id_offset; |
int next_free; |
int heap_size; |
int heap_increment; |
_I965Mutex mutex; |
void **bucket; |
int num_buckets; |
}; |
typedef int object_heap_iterator; |
/* |
* Return 0 on success, -1 on error |
*/ |
int object_heap_init( object_heap_p heap, int object_size, int id_offset); |
/* |
* Allocates an object |
* Returns the object ID on success, returns -1 on error |
*/ |
int object_heap_allocate( object_heap_p heap ); |
/* |
* Lookup an allocated object by object ID |
* Returns a pointer to the object on success, returns NULL on error |
*/ |
object_base_p object_heap_lookup( object_heap_p heap, int id ); |
/* |
* Iterate over all objects in the heap. |
* Returns a pointer to the first object on the heap, returns NULL if heap is empty. |
*/ |
object_base_p object_heap_first( object_heap_p heap, object_heap_iterator *iter ); |
/* |
* Iterate over all objects in the heap. |
* Returns a pointer to the next object on the heap, returns NULL if heap is empty. |
*/ |
object_base_p object_heap_next( object_heap_p heap, object_heap_iterator *iter ); |
/* |
* Frees an object |
*/ |
void object_heap_free( object_heap_p heap, object_base_p obj ); |
/* |
* Destroys a heap, the heap must be empty. |
*/ |
void object_heap_destroy( object_heap_p heap ); |
#endif /* _OBJECT_HEAP_H_ */ |
/drivers/video/i965/shaders/h264/mc/avc_mc.g4b |
---|
0,0 → 1,5251 |
{ 0x00600001, 0x27c00021, 0x008d0000, 0x00000000 }, |
{ 0x00200009, 0x27fa3e29, 0x00450064, 0x00040004 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000d4 }, |
{ 0x00000005, 0x220e3e2c, 0x00000070, 0x000f000f }, |
{ 0x00000001, 0x26a00221, 0x00009c38, 0x00000000 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a0 }, |
{ 0x00a02001, 0x24000229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24400229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24800229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24c00229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x25000229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x25400229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x25800229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x25c00229, 0x00b10624, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x22080060, 0x00000000, 0x06440640 }, |
{ 0x00a02001, 0x24000229, 0x00009003, 0x00000000 }, |
{ 0x00a02001, 0x24400229, 0x0000900b, 0x00000000 }, |
{ 0x00a02001, 0x24800229, 0x00009013, 0x00000000 }, |
{ 0x00a02001, 0x24c00229, 0x0000901b, 0x00000000 }, |
{ 0x00a02001, 0x25000229, 0x00009023, 0x00000000 }, |
{ 0x00a02001, 0x25400229, 0x0000902b, 0x00000000 }, |
{ 0x00a02001, 0x25800229, 0x00009033, 0x00000000 }, |
{ 0x00a02001, 0x25c00229, 0x0000903b, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000072 }, |
{ 0x02600005, 0x20000c20, 0x0000006c, 0x00000002 }, |
{ 0x00600005, 0x24000c20, 0x0000006c, 0x00000011 }, |
{ 0x01600007, 0x20000c00, 0x028d0400, 0x00000011 }, |
{ 0x00780001, 0x26240169, 0x00000000, 0x80808080 }, |
{ 0x00780001, 0x66430231, 0x028d0624, 0x00000000 }, |
{ 0x00780001, 0x66630231, 0x028d062c, 0x00000000 }, |
{ 0x00780001, 0x26240231, 0x00cf0643, 0x00000000 }, |
{ 0x00780001, 0x262c0231, 0x00cf0663, 0x00000000 }, |
{ 0x00800040, 0x25e04629, 0x00cf0643, 0x00b10624 }, |
{ 0x00600040, 0x25e02529, 0x008d05e0, 0x008d05f0 }, |
{ 0x00400040, 0x25e02529, 0x006905e0, 0x006905e8 }, |
{ 0x00200040, 0x25e02529, 0x004505e0, 0x004505e4 }, |
{ 0x00a02040, 0x2400252c, 0x000005e0, 0x000005e2 }, |
{ 0x00a02040, 0x24003d8c, 0x00b10400, 0x00100010 }, |
{ 0x00a02008, 0x24003d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x24403d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x24803d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x24c03d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x25003d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x25403d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x25803d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x25c03d89, 0x00b10400, 0x00050005 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000044 }, |
{ 0x00600041, 0x26806e2d, 0x008d062c, 0x89abcdef }, |
{ 0x00600041, 0x26906e2d, 0x008d0623, 0xfedcba98 }, |
{ 0x00600041, 0x26a06e2d, 0x00cf0663, 0x89abcdef }, |
{ 0x00600041, 0x26b06e2d, 0x00cf0643, 0x0fedcba9 }, |
{ 0x00000041, 0x26be3e2d, 0x00000623, 0xfff8fff8 }, |
{ 0x00802040, 0x268035ad, 0x008d4680, 0x008d0690 }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0688 }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0684 }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0682 }, |
{ 0x00800001, 0x240001ec, 0x00000000, 0x00200020 }, |
{ 0x00200048, 0x24003dac, 0x00a00680, 0x00050005 }, |
{ 0x00200008, 0x26e03d8d, 0x00450400, 0x00060006 }, |
{ 0x00800001, 0x240001ec, 0x00000000, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x00000633, 0x00100010 }, |
{ 0x00800048, 0x26c03e2d, 0x0000067f, 0x00100010 }, |
{ 0x00800048, 0x272055ad, 0x000006e0, 0x00b10040 }, |
{ 0x00600041, 0x268055ad, 0x000006e2, 0x00ae0040 }, |
{ 0x00600041, 0x26a055ad, 0x000006e2, 0x00ae0041 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b00680 }, |
{ 0x80a02008, 0x44003d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b00682 }, |
{ 0x80a02008, 0x44403d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b00684 }, |
{ 0x80a02008, 0x44803d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b00686 }, |
{ 0x80a02008, 0x44c03d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b00688 }, |
{ 0x80a02008, 0x45003d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b0068a }, |
{ 0x80a02008, 0x45403d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b0068c }, |
{ 0x80a02008, 0x45803d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b0068e }, |
{ 0x80a02008, 0x45c03d91, 0x00b10400, 0x00050005 }, |
{ 0x00000001, 0x22040060, 0x00000000, 0x00900080 }, |
{ 0x01000005, 0x20000c20, 0x02000068, 0x00003c00 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000020 }, |
{ 0x80802040, 0x440045b1, 0x008d8800, 0x00ae0400 }, |
{ 0x80802040, 0x444045b1, 0x008d8820, 0x00ae0440 }, |
{ 0x80802040, 0x448045b1, 0x008d8840, 0x00ae0480 }, |
{ 0x80802040, 0x44c045b1, 0x008d8860, 0x00ae04c0 }, |
{ 0x80802040, 0x441045b1, 0x008d8880, 0x00ae0410 }, |
{ 0x80802040, 0x445045b1, 0x008d88a0, 0x00ae0450 }, |
{ 0x80802040, 0x449045b1, 0x008d88c0, 0x00ae0490 }, |
{ 0x80802040, 0x44d045b1, 0x008d88e0, 0x00ae04d0 }, |
{ 0x80802040, 0x450045b1, 0x008d8900, 0x00ae0500 }, |
{ 0x80802040, 0x454045b1, 0x008d8920, 0x00ae0540 }, |
{ 0x80802040, 0x458045b1, 0x008d8940, 0x00ae0580 }, |
{ 0x80802040, 0x45c045b1, 0x008d8960, 0x00ae05c0 }, |
{ 0x80802040, 0x451045b1, 0x008d8980, 0x00ae0510 }, |
{ 0x80802040, 0x455045b1, 0x008d89a0, 0x00ae0550 }, |
{ 0x80802040, 0x459045b1, 0x008d89c0, 0x00ae0590 }, |
{ 0x80802040, 0x45d045b1, 0x008d89e0, 0x00ae05d0 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x01800180 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000e2 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x27800021, 0x00000780, 0x00000000 }, |
{ 0x00000001, 0x27a00021, 0x000007a0, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00200440, 0x27c055a5, 0x004507fa, 0x0045002a }, |
{ 0x00000801, 0x27c80061, 0x00000000, 0x0000001b }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x02186000 }, |
{ 0x01600031, 0x26200021, 0x408d07c0, 0x00000200 }, |
{ 0x00000440, 0x27c43ca5, 0x000007c4, 0x00010001 }, |
{ 0x00000801, 0x27c80061, 0x00000000, 0x000f0003 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x00100000 }, |
{ 0x02600031, 0x26400021, 0x408d07c0, 0x00000200 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00000008, 0x27fc3dad, 0x000007fc, 0x00010001 }, |
{ 0x00200440, 0x27c055a5, 0x004507fa, 0x0045002a }, |
{ 0x00000801, 0x27c80061, 0x00000000, 0x00000013 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0xefffc001 }, |
{ 0x01600031, 0x26200021, 0x408d07c0, 0x00000200 }, |
{ 0x00000440, 0x27c43ca5, 0x000007c4, 0x00010001 }, |
{ 0x00000801, 0x27c80061, 0x00000000, 0x00070003 }, |
{ 0x05600031, 0x26400021, 0x408d07c0, 0x00000200 }, |
{ 0x00000008, 0x220e3e2c, 0x0000006c, 0x00060006 }, |
{ 0x00000001, 0x26a002a5, 0x00009c3c, 0x00000000 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a0 }, |
{ 0x02600005, 0x20000c20, 0x0000006c, 0x00000002 }, |
{ 0x00780001, 0x26240169, 0x00000000, 0x80808080 }, |
{ 0x02400005, 0x20000c20, 0x0200006c, 0x00000001 }, |
{ 0x00560001, 0x46420129, 0x02690624, 0x00000000 }, |
{ 0x02400005, 0x20000c20, 0x0200006c, 0x00000010 }, |
{ 0x00560001, 0x46520129, 0x0269062c, 0x00000000 }, |
{ 0x00780001, 0x26240129, 0x00ae0642, 0x00000000 }, |
{ 0x00800040, 0x24004629, 0x00b10624, 0x00650642 }, |
{ 0x00600040, 0x24002529, 0x00650400, 0x00650404 }, |
{ 0x00600040, 0x25202529, 0x00050400, 0x00050404 }, |
{ 0x00600040, 0x25702529, 0x00050408, 0x0005040c }, |
{ 0x00560001, 0x26240169, 0x00000000, 0x80808080 }, |
{ 0x00460001, 0x26240129, 0x028a0652, 0x00000000 }, |
{ 0x00560001, 0x46520129, 0x02690624, 0x00000000 }, |
{ 0x02400005, 0x20000c20, 0x0200006c, 0x00000001 }, |
{ 0x00560001, 0x46420169, 0x02000000, 0x80808080 }, |
{ 0x00460001, 0x46420129, 0x0069062c, 0x00000000 }, |
{ 0x00560001, 0x262c0129, 0x008a0642, 0x00000000 }, |
{ 0x00600040, 0x24004629, 0x008d0624, 0x00650652 }, |
{ 0x00600040, 0x24104629, 0x00650642, 0x008d062c }, |
{ 0x00600040, 0x24002529, 0x00650400, 0x00650404 }, |
{ 0x00600040, 0x25302529, 0x00050408, 0x0005040c }, |
{ 0x00600040, 0x25602529, 0x00050400, 0x00050404 }, |
{ 0x00a02040, 0x24003d2c, 0x00b10520, 0x00040004 }, |
{ 0x00a02008, 0x24003d89, 0x00b10400, 0x00030003 }, |
{ 0x00a02008, 0x24403d89, 0x00b10400, 0x00030003 }, |
{ 0x00a02040, 0x24003d2c, 0x00b10560, 0x00040004 }, |
{ 0x00a02008, 0x24803d89, 0x00b10400, 0x00030003 }, |
{ 0x00a02008, 0x24c03d89, 0x00b10400, 0x00030003 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x22080060, 0x00000000, 0x06440640 }, |
{ 0x00a02001, 0x24000229, 0x00059002, 0x00000000 }, |
{ 0x00a02001, 0x24400229, 0x0005900a, 0x00000000 }, |
{ 0x00a02001, 0x24800229, 0x00059012, 0x00000000 }, |
{ 0x00a02001, 0x24c00229, 0x0005901a, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000003c }, |
{ 0x00a02001, 0x24000229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24400229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24800229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24c00229, 0x00b10624, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x00600041, 0x26806e2d, 0x008d062c, 0x44332211 }, |
{ 0x00600041, 0x26906e2d, 0x008d0622, 0xffeeddcc }, |
{ 0x00600041, 0x26a06e2d, 0x00650652, 0x44332211 }, |
{ 0x00600041, 0x26b06e2d, 0x00650642, 0x00ffeedd }, |
{ 0x00200041, 0x26bc3e2d, 0x00450622, 0xfffcfffc }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0690 }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0688 }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0684 }, |
{ 0x00800001, 0x240001ec, 0x00000000, 0x00200020 }, |
{ 0x00400048, 0x24003dac, 0x00a50680, 0x00220022 }, |
{ 0x00400008, 0x26e03d8d, 0x00690400, 0x00060006 }, |
{ 0x00800001, 0x240001ec, 0x00000000, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x00050632, 0x00100010 }, |
{ 0x00800048, 0x26c03e2d, 0x0005065e, 0x00100010 }, |
{ 0x00800048, 0x272055ad, 0x000506e0, 0x00240044 }, |
{ 0x00600041, 0x268055ad, 0x000506e4, 0x00440044 }, |
{ 0x00600041, 0x26a055ad, 0x000506e4, 0x00440045 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00050680 }, |
{ 0x80a02008, 0x44003d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00050684 }, |
{ 0x80a02008, 0x44403d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00050688 }, |
{ 0x80a02008, 0x44803d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x0005068c }, |
{ 0x80a02008, 0x44c03d91, 0x00b10400, 0x00050005 }, |
{ 0x00000040, 0x22063d8c, 0x00000204, 0x00100010 }, |
{ 0x80802040, 0x640045b1, 0x008d8880, 0x00cf0400 }, |
{ 0x80802040, 0x644045b1, 0x008d88a0, 0x00cf0440 }, |
{ 0x80802040, 0x648045b1, 0x008d88c0, 0x00cf0480 }, |
{ 0x80802040, 0x64c045b1, 0x008d88e0, 0x00cf04c0 }, |
{ 0x80802040, 0x640245b1, 0x008d8900, 0x00cf0402 }, |
{ 0x80802040, 0x644245b1, 0x008d8920, 0x00cf0442 }, |
{ 0x80802040, 0x648245b1, 0x008d8940, 0x00cf0482 }, |
{ 0x80802040, 0x64c245b1, 0x008d8960, 0x00cf04c2 }, |
{ 0x00000401, 0x27c80061, 0x00000000, 0x0007000f }, |
{ 0x00200801, 0x27c001a1, 0x004507fa, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x08004000 }, |
{ 0x00800001, 0x20400232, 0x00d20400, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20420, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20440, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d20460, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d20480, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d204a0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d204c0, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d204e0, 0x00000000 }, |
{ 0x01600031, 0x27a00021, 0x508d07c0, 0x00000200 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00000401, 0x27c80061, 0x00000000, 0x000f000f }, |
{ 0x00200801, 0x27c001a1, 0x004507fa, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x0ff04000 }, |
{ 0x00000001, 0x22080060, 0x00000000, 0x04400400 }, |
{ 0x00a02001, 0x20400232, 0x00d29000, 0x00000000 }, |
{ 0x00a02001, 0x20500232, 0x00d29020, 0x00000000 }, |
{ 0x00a02001, 0x20800232, 0x00d29080, 0x00000000 }, |
{ 0x00a02001, 0x20900232, 0x00d290a0, 0x00000000 }, |
{ 0x00a02001, 0x20c00232, 0x00d29100, 0x00000000 }, |
{ 0x00a02001, 0x20d00232, 0x00d29120, 0x00000000 }, |
{ 0x00a02001, 0x21000232, 0x00d29180, 0x00000000 }, |
{ 0x00a02001, 0x21100232, 0x00d291a0, 0x00000000 }, |
{ 0x01600031, 0x27800021, 0x508d07c0, 0x00000200 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0000, 0x00000000 }, |
{ 0x00200009, 0x27fa3e29, 0x00450064, 0x00040004 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff04 }, |
{ 0x00000001, 0x220401ec, 0x00000000, 0x00800080 }, |
{ 0x00000001, 0x22080060, 0x00000000, 0x04100400 }, |
{ 0x00200008, 0x27006e2d, 0x0000006c, 0x00000040 }, |
{ 0x00400001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x272001a9, 0x00b10620, 0x00000000 }, |
{ 0x02600005, 0x20001c20, 0x0000006c, 0x00000008 }, |
{ 0x00110001, 0x27230231, 0x00000624, 0x00000000 }, |
{ 0x00600001, 0x27420231, 0x00cf0643, 0x00000000 }, |
{ 0x00110001, 0x27410231, 0x00000643, 0x00000000 }, |
{ 0x00240001, 0x27400231, 0x00000623, 0x00000000 }, |
{ 0x02000005, 0x20001c20, 0x0200006c, 0x00000002 }, |
{ 0x00010001, 0x27400231, 0x02000624, 0x00000000 }, |
{ 0x02000005, 0x20001c20, 0x0200006c, 0x00000001 }, |
{ 0x00110001, 0x27420231, 0x02000623, 0x00000000 }, |
{ 0x00000005, 0x26803e2d, 0x00000070, 0x000f000f }, |
{ 0x00000001, 0x270801ad, 0x00000700, 0x00000000 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000084 }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00800001, 0x27200231, 0x00b10628, 0x00000000 }, |
{ 0x02600005, 0x20001c20, 0x0200006c, 0x00000004 }, |
{ 0x00680001, 0x272c0231, 0x028d0634, 0x00000000 }, |
{ 0x00780001, 0x272c0231, 0x02000633, 0x00000000 }, |
{ 0x00400001, 0x27420231, 0x00a0040e, 0x00000000 }, |
{ 0x00400001, 0x27460231, 0x00a0044e, 0x00000000 }, |
{ 0x00200001, 0x27400231, 0x0000062b, 0x00000000 }, |
{ 0x02000005, 0x20001c20, 0x0200006c, 0x00000002 }, |
{ 0x00010001, 0x27400231, 0x0200062c, 0x00000000 }, |
{ 0x00110001, 0x27410231, 0x0200040e, 0x00000000 }, |
{ 0x00000008, 0x26803e2d, 0x00000070, 0x00040004 }, |
{ 0x00200040, 0x22083d8c, 0x00450208, 0x00800080 }, |
{ 0x00000006, 0x27083dad, 0x00000700, 0x00010001 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00a02001, 0xb3800231, 0x00d20400, 0x00000000 }, |
{ 0x00a02001, 0xb3a00231, 0x00d20480, 0x00000000 }, |
{ 0x00a02001, 0xb3c00231, 0x00d20440, 0x00000000 }, |
{ 0x00a02001, 0xb3e00231, 0x00d204c0, 0x00000000 }, |
{ 0x02000005, 0x20001c20, 0x00000060, 0x00000002 }, |
{ 0x01000005, 0x20001c20, 0x0200006c, 0x00000001 }, |
{ 0x01010005, 0x20001c20, 0x00000060, 0x00004000 }, |
{ 0x02010005, 0x20001c20, 0x02000060, 0x00000010 }, |
{ 0x00030001, 0x27230231, 0x0000065f, 0x00000000 }, |
{ 0x00030220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02600005, 0x20001c20, 0x0000006c, 0x00000001 }, |
{ 0x00460001, 0x27200231, 0x0069065c, 0x00000000 }, |
{ 0x00110001, 0x27230231, 0x00000458, 0x00000000 }, |
{ 0x00600001, 0x27240231, 0x008d0458, 0x00000000 }, |
{ 0x00600001, 0x272c0231, 0x008d0478, 0x00000000 }, |
{ 0x00600001, 0x27420231, 0x00cf0663, 0x00000000 }, |
{ 0x00000001, 0x27400231, 0x00000458, 0x00000000 }, |
{ 0x00010001, 0x27410231, 0x0000065f, 0x00000000 }, |
{ 0x00110001, 0x27410231, 0x00000663, 0x00000000 }, |
{ 0x02000005, 0x20001c20, 0x0200006c, 0x00000010 }, |
{ 0x00110001, 0x27420231, 0x0200065f, 0x00000000 }, |
{ 0x00000005, 0x26803e2d, 0x00000071, 0x000f000f }, |
{ 0x00000006, 0x27083dad, 0x00000702, 0x00020002 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00400001, 0x27200231, 0x0069045c, 0x00000000 }, |
{ 0x00600001, 0x27240231, 0x008d0478, 0x00000000 }, |
{ 0x00800001, 0x272c0231, 0x0000047f, 0x00000000 }, |
{ 0x00400001, 0x27420231, 0x00a0048e, 0x00000000 }, |
{ 0x00400001, 0x27460231, 0x00a004ce, 0x00000000 }, |
{ 0x00000001, 0x27400231, 0x00000478, 0x00000000 }, |
{ 0x00000001, 0x27410231, 0x0000045f, 0x00000000 }, |
{ 0x00000008, 0x26803e2d, 0x00000071, 0x00040004 }, |
{ 0x00200040, 0x22083d8c, 0x00450208, 0x00800080 }, |
{ 0x00000006, 0x27083dad, 0x00000700, 0x00030003 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00a02001, 0xb3800231, 0x00d20480, 0x00000000 }, |
{ 0x00a02001, 0xb3a00231, 0x00d20500, 0x00000000 }, |
{ 0x00a02001, 0xb3c00231, 0x00d204c0, 0x00000000 }, |
{ 0x00a02001, 0xb3e00231, 0x00d20540, 0x00000000 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000100 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffe74 }, |
{ 0x00000001, 0x27800021, 0x00000780, 0x00000000 }, |
{ 0x00000001, 0x27a00021, 0x000007a0, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00000001, 0x27340231, 0x00000733, 0x00000000 }, |
{ 0x00600001, 0x274a0231, 0x00000749, 0x00000000 }, |
{ 0x00800040, 0x24003e2c, 0x00b10723, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10724, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10725, 0x00010001 }, |
{ 0x00800008, 0x26c03d8d, 0x008d0400, 0x00020002 }, |
{ 0x00800040, 0x24003e2c, 0x00b10740, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10741, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10742, 0x00010001 }, |
{ 0x00800008, 0x26a03d8d, 0x008d0400, 0x00020002 }, |
{ 0x00800001, 0x27240231, 0x00d206c0, 0x00000000 }, |
{ 0x00600001, 0x27400231, 0x00ae06a2, 0x00000000 }, |
{ 0x00000001, 0x27230231, 0x000006a0, 0x00000000 }, |
{ 0x00000005, 0x220e3dac, 0x00000680, 0x000f000f }, |
{ 0x00000001, 0x26a00221, 0x00009c2c, 0x00000000 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a0 }, |
{ 0x80800040, 0xd00045b1, 0x00b18800, 0x000d0724 }, |
{ 0x80800040, 0xd02045b1, 0x00b18820, 0x000d0724 }, |
{ 0x80800040, 0xd04045b1, 0x00b18840, 0x000d0724 }, |
{ 0x80800040, 0xd06045b1, 0x00b18860, 0x000d0724 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x80800040, 0xd00045b1, 0x00b18800, 0x002c0740 }, |
{ 0x80800040, 0xd02045b1, 0x00b18820, 0x002c0742 }, |
{ 0x80800040, 0xd04045b1, 0x00b18840, 0x002c0744 }, |
{ 0x80800040, 0xd06045b1, 0x00b18860, 0x002c0746 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x02802005, 0x20003da0, 0x00000708, 0x00020002 }, |
{ 0x02600005, 0x20003da0, 0x02000708, 0x00010001 }, |
{ 0x009a0001, 0x27200169, 0x00000000, 0x80808080 }, |
{ 0x00780001, 0x27400231, 0x028d0724, 0x00000000 }, |
{ 0x00780001, 0x27240231, 0x008d0740, 0x00000000 }, |
{ 0x00600040, 0x25e04629, 0x008d0724, 0x008d0740 }, |
{ 0x00400040, 0x25e02529, 0x006905e0, 0x006905e8 }, |
{ 0x00200040, 0x25e02529, 0x004505e0, 0x004505e4 }, |
{ 0x00800040, 0x2400252c, 0x000005e0, 0x000005e2 }, |
{ 0x00800040, 0x24003d8c, 0x008d0400, 0x00080008 }, |
{ 0x00800008, 0x26803d8d, 0x008d0400, 0x00040004 }, |
{ 0x80800040, 0xd00035b1, 0x00b18800, 0x00b10680 }, |
{ 0x80800040, 0xd02035b1, 0x00b18820, 0x00b10680 }, |
{ 0x80800040, 0xd04035b1, 0x00b18840, 0x00b10680 }, |
{ 0x80800040, 0xd06035b1, 0x00b18860, 0x00b10680 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00600001, 0x27340231, 0x008d0733, 0x00000000 }, |
{ 0x00800040, 0x24003e2c, 0x00b10726, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10725, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10724, 0x00010001 }, |
{ 0x00800008, 0x26803d8d, 0x00b10400, 0x00020002 }, |
{ 0x80800040, 0xd00035b1, 0x00b18800, 0x002d0680 }, |
{ 0x80800040, 0xd02035b1, 0x00b18820, 0x002d0684 }, |
{ 0x80800040, 0xd04035b1, 0x00b18840, 0x002d0688 }, |
{ 0x80800040, 0xd06035b1, 0x00b18860, 0x002d068c }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00400009, 0x26c05421, 0x00000744, 0x00690050 }, |
{ 0x00400009, 0x26d05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26a00231, 0x00cf06c3, 0x00000000 }, |
{ 0x00800001, 0x26a80231, 0x00b10723, 0x00000000 }, |
{ 0x00800040, 0x24003e2c, 0x00b106a2, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a1, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a0, 0x00010001 }, |
{ 0x00800008, 0x26a03d8d, 0x00b10400, 0x00020002 }, |
{ 0x00200040, 0x220c3eac, 0x00450056, 0x06a006a0 }, |
{ 0x80800040, 0xd06035b1, 0x01ed9800, 0x00b18860 }, |
{ 0x80800040, 0xd04035b1, 0x01ed9804, 0x00b18840 }, |
{ 0x80800040, 0xd02035b1, 0x01ed9808, 0x00b18820 }, |
{ 0x80800040, 0xd00035b1, 0x01ed980c, 0x00b18800 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00400009, 0x26c05421, 0x00000744, 0x00690050 }, |
{ 0x00400009, 0x26d05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26a00231, 0x00cf06c3, 0x00000000 }, |
{ 0x00800001, 0x26a80231, 0x00b10723, 0x00000000 }, |
{ 0x00800042, 0x25c04629, 0x00b106a8, 0x00b106a9 }, |
{ 0x00800040, 0x24003e2c, 0x00b106a3, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a2, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a1, 0x00010001 }, |
{ 0x00800008, 0x26c03d8d, 0x008d0400, 0x00020002 }, |
{ 0x00600001, 0x26a00231, 0x00ae06c0, 0x00000000 }, |
{ 0x00600001, 0x46a60231, 0x00ae06cc, 0x00000000 }, |
{ 0x00600001, 0x46a70231, 0x00ae05c0, 0x00000000 }, |
{ 0x00200040, 0x220c3eac, 0x00450036, 0x06a006a0 }, |
{ 0x80800040, 0xd0603631, 0x01ee9800, 0x00b18860 }, |
{ 0x80800040, 0xd0403631, 0x01ee9802, 0x00b18840 }, |
{ 0x80800040, 0xd0203631, 0x01ee9804, 0x00b18820 }, |
{ 0x80800040, 0xd0003631, 0x01ee9806, 0x00b18800 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00400009, 0x26c05421, 0x00000744, 0x00690050 }, |
{ 0x00400009, 0x26d05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26a00231, 0x00ab06c3, 0x00000000 }, |
{ 0x00800001, 0x26a80231, 0x00b10723, 0x00000000 }, |
{ 0x00800040, 0x24003e2c, 0x00b106a2, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a1, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a0, 0x00010001 }, |
{ 0x00800008, 0x25c03d89, 0x008d0400, 0x00020002 }, |
{ 0x00800042, 0x26a0462d, 0x00b106a0, 0x00b106a1 }, |
{ 0x00600001, 0x46a10231, 0x00ae05c0, 0x00000000 }, |
{ 0x00600001, 0x26b00231, 0x00ae05d0, 0x00000000 }, |
{ 0x00200040, 0x220c3eac, 0x00450056, 0x06a006a0 }, |
{ 0x80800040, 0xd0603631, 0x01ed9800, 0x00b18860 }, |
{ 0x80800040, 0xd0403631, 0x01ed9804, 0x00b18840 }, |
{ 0x80800040, 0xd0203631, 0x01ed9808, 0x00b18820 }, |
{ 0x80800040, 0xd0003631, 0x01ed980c, 0x00b18800 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00800042, 0x25c04629, 0x00b10724, 0x00b10725 }, |
{ 0x00800040, 0x24003e2c, 0x00b10726, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10725, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10724, 0x00010001 }, |
{ 0x00800008, 0x25e03d89, 0x002d0400, 0x00020002 }, |
{ 0x80800040, 0xd0003531, 0x00ad05c0, 0x00b18800 }, |
{ 0x80800040, 0xd0203531, 0x00ad05c2, 0x00b18820 }, |
{ 0x80800040, 0xd0403531, 0x00ad05c4, 0x00b18840 }, |
{ 0x80800040, 0xd0603531, 0x00ad05c6, 0x00b18860 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00600001, 0x27480231, 0x00000747, 0x00000000 }, |
{ 0x00800042, 0x25c04629, 0x00b10740, 0x00b10741 }, |
{ 0x00800040, 0x24003e2c, 0x00b10742, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10741, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10740, 0x00010001 }, |
{ 0x00800008, 0x25e03d89, 0x002d0400, 0x00020002 }, |
{ 0x00800001, 0x45c10231, 0x00d205e0, 0x00000000 }, |
{ 0x80800040, 0xd0003631, 0x004d05c0, 0x00b18800 }, |
{ 0x80800040, 0xd0203631, 0x004d05c4, 0x00b18820 }, |
{ 0x80800040, 0xd0403631, 0x004d05c8, 0x00b18840 }, |
{ 0x80800040, 0xd0603631, 0x004d05cc, 0x00b18860 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00000401, 0x27c80061, 0x00000000, 0x000f000f }, |
{ 0x00200801, 0x27c001a1, 0x004507fa, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x0ff04000 }, |
{ 0x00800001, 0x20400232, 0x00cd0400, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00cd0408, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00cd0410, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00cd0418, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00cd0440, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00cd0448, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00cd0450, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00cd0458, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00cd0480, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00cd0488, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00cd0490, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00cd0498, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00cd04c0, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00cd04c8, 0x00000000 }, |
{ 0x00800001, 0x21200232, 0x00cd04d0, 0x00000000 }, |
{ 0x00800001, 0x21300232, 0x00cd04d8, 0x00000000 }, |
{ 0x01600031, 0x27800021, 0x508d07c0, 0x00000200 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0000, 0x00000000 }, |
{ 0x00200009, 0x27fa3e29, 0x00450064, 0x00040004 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffd34 }, |
{ 0x00000001, 0x220401ec, 0x00000000, 0x00800080 }, |
{ 0x00000001, 0x220601ec, 0x00000000, 0x04000400 }, |
{ 0x00200008, 0x27006e2d, 0x0000006c, 0x00000040 }, |
{ 0x02600005, 0x20003e20, 0x0000006c, 0x00040004 }, |
{ 0x00780001, 0x26340231, 0x00000633, 0x00000000 }, |
{ 0x00800001, 0x27200231, 0x00b10620, 0x00000000 }, |
{ 0x00600001, 0x27400231, 0x00cf0643, 0x00000000 }, |
{ 0x00400008, 0x26806e2d, 0x00240070, 0x00004040 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00000006, 0x27003dad, 0x00000700, 0x00010001 }, |
{ 0x00800001, 0x27200231, 0x00b10628, 0x00000000 }, |
{ 0x00400001, 0x27400231, 0x00808c26, 0x00000000 }, |
{ 0x00400001, 0x27440231, 0x00808c66, 0x00000000 }, |
{ 0x00400008, 0x26806e2d, 0x00240072, 0x00004040 }, |
{ 0x00000040, 0x22063d8c, 0x00000206, 0x00800080 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000058 }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00000006, 0x27003dad, 0x00000702, 0x00020002 }, |
{ 0x00800001, 0xaf800231, 0x00d28f80, 0x00000000 }, |
{ 0x00800001, 0xaf900231, 0x00d28fa0, 0x00000000 }, |
{ 0x00800001, 0xafc00231, 0x00d28fc0, 0x00000000 }, |
{ 0x00800001, 0xafd00231, 0x00d28fe0, 0x00000000 }, |
{ 0x00800001, 0xafa00231, 0x00d28c00, 0x00000000 }, |
{ 0x00800001, 0xafb00231, 0x00d28c20, 0x00000000 }, |
{ 0x00800001, 0xafe00231, 0x00d28c40, 0x00000000 }, |
{ 0x00800001, 0xaff00231, 0x00d28c60, 0x00000000 }, |
{ 0x00400001, 0x27200231, 0x0069065c, 0x00000000 }, |
{ 0x00600001, 0x27240231, 0x00a98fcc, 0x00000000 }, |
{ 0x00600001, 0x272c0231, 0x00a98fec, 0x00000000 }, |
{ 0x00600001, 0x27340231, 0x00008fff, 0x00000000 }, |
{ 0x00800001, 0x2620012d, 0x00b10720, 0x00000000 }, |
{ 0x00600001, 0x27400231, 0x00cf0663, 0x00000000 }, |
{ 0x00400008, 0x26806e2d, 0x00240074, 0x00004040 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00000006, 0x27003dad, 0x00000700, 0x00010001 }, |
{ 0x00800001, 0x27200231, 0x00b10628, 0x00000000 }, |
{ 0x00600001, 0x27300231, 0x008d0638, 0x00000000 }, |
{ 0x00400001, 0x27400231, 0x00808c26, 0x00000000 }, |
{ 0x00400001, 0x27440231, 0x00808c66, 0x00000000 }, |
{ 0x00400008, 0x26806e2d, 0x00240076, 0x00004040 }, |
{ 0x00000040, 0x22063d8c, 0x00000206, 0x00800080 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x00800001, 0xaf800231, 0x00d28f80, 0x00000000 }, |
{ 0x00800001, 0xaf900231, 0x00d28fa0, 0x00000000 }, |
{ 0x00800001, 0xafc00231, 0x00d28fc0, 0x00000000 }, |
{ 0x00800001, 0xafd00231, 0x00d28fe0, 0x00000000 }, |
{ 0x00800001, 0xafa00231, 0x00d28c00, 0x00000000 }, |
{ 0x00800001, 0xafb00231, 0x00d28c20, 0x00000000 }, |
{ 0x00800001, 0xafe00231, 0x00d28c40, 0x00000000 }, |
{ 0x00800001, 0xaff00231, 0x00d28c60, 0x00000000 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000e0 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffcce }, |
{ 0x00000001, 0x27800021, 0x00000780, 0x00000000 }, |
{ 0x00000001, 0x27a00021, 0x000007a0, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00600001, 0x27800231, 0x008d0740, 0x00000000 }, |
{ 0x00400005, 0x22083dac, 0x00690680, 0x000f000f }, |
{ 0x00400040, 0x26a04625, 0x01e09020, 0x00690058 }, |
{ 0x00000001, 0x26d001ad, 0x00000700, 0x00000000 }, |
{ 0x00000040, 0x27e41c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a0 }, |
{ 0x80600040, 0xcc0035b1, 0x00898800, 0x008d0760 }, |
{ 0x80600040, 0xcc1035b1, 0x00898820, 0x008d0770 }, |
{ 0x00800001, 0x27200231, 0x008d0724, 0x00000000 }, |
{ 0x00400001, 0x27400231, 0x00808c06, 0x00000000 }, |
{ 0x00000006, 0x26d03dad, 0x00000700, 0x00010001 }, |
{ 0x00000040, 0x27e41c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a4 }, |
{ 0x80600040, 0xcc2035b1, 0x00898808, 0x008d0760 }, |
{ 0x80600040, 0xcc3035b1, 0x00898828, 0x008d0770 }, |
{ 0x00000001, 0x27230231, 0x00000783, 0x00000000 }, |
{ 0x00400001, 0x27240231, 0x008a8c18, 0x00000000 }, |
{ 0x00400001, 0x27280231, 0x008a8c38, 0x00000000 }, |
{ 0x00400001, 0x272c0231, 0x00008c3e, 0x00000000 }, |
{ 0x00400001, 0x27400231, 0x00690784, 0x00000000 }, |
{ 0x00000006, 0x26d03dad, 0x00000700, 0x00020002 }, |
{ 0x00000040, 0x27e41c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a8 }, |
{ 0x80600040, 0xcc4035b1, 0x00898840, 0x008d0760 }, |
{ 0x80600040, 0xcc5035b1, 0x00898860, 0x008d0770 }, |
{ 0x00800001, 0x27200231, 0x008d0724, 0x00000000 }, |
{ 0x00600001, 0x27280231, 0x00000727, 0x00000000 }, |
{ 0x00400001, 0x27400231, 0x00808c46, 0x00000000 }, |
{ 0x00000006, 0x26d03dad, 0x00000700, 0x00030003 }, |
{ 0x00000040, 0x27e41c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006ac }, |
{ 0x80600040, 0xcc6035b1, 0x00898848, 0x008d0760 }, |
{ 0x80600040, 0xcc7035b1, 0x00898868, 0x008d0770 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00800001, 0x2760022d, 0x00090724, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00800001, 0x2760022d, 0x00280740, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x02802005, 0x20003da0, 0x000006d0, 0x00020002 }, |
{ 0x02802005, 0x20003da0, 0x020006d0, 0x00010001 }, |
{ 0x009a0001, 0x27200169, 0x00000000, 0x80808080 }, |
{ 0x00780001, 0x27400231, 0x028d0724, 0x00000000 }, |
{ 0x00780001, 0x27240231, 0x008d0740, 0x00000000 }, |
{ 0x00400040, 0x25e04629, 0x00690724, 0x00690740 }, |
{ 0x00200040, 0x25e02529, 0x004505e0, 0x004505e4 }, |
{ 0x00800040, 0x2400252c, 0x000005e0, 0x000005e2 }, |
{ 0x00800040, 0x24003d8c, 0x008d0400, 0x00040004 }, |
{ 0x00800008, 0x27603d8d, 0x008d0400, 0x00030003 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00600001, 0x26c00231, 0x008d0724, 0x00000000 }, |
{ 0x00400001, 0x26c80231, 0x0069072b, 0x00000000 }, |
{ 0x00600040, 0x24003e2c, 0x008d06c2, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d06c1, 0x00020002 }, |
{ 0x00600048, 0x25e03e29, 0x008d06c0, 0x00010001 }, |
{ 0x00800008, 0x27603d2d, 0x002905e0, 0x00020002 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00400009, 0x26e05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26c40231, 0x008d0723, 0x00000000 }, |
{ 0x00400001, 0x26c00231, 0x00ab06e3, 0x00000000 }, |
{ 0x00600040, 0x24003e2c, 0x008d06c2, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d06c1, 0x00020002 }, |
{ 0x00600048, 0x26c03e2d, 0x008d06c0, 0x00010001 }, |
{ 0x00400040, 0x22083eac, 0x00690054, 0x06c006c0 }, |
{ 0x00800008, 0x27603dad, 0x01e99000, 0x00020002 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00400009, 0x26e05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26c40231, 0x008d0723, 0x00000000 }, |
{ 0x00400001, 0x26c00231, 0x00ab06e3, 0x00000000 }, |
{ 0x00600042, 0x25c04629, 0x008d06c4, 0x008d06c5 }, |
{ 0x00600040, 0x24003e2c, 0x008d06c3, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d06c2, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d06c1, 0x00010001 }, |
{ 0x00600008, 0x26c03d8d, 0x008d0400, 0x00020002 }, |
{ 0x00400001, 0x46c401ad, 0x006906c4, 0x00000000 }, |
{ 0x00400001, 0x46c6012d, 0x006905c0, 0x00000000 }, |
{ 0x00400040, 0x22083eac, 0x00690054, 0x06c006c0 }, |
{ 0x00800001, 0x276001ad, 0x01ea9000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00400009, 0x26e05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26c40231, 0x008d0723, 0x00000000 }, |
{ 0x00400001, 0x26c00231, 0x00ab06e3, 0x00000000 }, |
{ 0x00600042, 0x25c04629, 0x008d06c0, 0x008d06c1 }, |
{ 0x00600040, 0x24003e2c, 0x008d06c2, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d06c1, 0x00020002 }, |
{ 0x00600048, 0x26e03e2d, 0x008d06c0, 0x00010001 }, |
{ 0x00400008, 0x46c23dad, 0x006906e0, 0x00020002 }, |
{ 0x00200008, 0x26d03dad, 0x004506e8, 0x00020002 }, |
{ 0x00400001, 0x46c0012d, 0x006905c0, 0x00000000 }, |
{ 0x00400009, 0x22083eac, 0x00690054, 0x00010001 }, |
{ 0x00400040, 0x22083d8c, 0x00690208, 0x06c006c0 }, |
{ 0x00800001, 0x276001ad, 0x01e99000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00600042, 0x45c04629, 0x008d0724, 0x008d0725 }, |
{ 0x00600040, 0x24003e2c, 0x008d0726, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d0725, 0x00020002 }, |
{ 0x00600048, 0x25e03e29, 0x008d0724, 0x00010001 }, |
{ 0x00600008, 0x45c23d29, 0x008d05e0, 0x00020002 }, |
{ 0x00800001, 0x2760012d, 0x002a05c0, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00600001, 0x27440231, 0x00000743, 0x00000000 }, |
{ 0x00600042, 0x45c04629, 0x008d0740, 0x008d0741 }, |
{ 0x00600040, 0x24003e2c, 0x008d0742, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d0741, 0x00020002 }, |
{ 0x00600048, 0x25e03e29, 0x008d0740, 0x00010001 }, |
{ 0x00600008, 0x45c23d29, 0x008d05e0, 0x00020002 }, |
{ 0x00800001, 0x2760012d, 0x004905c0, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00000401, 0x27c80061, 0x00000000, 0x000f000f }, |
{ 0x00200801, 0x27c001a1, 0x004507fa, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x0ff04000 }, |
{ 0x00800001, 0x20400232, 0x00a90400, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00a90404, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00a90408, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00a9040c, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00a90440, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00a90444, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00a90448, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00a9044c, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00a90480, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00a90484, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00a90488, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00a9048c, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00a904c0, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00a904c4, 0x00000000 }, |
{ 0x00800001, 0x21200232, 0x00a904c8, 0x00000000 }, |
{ 0x00800001, 0x21300232, 0x00a904cc, 0x00000000 }, |
{ 0x01600031, 0x27800021, 0x508d07c0, 0x00000200 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0000, 0x00000000 }, |
{ 0x00200009, 0x27fa3e29, 0x00450064, 0x00040004 }, |
{ 0x00000401, 0x27c80061, 0x00000000, 0x000f000f }, |
{ 0x00200809, 0x27c03e21, 0x00450064, 0x00040004 }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x1218a000 }, |
{ 0x00a02401, 0x20400232, 0x00b10080, 0x00000000 }, |
{ 0x00a02801, 0x20500232, 0x00b10090, 0x00000000 }, |
{ 0x00a02401, 0x20800232, 0x00b100c0, 0x00000000 }, |
{ 0x00a02801, 0x20900232, 0x00b100d0, 0x00000000 }, |
{ 0x00a02401, 0x20c00232, 0x00b10100, 0x00000000 }, |
{ 0x00a02801, 0x20d00232, 0x00b10110, 0x00000000 }, |
{ 0x00a02401, 0x21000232, 0x00b10140, 0x00000000 }, |
{ 0x00a02801, 0x21100232, 0x00b10150, 0x00000000 }, |
{ 0x01600031, 0x27800021, 0x508d07c0, 0x00000200 }, |
{ 0x00000401, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x0000080c, 0x20243c22, 0x000007c4, 0x00010001 }, |
{ 0x00000040, 0x22001c00, 0x00000200, 0xf8000001 }, |
{ 0x00800001, 0x40400232, 0x00b10180, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00b101c0, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00b10190, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00b101d0, 0x00000000 }, |
{ 0x00800001, 0x40800232, 0x00b101a0, 0x00000000 }, |
{ 0x00800001, 0x40810232, 0x00b101e0, 0x00000000 }, |
{ 0x00800001, 0x40a00232, 0x00b101b0, 0x00000000 }, |
{ 0x00800001, 0x40a10232, 0x00b101f0, 0x00000000 }, |
{ 0x01600031, 0x27a00001, 0x508d0000, 0x00000200 }, |
{ 0x00000001, 0x27800021, 0x00000780, 0x00000000 }, |
{ 0x00000001, 0x27a00021, 0x000007a0, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0000, 0x00000000 }, |
{ 0x00000005, 0x20203e2d, 0x00000061, 0x001f001f }, |
{ 0x00200009, 0x20643e2d, 0x00450064, 0x00040004 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00000000 }, |
{ 0x01000010, 0x20003dac, 0x00000020, 0x00160016 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x01200010, 0x20003e2c, 0x0200006c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000024 }, |
{ 0x00800009, 0x25403dad, 0x00050064, 0x00020002 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00180018 }, |
{ 0x00200040, 0x45483dad, 0x00660548, 0x00100010 }, |
{ 0x00200040, 0x45523dad, 0x00660552, 0x00100010 }, |
{ 0x00400040, 0x25583dad, 0x00690558, 0x00100010 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0x00200020 }, |
{ 0x00800040, 0x20a035ad, 0x00b100a0, 0x00b10540 }, |
{ 0x00600040, 0x45423dad, 0x00ae0542, 0x00200020 }, |
{ 0x00800040, 0x20e035ad, 0x00b100e0, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0xffe0ffe0 }, |
{ 0x00800040, 0x20c035ad, 0x00b100c0, 0x00b10540 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x06600010, 0x20003dac, 0x02000020, 0x00030003 }, |
{ 0x00000001, 0x206c0171, 0x00000000, 0x00000000 }, |
{ 0x00610001, 0x208000a5, 0x02050080, 0x00000000 }, |
{ 0x00610001, 0x212000a5, 0x02090100, 0x00000000 }, |
{ 0x00410001, 0x211000a5, 0x02690100, 0x00000000 }, |
{ 0x00200009, 0x25403dad, 0x00450064, 0x00020002 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00050540 }, |
{ 0x00200040, 0x40883dad, 0x00660088, 0x00200020 }, |
{ 0x00200040, 0x40923dad, 0x00660092, 0x00200020 }, |
{ 0x00400040, 0x20983dad, 0x00690098, 0x00200020 }, |
{ 0x00200401, 0x22080060, 0x00000000, 0x03400140 }, |
{ 0x00000c01, 0x220c0060, 0x00000000, 0x04400080 }, |
{ 0x00000801, 0x22040060, 0x00000000, 0x01000070 }, |
{ 0x00000001, 0x20200169, 0x00000000, 0x00000000 }, |
{ 0x0000000c, 0x2458262d, 0x0000006d, 0x00000020 }, |
{ 0x00000001, 0x210e0169, 0x00000000, 0x00010001 }, |
{ 0x00000005, 0x24583dad, 0x00000458, 0x00030003 }, |
{ 0x01000010, 0x200035ac, 0x0000010e, 0x00000458 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x000002fe }, |
{ 0x01000010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00010401, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00010805, 0x245a3e2d, 0x02008800, 0x007f007f }, |
{ 0x00110401, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00110805, 0x245a3e2d, 0x02008804, 0x007f007f }, |
{ 0x0000000c, 0x211e362d, 0x0000006c, 0x00000020 }, |
{ 0x00000040, 0x20780d21, 0x0000045a, 0x0208a002 }, |
{ 0x02000005, 0x20003dac, 0x0200011e, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000001be }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00700000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c000c }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x0007000c }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00110040, 0x20441da5, 0x02000442, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c0007 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00070007 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x01600006, 0x20003dac, 0x0000044a, 0x00000000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00010040, 0x22000c20, 0x00000078, 0x00200010 }, |
{ 0x00110040, 0x22000c20, 0x00000078, 0x00300010 }, |
{ 0x00010001, 0x20480061, 0x00000000, 0x00030009 }, |
{ 0x00110001, 0x20480061, 0x00000000, 0x00040009 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001a }, |
{ 0x00600001, 0x26220231, 0x008d05c0, 0x00000000 }, |
{ 0x00600401, 0x26120231, 0x008d05b8, 0x00000000 }, |
{ 0x00600801, 0x26020231, 0x008d05b0, 0x00000000 }, |
{ 0x00600401, 0x25f20231, 0x008d05a8, 0x00000000 }, |
{ 0x00600801, 0x25e20231, 0x008d05a0, 0x00000000 }, |
{ 0x00600401, 0x25d20231, 0x008d0598, 0x00000000 }, |
{ 0x00600801, 0x25c20231, 0x008d0590, 0x00000000 }, |
{ 0x00600401, 0x25b20231, 0x008d0588, 0x00000000 }, |
{ 0x00600801, 0x25a20231, 0x008d0580, 0x00000000 }, |
{ 0x00600401, 0x25920231, 0x008d0578, 0x00000000 }, |
{ 0x00600801, 0x25820231, 0x008d0570, 0x00000000 }, |
{ 0x00600001, 0x25720231, 0x008d0568, 0x00000000 }, |
{ 0x00600001, 0x25620231, 0x008d0560, 0x00000000 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00810001, 0xbc000229, 0x02ad8000, 0x00000000 }, |
{ 0x00810001, 0xbc200229, 0x02ad8020, 0x00000000 }, |
{ 0x00810001, 0xbc400229, 0x02ad8040, 0x00000000 }, |
{ 0x00810001, 0xbc600229, 0x02ad8060, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000012a }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000066 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000064 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04a00480 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00a02040, 0x2400462c, 0x00ad8000, 0x00ad8005 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8001, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8002, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8003, 0x00140014 }, |
{ 0x00a02048, 0xb8003e2d, 0x00ad8004, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8040, 0x00ad8045 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8041, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8042, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8043, 0x00140014 }, |
{ 0x00a02048, 0xb8403e2d, 0x00ad8044, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8080, 0x00ad8085 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8081, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8082, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8083, 0x00140014 }, |
{ 0x00a02048, 0xb8803e2d, 0x00ad8084, 0xfffbfffb }, |
{ 0x00600040, 0x2400462c, 0x008d80c0, 0x008d80c5 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c1, 0xfffbfffb }, |
{ 0x00600048, 0x24003e2c, 0x008d80c2, 0x00140014 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c3, 0x00140014 }, |
{ 0x00600048, 0xb8c03e2d, 0x008d80c4, 0xfffbfffb }, |
{ 0x00000401, 0x22000060, 0x00000000, 0x04a00480 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04a00490 }, |
{ 0x00010802, 0x220c2d28, 0x00000454, 0x04800480 }, |
{ 0x00a02040, 0x24003dac, 0x00b18000, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8800, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8820, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18020, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8820, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8840, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18040, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x000a000a }, |
{ 0x00a02040, 0x24003dac, 0x00b18040, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18060, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8860, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8880, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18080, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8880, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed88a0, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x000000b4 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000004c }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000004a }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010002, 0x220c2d28, 0x02000454, 0x04800480 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8000, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8001, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8021, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8002, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8022, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8003, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8023, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8004, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8024, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8005, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8025, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8040, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8060, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8041, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8061, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8042, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8062, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8043, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8063, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8044, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8064, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8045, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8065, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000042 }, |
{ 0x00200401, 0x22000128, 0x0066044c, 0x00000000 }, |
{ 0x00200c01, 0x22040128, 0x0045044e, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x03400010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220c0168, 0x02000000, 0x04800480 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad83e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8be0, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8800, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8800, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8820, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8040, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8840, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8860, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8060, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8860, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8880, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001c }, |
{ 0x00200401, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x01200010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01200010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00210040, 0x22002d08, 0x00450200, 0x00010001 }, |
{ 0x00210040, 0x22002d08, 0x02450200, 0x00100010 }, |
{ 0x00800001, 0xb8000229, 0x01ed8000, 0x00000000 }, |
{ 0x00800001, 0xb8200229, 0x01ed8020, 0x00000000 }, |
{ 0x00800001, 0xb8400229, 0x01ed8040, 0x00000000 }, |
{ 0x00800001, 0xb8600229, 0x01ed8060, 0x00000000 }, |
{ 0x80800042, 0xd8004631, 0x00d29800, 0x00d20480 }, |
{ 0x80800042, 0xd8204631, 0x00d29820, 0x00d204a0 }, |
{ 0x80800042, 0xd8404631, 0x00d29840, 0x00d204c0 }, |
{ 0x80800042, 0xd8604631, 0x00d29860, 0x00d204e0 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000c01, 0x220201e8, 0x00000000, 0x07100710 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00200040, 0x244c3d09, 0x00450200, 0x00100010 }, |
{ 0x00800041, 0x24002628, 0x00ad8000, 0x00000540 }, |
{ 0x00800041, 0x24202628, 0x00ad8020, 0x00000540 }, |
{ 0x00800048, 0x24002628, 0x00ad8002, 0x00000542 }, |
{ 0x00800048, 0x24202628, 0x00ad8022, 0x00000542 }, |
{ 0x00200001, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00800048, 0x24002628, 0x01ed8000, 0x00000544 }, |
{ 0x00800048, 0x24202628, 0x01ed8020, 0x00000544 }, |
{ 0x00800048, 0xbc002629, 0x01ed8002, 0x00000546 }, |
{ 0x00801048, 0xbc202629, 0x01ed8022, 0x00000546 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000126 }, |
{ 0x00000001, 0x20220169, 0x00000000, 0x00040004 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00500000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x00080008 }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00030008 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x00000078, 0x00100010 }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00000001, 0x20480061, 0x00000000, 0x00020005 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00410001, 0xbc000229, 0x02698000, 0x00000000 }, |
{ 0x00410001, 0xbc100229, 0x02698010, 0x00000000 }, |
{ 0x00410001, 0xbc200229, 0x02698020, 0x00000000 }, |
{ 0x00410001, 0xbc300229, 0x02698030, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000be }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000044 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000042 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04d004c0 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00802040, 0x2400462c, 0x00a98000, 0x00a98005 }, |
{ 0x00802048, 0x24003e2c, 0x00a98001, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98002, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98003, 0x00140014 }, |
{ 0x00802048, 0xb8003e2d, 0x00a98004, 0xfffbfffb }, |
{ 0x00802040, 0x2400462c, 0x00a98040, 0x00a98045 }, |
{ 0x00802048, 0x24003e2c, 0x00a98041, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98042, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98043, 0x00140014 }, |
{ 0x00802048, 0xb8203e2d, 0x00a98044, 0xfffbfffb }, |
{ 0x00400040, 0x2400462c, 0x00698080, 0x00698085 }, |
{ 0x00400048, 0x24003e2c, 0x00698081, 0xfffbfffb }, |
{ 0x00400048, 0x24003e2c, 0x00698082, 0x00140014 }, |
{ 0x00400048, 0x24003e2c, 0x00698083, 0x00140014 }, |
{ 0x00400048, 0xb8403e2d, 0x00698084, 0xfffbfffb }, |
{ 0x00000401, 0x220c0060, 0x00000000, 0x04e004d0 }, |
{ 0x00000c01, 0x22000060, 0x00000000, 0x04d004c8 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04e004d8 }, |
{ 0x00000801, 0x22080060, 0x00000000, 0x04f004e8 }, |
{ 0x00800040, 0x24003dac, 0x00b104c0, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x00b104e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed9800, 0x00140014 }, |
{ 0x00010001, 0x220c0168, 0x00000000, 0x05400540 }, |
{ 0x00110001, 0x220c0168, 0x00000000, 0x04c004c0 }, |
{ 0x00800048, 0x24003dac, 0x01e98000, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01e98020, 0x00010001 }, |
{ 0x00800048, 0x24003dac, 0x01e98800, 0x00140014 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000060 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000022 }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010001, 0x220e0168, 0x02000000, 0x05400540 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x00800040, 0x24003e2c, 0x01e98000, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98001, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98002, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98003, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98004, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98005, 0x00010001 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x03600010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x00400401, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x00400840, 0x22083d2c, 0x0069044c, 0x00100010 }, |
{ 0x00610040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00800040, 0x24003e2c, 0x01e983e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e993e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e99000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e99020, 0x00010001 }, |
{ 0x00000001, 0x220e0168, 0x00000000, 0x05400540 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x00400001, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x01400010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01400010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00010001 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00100010 }, |
{ 0x00800001, 0x25400229, 0x01e98000, 0x00000000 }, |
{ 0x80800042, 0x45404631, 0x00d20540, 0x00d204c0 }, |
{ 0x00000001, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x00400001, 0xd8000231, 0x008a0540, 0x00000000 }, |
{ 0x00400001, 0xd8100231, 0x008a0548, 0x00000000 }, |
{ 0x00400001, 0xd8200231, 0x008a0550, 0x00000000 }, |
{ 0x00400001, 0xd8300231, 0x008a0558, 0x00000000 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00600041, 0x24002628, 0x00898000, 0x00000540 }, |
{ 0x00600048, 0x24002628, 0x00898002, 0x00000542 }, |
{ 0x00600048, 0x24002628, 0x00898008, 0x00000544 }, |
{ 0x00600048, 0x2540262d, 0x0089800a, 0x00000546 }, |
{ 0x00400401, 0xbc0001a9, 0x00690540, 0x00000000 }, |
{ 0x00400801, 0xbc1001a9, 0x00690548, 0x00000000 }, |
{ 0x01000010, 0x20003d2c, 0x00000022, 0x00030003 }, |
{ 0x01000040, 0x20223d29, 0x02000022, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00080008 }, |
{ 0x00110040, 0x24540c21, 0x00000454, 0x00080008 }, |
{ 0x00010040, 0x24540c21, 0x00000454, 0x00180038 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffee6 }, |
{ 0x01800010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0xffe0ffe0 }, |
{ 0x00010001, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00110001, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00000001, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00800040, 0x24003dac, 0x00b19c00, 0x00200020 }, |
{ 0x00800040, 0x24203dac, 0x00b19c20, 0x00200020 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00060006 }, |
{ 0x8080000c, 0xdc203d91, 0x00b10420, 0x00060006 }, |
{ 0x02000040, 0x210e3d29, 0x0200010e, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00040004 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffcf8 }, |
{ 0x01000005, 0x25643e2d, 0x00000060, 0x00c000c0 }, |
{ 0x01000010, 0x20003dac, 0x02000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00a02001, 0x46400231, 0x00d20780, 0x00000000 }, |
{ 0x00a02001, 0x46800231, 0x00d207c0, 0x00000000 }, |
{ 0x00a02001, 0x46c00231, 0x00d20480, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000007e }, |
{ 0x80a02042, 0x46404631, 0x00d20640, 0x00d20780 }, |
{ 0x80a02042, 0x46804631, 0x00d20680, 0x00d207c0 }, |
{ 0x80a02042, 0x46c04631, 0x00d206c0, 0x00d20480 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000076 }, |
{ 0x01000010, 0x20003dac, 0x02000564, 0x00800080 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xffffffe4 }, |
{ 0x00200401, 0x256801ed, 0x00000000, 0x00200020 }, |
{ 0x00200801, 0x256c01ed, 0x00000000, 0x00060006 }, |
{ 0x00400001, 0x258001ed, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x45a001ad, 0x00058c00, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000028 }, |
{ 0x02600005, 0x20006e28, 0x02008c0c, 0x88848421 }, |
{ 0x0220000c, 0x25663dad, 0x00000458, 0x00010001 }, |
{ 0x0000000c, 0x25643dad, 0x00000564, 0x00060006 }, |
{ 0x00310001, 0x25c401ad, 0x00000458, 0x00000000 }, |
{ 0x00210001, 0x25c00061, 0x00000000, 0x00010001 }, |
{ 0x00310040, 0x25c03dad, 0x004545c4, 0x00010001 }, |
{ 0x00610001, 0x25a00061, 0x02000000, 0x00000080 }, |
{ 0x00710001, 0x45a002ad, 0x02ae8c00, 0x00000000 }, |
{ 0x00710001, 0x45a202ad, 0x02ae8c01, 0x00000000 }, |
{ 0x00800041, 0x25a035ad, 0x00b105a0, 0x000905c0 }, |
{ 0x01200010, 0x20003e2c, 0x0245006e, 0x00000000 }, |
{ 0x00310009, 0x244c45ad, 0x02000564, 0x0045006e }, |
{ 0x00210001, 0x244c01ed, 0x02000000, 0x00000000 }, |
{ 0x0031000c, 0x244c3dad, 0x0245044c, 0x00010001 }, |
{ 0x00200009, 0x256835ad, 0x0045044c, 0x00000566 }, |
{ 0x00210040, 0x256835ad, 0x02450568, 0x00000566 }, |
{ 0x00200040, 0x256c362d, 0x0045006e, 0x00000566 }, |
{ 0x00400040, 0x240035ac, 0x00ab05a2, 0x00ab05a6 }, |
{ 0x00400040, 0x2400358c, 0x00690400, 0x00000566 }, |
{ 0x0040000c, 0x2580358d, 0x00690400, 0x00000566 }, |
{ 0x00800041, 0x2400362c, 0x00d20640, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d20660, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d20780, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207a0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x464035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x466035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d20680, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d206a0, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d207c0, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207e0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x468035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x46a035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d206c0, 0x000705a8 }, |
{ 0x00800041, 0x2420362c, 0x00d206e0, 0x000705a8 }, |
{ 0x00800048, 0x2400362c, 0x00d20480, 0x000705ac }, |
{ 0x00800048, 0x2420362c, 0x00d204a0, 0x000705ac }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x0000056a }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x0000056a }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056e }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056e }, |
{ 0x80800040, 0x46c035b1, 0x00b104c0, 0x00050582 }, |
{ 0x80800040, 0x46e035b1, 0x00b104e0, 0x00050582 }, |
{ 0x01800005, 0x20003d2c, 0x02000020, 0x00020002 }, |
{ 0x80800040, 0xd00045b1, 0x00b19000, 0x00d20640 }, |
{ 0x80800040, 0xd02045b1, 0x00b19020, 0x00d20660 }, |
{ 0x80800040, 0xd04045b1, 0x00b19040, 0x00d20680 }, |
{ 0x80800040, 0xd06045b1, 0x00b19060, 0x00d206a0 }, |
{ 0x00000040, 0x22083d8c, 0x00000208, 0x00800080 }, |
{ 0x80400040, 0xd40045b1, 0x00699400, 0x00ab06c0 }, |
{ 0x80400040, 0xd48045b1, 0x00699480, 0x00ab06c2 }, |
{ 0x80400040, 0xd42045b1, 0x00699420, 0x00ab06e0 }, |
{ 0x80400040, 0xd4a045b1, 0x006994a0, 0x00ab06e2 }, |
{ 0x80400040, 0xd41045b1, 0x00699410, 0x00ab06d0 }, |
{ 0x80400040, 0xd49045b1, 0x00699490, 0x00ab06d2 }, |
{ 0x80400040, 0xd43045b1, 0x00699430, 0x00ab06f0 }, |
{ 0x80400040, 0xd4b045b1, 0x006994b0, 0x00ab06f2 }, |
{ 0x00000040, 0x220a3d8c, 0x0000020a, 0x00080008 }, |
{ 0x00110040, 0x220a3d8c, 0x0200020a, 0x00300030 }, |
{ 0x01000010, 0x20003d2c, 0x02000020, 0x00060006 }, |
{ 0x00000040, 0x20203d29, 0x00000020, 0x00020002 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x00100001 }, |
{ 0x00000040, 0x220c358c, 0x0000020c, 0x0000003a }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffc36 }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x220201ec, 0x00000000, 0x01c001c0 }, |
{ 0x00800401, 0x20400236, 0x01ee8000, 0x00000000 }, |
{ 0x00800801, 0x20500236, 0x01ee8010, 0x00000000 }, |
{ 0x00800401, 0x20600236, 0x01ee8020, 0x00000000 }, |
{ 0x00800801, 0x20700236, 0x01ee8030, 0x00000000 }, |
{ 0x00800401, 0x20800236, 0x01ee8040, 0x00000000 }, |
{ 0x00800801, 0x20900236, 0x01ee8050, 0x00000000 }, |
{ 0x00800401, 0x20a00236, 0x01ee8060, 0x00000000 }, |
{ 0x00800801, 0x20b00236, 0x01ee8070, 0x00000000 }, |
{ 0x00800401, 0x20c00236, 0x01ee8100, 0x00000000 }, |
{ 0x00800801, 0x20d00236, 0x01ee8110, 0x00000000 }, |
{ 0x00800401, 0x20e00236, 0x01ee8120, 0x00000000 }, |
{ 0x00800801, 0x20f00236, 0x01ee8130, 0x00000000 }, |
{ 0x00800401, 0x21000236, 0x01ee8140, 0x00000000 }, |
{ 0x00800801, 0x21100236, 0x01ee8150, 0x00000000 }, |
{ 0x00800401, 0x21200236, 0x01ee8160, 0x00000000 }, |
{ 0x00800801, 0x21300236, 0x01ee8170, 0x00000000 }, |
{ 0x00200401, 0x204001a5, 0x00450064, 0x00000000 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x000f000f }, |
{ 0x01600031, 0x21401c21, 0x508d0040, 0x1218a000 }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x03400340 }, |
{ 0x00800401, 0x41600236, 0x00d28000, 0x00000000 }, |
{ 0x00800801, 0x41610236, 0x00d28080, 0x00000000 }, |
{ 0x00800401, 0x41800236, 0x00d28020, 0x00000000 }, |
{ 0x00800801, 0x41810236, 0x00d280a0, 0x00000000 }, |
{ 0x00800401, 0x41a00236, 0x00d28040, 0x00000000 }, |
{ 0x00800801, 0x41a10236, 0x00d280c0, 0x00000000 }, |
{ 0x00800401, 0x41c00236, 0x00d28060, 0x00000000 }, |
{ 0x00800801, 0x41c10236, 0x00d280e0, 0x00000000 }, |
{ 0x0000040c, 0x20443ca5, 0x00000044, 0x00010001 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x0007000f }, |
{ 0x0a600031, 0x21601c21, 0x508d0040, 0x0a18a001 }, |
{ 0x00000001, 0x21400021, 0x00000140, 0x00000000 }, |
{ 0x00000001, 0x21600021, 0x00000160, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00600001, 0x20400021, 0x008d0000, 0x00000000 }, |
{ 0x00000005, 0x20203e2d, 0x00000061, 0x001f001f }, |
{ 0x00200009, 0x20643e2d, 0x00450064, 0x00040004 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00000000 }, |
{ 0x01000010, 0x20003dac, 0x00000020, 0x00160016 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x01200010, 0x20003e2c, 0x0200006c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000024 }, |
{ 0x00800009, 0x25403dad, 0x00050064, 0x00020002 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00180018 }, |
{ 0x00200040, 0x45483dad, 0x00660548, 0x00100010 }, |
{ 0x00200040, 0x45523dad, 0x00660552, 0x00100010 }, |
{ 0x00400040, 0x25583dad, 0x00690558, 0x00100010 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0x00200020 }, |
{ 0x00800040, 0x20a035ad, 0x00b100a0, 0x00b10540 }, |
{ 0x00600040, 0x45423dad, 0x00ae0542, 0x00200020 }, |
{ 0x00800040, 0x20e035ad, 0x00b100e0, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0xffe0ffe0 }, |
{ 0x00800040, 0x20c035ad, 0x00b100c0, 0x00b10540 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x06600010, 0x20003dac, 0x02000020, 0x00030003 }, |
{ 0x00000001, 0x206c0171, 0x00000000, 0x00000000 }, |
{ 0x00610001, 0x208000a5, 0x02050080, 0x00000000 }, |
{ 0x00610001, 0x212000a5, 0x02090100, 0x00000000 }, |
{ 0x00410001, 0x211000a5, 0x02690100, 0x00000000 }, |
{ 0x00200009, 0x25403dad, 0x00450064, 0x00020002 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00050540 }, |
{ 0x00200040, 0x40883dad, 0x00660088, 0x00200020 }, |
{ 0x00200040, 0x40923dad, 0x00660092, 0x00200020 }, |
{ 0x00400040, 0x20983dad, 0x00690098, 0x00200020 }, |
{ 0x00200401, 0x22080060, 0x00000000, 0x03400140 }, |
{ 0x00000c01, 0x220c0060, 0x00000000, 0x04400080 }, |
{ 0x00000801, 0x22040060, 0x00000000, 0x01000070 }, |
{ 0x00000005, 0x203e2e29, 0x00000063, 0x00010001 }, |
{ 0x00000001, 0x20200169, 0x00000000, 0x00000000 }, |
{ 0x0000000c, 0x2458262d, 0x0000006d, 0x00000020 }, |
{ 0x00000001, 0x210e0169, 0x00000000, 0x00010001 }, |
{ 0x00000005, 0x24583dad, 0x00000458, 0x00030003 }, |
{ 0x01000010, 0x200035ac, 0x0000010e, 0x00000458 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000316 }, |
{ 0x01000010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00010401, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00010805, 0x245a3e2d, 0x02008800, 0x007f007f }, |
{ 0x00110401, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00110805, 0x245a3e2d, 0x02008804, 0x007f007f }, |
{ 0x00010005, 0x245c3e2d, 0x02008800, 0x00800080 }, |
{ 0x00110005, 0x245c3e2d, 0x02008804, 0x00800080 }, |
{ 0x00000009, 0x245c3dad, 0x0000045c, 0x00010001 }, |
{ 0x0000000c, 0x211e362d, 0x0000006c, 0x00000020 }, |
{ 0x00000040, 0x240035ac, 0x0000003e, 0x0000045c }, |
{ 0x01000010, 0x20003d8c, 0x00210400, 0x00010001 }, |
{ 0x01000010, 0x20003d8c, 0x02210400, 0x01000100 }, |
{ 0x00000001, 0x203c01ed, 0x00000000, 0x00000000 }, |
{ 0x00010001, 0x203c01ed, 0x00000000, 0x00020002 }, |
{ 0x00010001, 0x203c01ed, 0x02000000, 0xfffefffe }, |
{ 0x00000040, 0x20780d21, 0x0000045a, 0x0208e602 }, |
{ 0x00000040, 0x20782421, 0x00000078, 0x0000045c }, |
{ 0x02000005, 0x20003dac, 0x0200011e, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000001c0 }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00700000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c000c }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x0007000c }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00110040, 0x20441da5, 0x02000442, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c0007 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00070007 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000040, 0xb80235ad, 0x00009802, 0x0000003c }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x01600006, 0x20003dac, 0x0000044a, 0x00000000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00010040, 0x22000c20, 0x00000078, 0x00200010 }, |
{ 0x00110040, 0x22000c20, 0x00000078, 0x00300010 }, |
{ 0x00010001, 0x20480061, 0x00000000, 0x00030009 }, |
{ 0x00110001, 0x20480061, 0x00000000, 0x00040009 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001a }, |
{ 0x00600001, 0x26220231, 0x008d05c0, 0x00000000 }, |
{ 0x00600401, 0x26120231, 0x008d05b8, 0x00000000 }, |
{ 0x00600801, 0x26020231, 0x008d05b0, 0x00000000 }, |
{ 0x00600401, 0x25f20231, 0x008d05a8, 0x00000000 }, |
{ 0x00600801, 0x25e20231, 0x008d05a0, 0x00000000 }, |
{ 0x00600401, 0x25d20231, 0x008d0598, 0x00000000 }, |
{ 0x00600801, 0x25c20231, 0x008d0590, 0x00000000 }, |
{ 0x00600401, 0x25b20231, 0x008d0588, 0x00000000 }, |
{ 0x00600801, 0x25a20231, 0x008d0580, 0x00000000 }, |
{ 0x00600401, 0x25920231, 0x008d0578, 0x00000000 }, |
{ 0x00600801, 0x25820231, 0x008d0570, 0x00000000 }, |
{ 0x00600001, 0x25720231, 0x008d0568, 0x00000000 }, |
{ 0x00600001, 0x25620231, 0x008d0560, 0x00000000 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00810001, 0xbc000229, 0x02ad8000, 0x00000000 }, |
{ 0x00810001, 0xbc200229, 0x02ad8020, 0x00000000 }, |
{ 0x00810001, 0xbc400229, 0x02ad8040, 0x00000000 }, |
{ 0x00810001, 0xbc600229, 0x02ad8060, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000012a }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000066 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000064 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04a00480 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00a02040, 0x2400462c, 0x00ad8000, 0x00ad8005 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8001, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8002, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8003, 0x00140014 }, |
{ 0x00a02048, 0xb8003e2d, 0x00ad8004, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8040, 0x00ad8045 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8041, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8042, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8043, 0x00140014 }, |
{ 0x00a02048, 0xb8403e2d, 0x00ad8044, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8080, 0x00ad8085 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8081, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8082, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8083, 0x00140014 }, |
{ 0x00a02048, 0xb8803e2d, 0x00ad8084, 0xfffbfffb }, |
{ 0x00600040, 0x2400462c, 0x008d80c0, 0x008d80c5 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c1, 0xfffbfffb }, |
{ 0x00600048, 0x24003e2c, 0x008d80c2, 0x00140014 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c3, 0x00140014 }, |
{ 0x00600048, 0xb8c03e2d, 0x008d80c4, 0xfffbfffb }, |
{ 0x00000401, 0x22000060, 0x00000000, 0x04a00480 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04a00490 }, |
{ 0x00010802, 0x220c2d28, 0x00000454, 0x04800480 }, |
{ 0x00a02040, 0x24003dac, 0x00b18000, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8800, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8820, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18020, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8820, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8840, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18040, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x000a000a }, |
{ 0x00a02040, 0x24003dac, 0x00b18040, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18060, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8860, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8880, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18080, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8880, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed88a0, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x000000b4 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000004c }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000004a }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010002, 0x220c2d28, 0x02000454, 0x04800480 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8000, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8001, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8021, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8002, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8022, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8003, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8023, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8004, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8024, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8005, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8025, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8040, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8060, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8041, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8061, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8042, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8062, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8043, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8063, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8044, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8064, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8045, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8065, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000042 }, |
{ 0x00200401, 0x22000128, 0x0066044c, 0x00000000 }, |
{ 0x00200c01, 0x22040128, 0x0045044e, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x03400010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220c0168, 0x02000000, 0x04800480 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad83e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8be0, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8800, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8800, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8820, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8040, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8840, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8860, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8060, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8860, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8880, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001c }, |
{ 0x00200401, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x01200010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01200010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00210040, 0x22002d08, 0x00450200, 0x00010001 }, |
{ 0x00210040, 0x22002d08, 0x02450200, 0x00100010 }, |
{ 0x00800001, 0xb8000229, 0x01ed8000, 0x00000000 }, |
{ 0x00800001, 0xb8200229, 0x01ed8020, 0x00000000 }, |
{ 0x00800001, 0xb8400229, 0x01ed8040, 0x00000000 }, |
{ 0x00800001, 0xb8600229, 0x01ed8060, 0x00000000 }, |
{ 0x80800042, 0xd8004631, 0x00d29800, 0x00d20480 }, |
{ 0x80800042, 0xd8204631, 0x00d29820, 0x00d204a0 }, |
{ 0x80800042, 0xd8404631, 0x00d29840, 0x00d204c0 }, |
{ 0x80800042, 0xd8604631, 0x00d29860, 0x00d204e0 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000c01, 0x220201e8, 0x00000000, 0x07100710 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00200040, 0x244c3d09, 0x00450200, 0x00100010 }, |
{ 0x00800041, 0x24002628, 0x00ad8000, 0x00000540 }, |
{ 0x00800041, 0x24202628, 0x00ad8020, 0x00000540 }, |
{ 0x00800048, 0x24002628, 0x00ad8002, 0x00000542 }, |
{ 0x00800048, 0x24202628, 0x00ad8022, 0x00000542 }, |
{ 0x00200001, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00800048, 0x24002628, 0x01ed8000, 0x00000544 }, |
{ 0x00800048, 0x24202628, 0x01ed8020, 0x00000544 }, |
{ 0x00800048, 0xbc002629, 0x01ed8002, 0x00000546 }, |
{ 0x00801048, 0xbc202629, 0x01ed8022, 0x00000546 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000128 }, |
{ 0x00000001, 0x20220169, 0x00000000, 0x00040004 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00500000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x00080008 }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00030008 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000040, 0xb80235ad, 0x00009802, 0x0000003c }, |
{ 0x00000040, 0x22000c20, 0x00000078, 0x00100010 }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00000001, 0x20480061, 0x00000000, 0x00020005 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00410001, 0xbc000229, 0x02698000, 0x00000000 }, |
{ 0x00410001, 0xbc100229, 0x02698010, 0x00000000 }, |
{ 0x00410001, 0xbc200229, 0x02698020, 0x00000000 }, |
{ 0x00410001, 0xbc300229, 0x02698030, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000be }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000044 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000042 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04d004c0 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00802040, 0x2400462c, 0x00a98000, 0x00a98005 }, |
{ 0x00802048, 0x24003e2c, 0x00a98001, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98002, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98003, 0x00140014 }, |
{ 0x00802048, 0xb8003e2d, 0x00a98004, 0xfffbfffb }, |
{ 0x00802040, 0x2400462c, 0x00a98040, 0x00a98045 }, |
{ 0x00802048, 0x24003e2c, 0x00a98041, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98042, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98043, 0x00140014 }, |
{ 0x00802048, 0xb8203e2d, 0x00a98044, 0xfffbfffb }, |
{ 0x00400040, 0x2400462c, 0x00698080, 0x00698085 }, |
{ 0x00400048, 0x24003e2c, 0x00698081, 0xfffbfffb }, |
{ 0x00400048, 0x24003e2c, 0x00698082, 0x00140014 }, |
{ 0x00400048, 0x24003e2c, 0x00698083, 0x00140014 }, |
{ 0x00400048, 0xb8403e2d, 0x00698084, 0xfffbfffb }, |
{ 0x00000401, 0x220c0060, 0x00000000, 0x04e004d0 }, |
{ 0x00000c01, 0x22000060, 0x00000000, 0x04d004c8 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04e004d8 }, |
{ 0x00000801, 0x22080060, 0x00000000, 0x04f004e8 }, |
{ 0x00800040, 0x24003dac, 0x00b104c0, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x00b104e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed9800, 0x00140014 }, |
{ 0x00010001, 0x220c0168, 0x00000000, 0x05400540 }, |
{ 0x00110001, 0x220c0168, 0x00000000, 0x04c004c0 }, |
{ 0x00800048, 0x24003dac, 0x01e98000, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01e98020, 0x00010001 }, |
{ 0x00800048, 0x24003dac, 0x01e98800, 0x00140014 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000060 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000022 }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010001, 0x220e0168, 0x02000000, 0x05400540 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x00800040, 0x24003e2c, 0x01e98000, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98001, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98002, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98003, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98004, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98005, 0x00010001 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x03600010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x00400401, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x00400840, 0x22083d2c, 0x0069044c, 0x00100010 }, |
{ 0x00610040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00800040, 0x24003e2c, 0x01e983e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e993e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e99000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e99020, 0x00010001 }, |
{ 0x00000001, 0x220e0168, 0x00000000, 0x05400540 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x00400001, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x01400010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01400010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00010001 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00100010 }, |
{ 0x00800001, 0x25400229, 0x01e98000, 0x00000000 }, |
{ 0x80800042, 0x45404631, 0x00d20540, 0x00d204c0 }, |
{ 0x00000001, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x00400001, 0xd8000231, 0x008a0540, 0x00000000 }, |
{ 0x00400001, 0xd8100231, 0x008a0548, 0x00000000 }, |
{ 0x00400001, 0xd8200231, 0x008a0550, 0x00000000 }, |
{ 0x00400001, 0xd8300231, 0x008a0558, 0x00000000 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00600041, 0x24002628, 0x00898000, 0x00000540 }, |
{ 0x00600048, 0x24002628, 0x00898002, 0x00000542 }, |
{ 0x00600048, 0x24002628, 0x00898008, 0x00000544 }, |
{ 0x00600048, 0x2540262d, 0x0089800a, 0x00000546 }, |
{ 0x00400401, 0xbc0001a9, 0x00690540, 0x00000000 }, |
{ 0x00400801, 0xbc1001a9, 0x00690548, 0x00000000 }, |
{ 0x01000010, 0x20003d2c, 0x00000022, 0x00030003 }, |
{ 0x01000040, 0x20223d29, 0x02000022, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00080008 }, |
{ 0x00110040, 0x24540c21, 0x00000454, 0x00080008 }, |
{ 0x00010040, 0x24540c21, 0x00000454, 0x00180038 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffee4 }, |
{ 0x01800010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0xffe0ffe0 }, |
{ 0x00010001, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00110001, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00000001, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00800040, 0x24003dac, 0x00b19c00, 0x00200020 }, |
{ 0x00800040, 0x24203dac, 0x00b19c20, 0x00200020 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00060006 }, |
{ 0x8080000c, 0xdc203d91, 0x00b10420, 0x00060006 }, |
{ 0x02000040, 0x210e3d29, 0x0200010e, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00040004 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffce0 }, |
{ 0x01000005, 0x25643e2d, 0x00000060, 0x00c000c0 }, |
{ 0x01000010, 0x20003dac, 0x02000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00a02001, 0x46400231, 0x00d20780, 0x00000000 }, |
{ 0x00a02001, 0x46800231, 0x00d207c0, 0x00000000 }, |
{ 0x00a02001, 0x46c00231, 0x00d20480, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000007e }, |
{ 0x80a02042, 0x46404631, 0x00d20640, 0x00d20780 }, |
{ 0x80a02042, 0x46804631, 0x00d20680, 0x00d207c0 }, |
{ 0x80a02042, 0x46c04631, 0x00d206c0, 0x00d20480 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000076 }, |
{ 0x01000010, 0x20003dac, 0x02000564, 0x00800080 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xffffffe4 }, |
{ 0x00200401, 0x256801ed, 0x00000000, 0x00200020 }, |
{ 0x00200801, 0x256c01ed, 0x00000000, 0x00060006 }, |
{ 0x00400001, 0x258001ed, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x45a001ad, 0x00058c00, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000028 }, |
{ 0x02600005, 0x20006e28, 0x02008c0c, 0x88848421 }, |
{ 0x0220000c, 0x25663dad, 0x00000458, 0x00010001 }, |
{ 0x0000000c, 0x25643dad, 0x00000564, 0x00060006 }, |
{ 0x00310001, 0x25c401ad, 0x00000458, 0x00000000 }, |
{ 0x00210001, 0x25c00061, 0x00000000, 0x00010001 }, |
{ 0x00310040, 0x25c03dad, 0x004545c4, 0x00010001 }, |
{ 0x00610001, 0x25a00061, 0x02000000, 0x00000080 }, |
{ 0x00710001, 0x45a002ad, 0x02ae8c00, 0x00000000 }, |
{ 0x00710001, 0x45a202ad, 0x02ae8c01, 0x00000000 }, |
{ 0x00800041, 0x25a035ad, 0x00b105a0, 0x000905c0 }, |
{ 0x01200010, 0x20003e2c, 0x0245006e, 0x00000000 }, |
{ 0x00310009, 0x244c45ad, 0x02000564, 0x0045006e }, |
{ 0x00210001, 0x244c01ed, 0x02000000, 0x00000000 }, |
{ 0x0031000c, 0x244c3dad, 0x0245044c, 0x00010001 }, |
{ 0x00200009, 0x256835ad, 0x0045044c, 0x00000566 }, |
{ 0x00210040, 0x256835ad, 0x02450568, 0x00000566 }, |
{ 0x00200040, 0x256c362d, 0x0045006e, 0x00000566 }, |
{ 0x00400040, 0x240035ac, 0x00ab05a2, 0x00ab05a6 }, |
{ 0x00400040, 0x2400358c, 0x00690400, 0x00000566 }, |
{ 0x0040000c, 0x2580358d, 0x00690400, 0x00000566 }, |
{ 0x00800041, 0x2400362c, 0x00d20640, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d20660, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d20780, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207a0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x464035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x466035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d20680, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d206a0, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d207c0, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207e0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x468035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x46a035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d206c0, 0x000705a8 }, |
{ 0x00800041, 0x2420362c, 0x00d206e0, 0x000705a8 }, |
{ 0x00800048, 0x2400362c, 0x00d20480, 0x000705ac }, |
{ 0x00800048, 0x2420362c, 0x00d204a0, 0x000705ac }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x0000056a }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x0000056a }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056e }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056e }, |
{ 0x80800040, 0x46c035b1, 0x00b104c0, 0x00050582 }, |
{ 0x80800040, 0x46e035b1, 0x00b104e0, 0x00050582 }, |
{ 0x01800005, 0x20003d2c, 0x02000020, 0x00020002 }, |
{ 0x80800040, 0xd00045b1, 0x00b19000, 0x00d20640 }, |
{ 0x80800040, 0xd02045b1, 0x00b19020, 0x00d20660 }, |
{ 0x80800040, 0xd04045b1, 0x00b19040, 0x00d20680 }, |
{ 0x80800040, 0xd06045b1, 0x00b19060, 0x00d206a0 }, |
{ 0x00000040, 0x22083d8c, 0x00000208, 0x00800080 }, |
{ 0x80400040, 0xd40045b1, 0x00699400, 0x00ab06c0 }, |
{ 0x80400040, 0xd48045b1, 0x00699480, 0x00ab06c2 }, |
{ 0x80400040, 0xd42045b1, 0x00699420, 0x00ab06e0 }, |
{ 0x80400040, 0xd4a045b1, 0x006994a0, 0x00ab06e2 }, |
{ 0x80400040, 0xd41045b1, 0x00699410, 0x00ab06d0 }, |
{ 0x80400040, 0xd49045b1, 0x00699490, 0x00ab06d2 }, |
{ 0x80400040, 0xd43045b1, 0x00699430, 0x00ab06f0 }, |
{ 0x80400040, 0xd4b045b1, 0x006994b0, 0x00ab06f2 }, |
{ 0x00000040, 0x220a3d8c, 0x0000020a, 0x00080008 }, |
{ 0x00110040, 0x220a3d8c, 0x0200020a, 0x00300030 }, |
{ 0x01000010, 0x20003d2c, 0x02000020, 0x00060006 }, |
{ 0x00000040, 0x20203d29, 0x00000020, 0x00020002 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x00100001 }, |
{ 0x00000040, 0x220c358c, 0x0000020c, 0x0000003a }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffc1e }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x220201ec, 0x00000000, 0x01c001c0 }, |
{ 0x00800401, 0x20400236, 0x01ee8000, 0x00000000 }, |
{ 0x00800801, 0x20500236, 0x01ee8010, 0x00000000 }, |
{ 0x00800401, 0x20600236, 0x01ee8020, 0x00000000 }, |
{ 0x00800801, 0x20700236, 0x01ee8030, 0x00000000 }, |
{ 0x00800401, 0x20800236, 0x01ee8040, 0x00000000 }, |
{ 0x00800801, 0x20900236, 0x01ee8050, 0x00000000 }, |
{ 0x00800401, 0x20a00236, 0x01ee8060, 0x00000000 }, |
{ 0x00800801, 0x20b00236, 0x01ee8070, 0x00000000 }, |
{ 0x00800401, 0x20c00236, 0x01ee8100, 0x00000000 }, |
{ 0x00800801, 0x20d00236, 0x01ee8110, 0x00000000 }, |
{ 0x00800401, 0x20e00236, 0x01ee8120, 0x00000000 }, |
{ 0x00800801, 0x20f00236, 0x01ee8130, 0x00000000 }, |
{ 0x00800401, 0x21000236, 0x01ee8140, 0x00000000 }, |
{ 0x00800801, 0x21100236, 0x01ee8150, 0x00000000 }, |
{ 0x00800401, 0x21200236, 0x01ee8160, 0x00000000 }, |
{ 0x00800801, 0x21300236, 0x01ee8170, 0x00000000 }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x1218a600 }, |
{ 0x00200401, 0x204001a5, 0x00450064, 0x00000000 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x000f000f }, |
{ 0x01600031, 0x21400021, 0x508d0040, 0x00000200 }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x03400340 }, |
{ 0x00800401, 0x41600236, 0x00d28000, 0x00000000 }, |
{ 0x00800801, 0x41610236, 0x00d28080, 0x00000000 }, |
{ 0x00800401, 0x41800236, 0x00d28020, 0x00000000 }, |
{ 0x00800801, 0x41810236, 0x00d280a0, 0x00000000 }, |
{ 0x00800401, 0x41a00236, 0x00d28040, 0x00000000 }, |
{ 0x00800801, 0x41a10236, 0x00d280c0, 0x00000000 }, |
{ 0x00800401, 0x41c00236, 0x00d28060, 0x00000000 }, |
{ 0x00800801, 0x41c10236, 0x00d280e0, 0x00000000 }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x0a18a601 }, |
{ 0x0000040c, 0x20443ca5, 0x00000044, 0x00010001 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x0007000f }, |
{ 0x0a600031, 0x21600021, 0x508d0040, 0x00000200 }, |
{ 0x00000001, 0x21400021, 0x00000140, 0x00000000 }, |
{ 0x00000001, 0x21600021, 0x00000160, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0000, 0x00000000 }, |
{ 0x00000005, 0x20203e2d, 0x00000061, 0x001f001f }, |
{ 0x00200009, 0x20643e2d, 0x00450064, 0x00040004 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00000000 }, |
{ 0x01000010, 0x20003dac, 0x00000020, 0x00160016 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x01200010, 0x20003e2c, 0x0200006c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000024 }, |
{ 0x00800009, 0x25403dad, 0x00050064, 0x00020002 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00180018 }, |
{ 0x00200040, 0x45483dad, 0x00660548, 0x00100010 }, |
{ 0x00200040, 0x45523dad, 0x00660552, 0x00100010 }, |
{ 0x00400040, 0x25583dad, 0x00690558, 0x00100010 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0x00200020 }, |
{ 0x00800040, 0x20a035ad, 0x00b100a0, 0x00b10540 }, |
{ 0x00600040, 0x45423dad, 0x00ae0542, 0x00200020 }, |
{ 0x00800040, 0x20e035ad, 0x00b100e0, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0xffe0ffe0 }, |
{ 0x00800040, 0x20c035ad, 0x00b100c0, 0x00b10540 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x06600010, 0x20003dac, 0x02000020, 0x00030003 }, |
{ 0x00000001, 0x206c0171, 0x00000000, 0x00000000 }, |
{ 0x00610001, 0x208000a5, 0x02050080, 0x00000000 }, |
{ 0x00610001, 0x212000a5, 0x02090100, 0x00000000 }, |
{ 0x00410001, 0x211000a5, 0x02690100, 0x00000000 }, |
{ 0x00200009, 0x25403dad, 0x00450064, 0x00020002 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00050540 }, |
{ 0x00200040, 0x40883dad, 0x00660088, 0x00200020 }, |
{ 0x00200040, 0x40923dad, 0x00660092, 0x00200020 }, |
{ 0x00400040, 0x20983dad, 0x00690098, 0x00200020 }, |
{ 0x00200401, 0x22080060, 0x00000000, 0x03400140 }, |
{ 0x00000c01, 0x220c0060, 0x00000000, 0x04400080 }, |
{ 0x00000801, 0x22040060, 0x00000000, 0x01000070 }, |
{ 0x02000005, 0x20002e28, 0x00000061, 0x00400040 }, |
{ 0x00010005, 0x203e2e29, 0x00000063, 0x00010001 }, |
{ 0x00110001, 0x203e0169, 0x00000000, 0x00030003 }, |
{ 0x00000001, 0x20200169, 0x00000000, 0x00000000 }, |
{ 0x0000000c, 0x2458262d, 0x0000006d, 0x00000020 }, |
{ 0x00000001, 0x210e0169, 0x00000000, 0x00010001 }, |
{ 0x00000005, 0x24583dad, 0x00000458, 0x00030003 }, |
{ 0x01000010, 0x200035ac, 0x0000010e, 0x00000458 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000031a }, |
{ 0x01000010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00010401, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00010805, 0x245a3e2d, 0x02008800, 0x007f007f }, |
{ 0x00110401, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00110805, 0x245a3e2d, 0x02008804, 0x007f007f }, |
{ 0x00010005, 0x245c3e2d, 0x02008800, 0x00800080 }, |
{ 0x00110005, 0x245c3e2d, 0x02008804, 0x00800080 }, |
{ 0x00000009, 0x245c3dad, 0x0000045c, 0x00010001 }, |
{ 0x0000000c, 0x211e362d, 0x0000006c, 0x00000020 }, |
{ 0x00000040, 0x240035ac, 0x0000003e, 0x0000045c }, |
{ 0x01000010, 0x20003d8c, 0x00210400, 0x00010001 }, |
{ 0x01000010, 0x20003d8c, 0x02210400, 0x01000100 }, |
{ 0x00000001, 0x203c01ed, 0x00000000, 0x00000000 }, |
{ 0x00010001, 0x203c01ed, 0x00000000, 0x00020002 }, |
{ 0x00010001, 0x203c01ed, 0x02000000, 0xfffefffe }, |
{ 0x02000005, 0x20002e28, 0x00000061, 0x00400040 }, |
{ 0x00010040, 0x244c0d21, 0x0000045a, 0x0208e602 }, |
{ 0x00110040, 0x20780d21, 0x0000045a, 0x0208a002 }, |
{ 0x00010040, 0x20782421, 0x0000044c, 0x0000045c }, |
{ 0x02000005, 0x20003dac, 0x0200011e, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000001c0 }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00700000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c000c }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x0007000c }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00110040, 0x20441da5, 0x02000442, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c0007 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00070007 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000040, 0xb80235ad, 0x00009802, 0x0000003c }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x01600006, 0x20003dac, 0x0000044a, 0x00000000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00010040, 0x22000c20, 0x00000078, 0x00200010 }, |
{ 0x00110040, 0x22000c20, 0x00000078, 0x00300010 }, |
{ 0x00010001, 0x20480061, 0x00000000, 0x00030009 }, |
{ 0x00110001, 0x20480061, 0x00000000, 0x00040009 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001a }, |
{ 0x00600001, 0x26220231, 0x008d05c0, 0x00000000 }, |
{ 0x00600401, 0x26120231, 0x008d05b8, 0x00000000 }, |
{ 0x00600801, 0x26020231, 0x008d05b0, 0x00000000 }, |
{ 0x00600401, 0x25f20231, 0x008d05a8, 0x00000000 }, |
{ 0x00600801, 0x25e20231, 0x008d05a0, 0x00000000 }, |
{ 0x00600401, 0x25d20231, 0x008d0598, 0x00000000 }, |
{ 0x00600801, 0x25c20231, 0x008d0590, 0x00000000 }, |
{ 0x00600401, 0x25b20231, 0x008d0588, 0x00000000 }, |
{ 0x00600801, 0x25a20231, 0x008d0580, 0x00000000 }, |
{ 0x00600401, 0x25920231, 0x008d0578, 0x00000000 }, |
{ 0x00600801, 0x25820231, 0x008d0570, 0x00000000 }, |
{ 0x00600001, 0x25720231, 0x008d0568, 0x00000000 }, |
{ 0x00600001, 0x25620231, 0x008d0560, 0x00000000 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00810001, 0xbc000229, 0x02ad8000, 0x00000000 }, |
{ 0x00810001, 0xbc200229, 0x02ad8020, 0x00000000 }, |
{ 0x00810001, 0xbc400229, 0x02ad8040, 0x00000000 }, |
{ 0x00810001, 0xbc600229, 0x02ad8060, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000012a }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000066 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000064 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04a00480 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00a02040, 0x2400462c, 0x00ad8000, 0x00ad8005 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8001, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8002, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8003, 0x00140014 }, |
{ 0x00a02048, 0xb8003e2d, 0x00ad8004, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8040, 0x00ad8045 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8041, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8042, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8043, 0x00140014 }, |
{ 0x00a02048, 0xb8403e2d, 0x00ad8044, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8080, 0x00ad8085 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8081, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8082, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8083, 0x00140014 }, |
{ 0x00a02048, 0xb8803e2d, 0x00ad8084, 0xfffbfffb }, |
{ 0x00600040, 0x2400462c, 0x008d80c0, 0x008d80c5 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c1, 0xfffbfffb }, |
{ 0x00600048, 0x24003e2c, 0x008d80c2, 0x00140014 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c3, 0x00140014 }, |
{ 0x00600048, 0xb8c03e2d, 0x008d80c4, 0xfffbfffb }, |
{ 0x00000401, 0x22000060, 0x00000000, 0x04a00480 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04a00490 }, |
{ 0x00010802, 0x220c2d28, 0x00000454, 0x04800480 }, |
{ 0x00a02040, 0x24003dac, 0x00b18000, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8800, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8820, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18020, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8820, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8840, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18040, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x000a000a }, |
{ 0x00a02040, 0x24003dac, 0x00b18040, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18060, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8860, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8880, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18080, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8880, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed88a0, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x000000b4 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000004c }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000004a }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010002, 0x220c2d28, 0x02000454, 0x04800480 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8000, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8001, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8021, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8002, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8022, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8003, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8023, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8004, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8024, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8005, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8025, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8040, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8060, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8041, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8061, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8042, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8062, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8043, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8063, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8044, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8064, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8045, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8065, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000042 }, |
{ 0x00200401, 0x22000128, 0x0066044c, 0x00000000 }, |
{ 0x00200c01, 0x22040128, 0x0045044e, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x03400010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220c0168, 0x02000000, 0x04800480 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad83e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8be0, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8800, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8800, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8820, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8040, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8840, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8860, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8060, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8860, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8880, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001c }, |
{ 0x00200401, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x01200010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01200010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00210040, 0x22002d08, 0x00450200, 0x00010001 }, |
{ 0x00210040, 0x22002d08, 0x02450200, 0x00100010 }, |
{ 0x00800001, 0xb8000229, 0x01ed8000, 0x00000000 }, |
{ 0x00800001, 0xb8200229, 0x01ed8020, 0x00000000 }, |
{ 0x00800001, 0xb8400229, 0x01ed8040, 0x00000000 }, |
{ 0x00800001, 0xb8600229, 0x01ed8060, 0x00000000 }, |
{ 0x80800042, 0xd8004631, 0x00d29800, 0x00d20480 }, |
{ 0x80800042, 0xd8204631, 0x00d29820, 0x00d204a0 }, |
{ 0x80800042, 0xd8404631, 0x00d29840, 0x00d204c0 }, |
{ 0x80800042, 0xd8604631, 0x00d29860, 0x00d204e0 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000c01, 0x220201e8, 0x00000000, 0x07100710 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00200040, 0x244c3d09, 0x00450200, 0x00100010 }, |
{ 0x00800041, 0x24002628, 0x00ad8000, 0x00000540 }, |
{ 0x00800041, 0x24202628, 0x00ad8020, 0x00000540 }, |
{ 0x00800048, 0x24002628, 0x00ad8002, 0x00000542 }, |
{ 0x00800048, 0x24202628, 0x00ad8022, 0x00000542 }, |
{ 0x00200001, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00800048, 0x24002628, 0x01ed8000, 0x00000544 }, |
{ 0x00800048, 0x24202628, 0x01ed8020, 0x00000544 }, |
{ 0x00800048, 0xbc002629, 0x01ed8002, 0x00000546 }, |
{ 0x00801048, 0xbc202629, 0x01ed8022, 0x00000546 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000128 }, |
{ 0x00000001, 0x20220169, 0x00000000, 0x00040004 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00500000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x00080008 }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00030008 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000040, 0xb80235ad, 0x00009802, 0x0000003c }, |
{ 0x00000040, 0x22000c20, 0x00000078, 0x00100010 }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00000001, 0x20480061, 0x00000000, 0x00020005 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00410001, 0xbc000229, 0x02698000, 0x00000000 }, |
{ 0x00410001, 0xbc100229, 0x02698010, 0x00000000 }, |
{ 0x00410001, 0xbc200229, 0x02698020, 0x00000000 }, |
{ 0x00410001, 0xbc300229, 0x02698030, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000be }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000044 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000042 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04d004c0 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00802040, 0x2400462c, 0x00a98000, 0x00a98005 }, |
{ 0x00802048, 0x24003e2c, 0x00a98001, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98002, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98003, 0x00140014 }, |
{ 0x00802048, 0xb8003e2d, 0x00a98004, 0xfffbfffb }, |
{ 0x00802040, 0x2400462c, 0x00a98040, 0x00a98045 }, |
{ 0x00802048, 0x24003e2c, 0x00a98041, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98042, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98043, 0x00140014 }, |
{ 0x00802048, 0xb8203e2d, 0x00a98044, 0xfffbfffb }, |
{ 0x00400040, 0x2400462c, 0x00698080, 0x00698085 }, |
{ 0x00400048, 0x24003e2c, 0x00698081, 0xfffbfffb }, |
{ 0x00400048, 0x24003e2c, 0x00698082, 0x00140014 }, |
{ 0x00400048, 0x24003e2c, 0x00698083, 0x00140014 }, |
{ 0x00400048, 0xb8403e2d, 0x00698084, 0xfffbfffb }, |
{ 0x00000401, 0x220c0060, 0x00000000, 0x04e004d0 }, |
{ 0x00000c01, 0x22000060, 0x00000000, 0x04d004c8 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04e004d8 }, |
{ 0x00000801, 0x22080060, 0x00000000, 0x04f004e8 }, |
{ 0x00800040, 0x24003dac, 0x00b104c0, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x00b104e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed9800, 0x00140014 }, |
{ 0x00010001, 0x220c0168, 0x00000000, 0x05400540 }, |
{ 0x00110001, 0x220c0168, 0x00000000, 0x04c004c0 }, |
{ 0x00800048, 0x24003dac, 0x01e98000, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01e98020, 0x00010001 }, |
{ 0x00800048, 0x24003dac, 0x01e98800, 0x00140014 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000060 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000022 }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010001, 0x220e0168, 0x02000000, 0x05400540 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x00800040, 0x24003e2c, 0x01e98000, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98001, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98002, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98003, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98004, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98005, 0x00010001 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x03600010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x00400401, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x00400840, 0x22083d2c, 0x0069044c, 0x00100010 }, |
{ 0x00610040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00800040, 0x24003e2c, 0x01e983e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e993e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e99000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e99020, 0x00010001 }, |
{ 0x00000001, 0x220e0168, 0x00000000, 0x05400540 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x00400001, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x01400010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01400010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00010001 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00100010 }, |
{ 0x00800001, 0x25400229, 0x01e98000, 0x00000000 }, |
{ 0x80800042, 0x45404631, 0x00d20540, 0x00d204c0 }, |
{ 0x00000001, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x00400001, 0xd8000231, 0x008a0540, 0x00000000 }, |
{ 0x00400001, 0xd8100231, 0x008a0548, 0x00000000 }, |
{ 0x00400001, 0xd8200231, 0x008a0550, 0x00000000 }, |
{ 0x00400001, 0xd8300231, 0x008a0558, 0x00000000 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00600041, 0x24002628, 0x00898000, 0x00000540 }, |
{ 0x00600048, 0x24002628, 0x00898002, 0x00000542 }, |
{ 0x00600048, 0x24002628, 0x00898008, 0x00000544 }, |
{ 0x00600048, 0x2540262d, 0x0089800a, 0x00000546 }, |
{ 0x00400401, 0xbc0001a9, 0x00690540, 0x00000000 }, |
{ 0x00400801, 0xbc1001a9, 0x00690548, 0x00000000 }, |
{ 0x01000010, 0x20003d2c, 0x00000022, 0x00030003 }, |
{ 0x01000040, 0x20223d29, 0x02000022, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00080008 }, |
{ 0x00110040, 0x24540c21, 0x00000454, 0x00080008 }, |
{ 0x00010040, 0x24540c21, 0x00000454, 0x00180038 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffee4 }, |
{ 0x01800010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0xffe0ffe0 }, |
{ 0x00010001, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00110001, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00000001, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00800040, 0x24003dac, 0x00b19c00, 0x00200020 }, |
{ 0x00800040, 0x24203dac, 0x00b19c20, 0x00200020 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00060006 }, |
{ 0x8080000c, 0xdc203d91, 0x00b10420, 0x00060006 }, |
{ 0x02000040, 0x210e3d29, 0x0200010e, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00040004 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffcdc }, |
{ 0x01000005, 0x25643e2d, 0x00000060, 0x00c000c0 }, |
{ 0x01000010, 0x20003dac, 0x02000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00a02001, 0x46400231, 0x00d20780, 0x00000000 }, |
{ 0x00a02001, 0x46800231, 0x00d207c0, 0x00000000 }, |
{ 0x00a02001, 0x46c00231, 0x00d20480, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000007e }, |
{ 0x80a02042, 0x46404631, 0x00d20640, 0x00d20780 }, |
{ 0x80a02042, 0x46804631, 0x00d20680, 0x00d207c0 }, |
{ 0x80a02042, 0x46c04631, 0x00d206c0, 0x00d20480 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000076 }, |
{ 0x01000010, 0x20003dac, 0x02000564, 0x00800080 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xffffffe4 }, |
{ 0x00200401, 0x256801ed, 0x00000000, 0x00200020 }, |
{ 0x00200801, 0x256c01ed, 0x00000000, 0x00060006 }, |
{ 0x00400001, 0x258001ed, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x45a001ad, 0x00058c00, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000028 }, |
{ 0x02600005, 0x20006e28, 0x02008c0c, 0x88848421 }, |
{ 0x0220000c, 0x25663dad, 0x00000458, 0x00010001 }, |
{ 0x0000000c, 0x25643dad, 0x00000564, 0x00060006 }, |
{ 0x00310001, 0x25c401ad, 0x00000458, 0x00000000 }, |
{ 0x00210001, 0x25c00061, 0x00000000, 0x00010001 }, |
{ 0x00310040, 0x25c03dad, 0x004545c4, 0x00010001 }, |
{ 0x00610001, 0x25a00061, 0x02000000, 0x00000080 }, |
{ 0x00710001, 0x45a002ad, 0x02ae8c00, 0x00000000 }, |
{ 0x00710001, 0x45a202ad, 0x02ae8c01, 0x00000000 }, |
{ 0x00800041, 0x25a035ad, 0x00b105a0, 0x000905c0 }, |
{ 0x01200010, 0x20003e2c, 0x0245006e, 0x00000000 }, |
{ 0x00310009, 0x244c45ad, 0x02000564, 0x0045006e }, |
{ 0x00210001, 0x244c01ed, 0x02000000, 0x00000000 }, |
{ 0x0031000c, 0x244c3dad, 0x0245044c, 0x00010001 }, |
{ 0x00200009, 0x256835ad, 0x0045044c, 0x00000566 }, |
{ 0x00210040, 0x256835ad, 0x02450568, 0x00000566 }, |
{ 0x00200040, 0x256c362d, 0x0045006e, 0x00000566 }, |
{ 0x00400040, 0x240035ac, 0x00ab05a2, 0x00ab05a6 }, |
{ 0x00400040, 0x2400358c, 0x00690400, 0x00000566 }, |
{ 0x0040000c, 0x2580358d, 0x00690400, 0x00000566 }, |
{ 0x00800041, 0x2400362c, 0x00d20640, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d20660, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d20780, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207a0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x464035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x466035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d20680, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d206a0, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d207c0, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207e0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x468035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x46a035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d206c0, 0x000705a8 }, |
{ 0x00800041, 0x2420362c, 0x00d206e0, 0x000705a8 }, |
{ 0x00800048, 0x2400362c, 0x00d20480, 0x000705ac }, |
{ 0x00800048, 0x2420362c, 0x00d204a0, 0x000705ac }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x0000056a }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x0000056a }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056e }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056e }, |
{ 0x80800040, 0x46c035b1, 0x00b104c0, 0x00050582 }, |
{ 0x80800040, 0x46e035b1, 0x00b104e0, 0x00050582 }, |
{ 0x01800005, 0x20003d2c, 0x02000020, 0x00020002 }, |
{ 0x80800040, 0xd00045b1, 0x00b19000, 0x00d20640 }, |
{ 0x80800040, 0xd02045b1, 0x00b19020, 0x00d20660 }, |
{ 0x80800040, 0xd04045b1, 0x00b19040, 0x00d20680 }, |
{ 0x80800040, 0xd06045b1, 0x00b19060, 0x00d206a0 }, |
{ 0x00000040, 0x22083d8c, 0x00000208, 0x00800080 }, |
{ 0x80400040, 0xd40045b1, 0x00699400, 0x00ab06c0 }, |
{ 0x80400040, 0xd48045b1, 0x00699480, 0x00ab06c2 }, |
{ 0x80400040, 0xd42045b1, 0x00699420, 0x00ab06e0 }, |
{ 0x80400040, 0xd4a045b1, 0x006994a0, 0x00ab06e2 }, |
{ 0x80400040, 0xd41045b1, 0x00699410, 0x00ab06d0 }, |
{ 0x80400040, 0xd49045b1, 0x00699490, 0x00ab06d2 }, |
{ 0x80400040, 0xd43045b1, 0x00699430, 0x00ab06f0 }, |
{ 0x80400040, 0xd4b045b1, 0x006994b0, 0x00ab06f2 }, |
{ 0x00000040, 0x220a3d8c, 0x0000020a, 0x00080008 }, |
{ 0x00110040, 0x220a3d8c, 0x0200020a, 0x00300030 }, |
{ 0x01000010, 0x20003d2c, 0x02000020, 0x00060006 }, |
{ 0x00000040, 0x20203d29, 0x00000020, 0x00020002 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x00100001 }, |
{ 0x00000040, 0x220c358c, 0x0000020c, 0x0000003a }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffc1a }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x220201ec, 0x00000000, 0x01c001c0 }, |
{ 0x00800401, 0x20400236, 0x01ee8000, 0x00000000 }, |
{ 0x00800801, 0x20500236, 0x01ee8010, 0x00000000 }, |
{ 0x00800401, 0x20600236, 0x01ee8020, 0x00000000 }, |
{ 0x00800801, 0x20700236, 0x01ee8030, 0x00000000 }, |
{ 0x00800401, 0x20800236, 0x01ee8040, 0x00000000 }, |
{ 0x00800801, 0x20900236, 0x01ee8050, 0x00000000 }, |
{ 0x00800401, 0x20a00236, 0x01ee8060, 0x00000000 }, |
{ 0x00800801, 0x20b00236, 0x01ee8070, 0x00000000 }, |
{ 0x00800401, 0x20c00236, 0x01ee8100, 0x00000000 }, |
{ 0x00800801, 0x20d00236, 0x01ee8110, 0x00000000 }, |
{ 0x00800401, 0x20e00236, 0x01ee8120, 0x00000000 }, |
{ 0x00800801, 0x20f00236, 0x01ee8130, 0x00000000 }, |
{ 0x00800401, 0x21000236, 0x01ee8140, 0x00000000 }, |
{ 0x00800801, 0x21100236, 0x01ee8150, 0x00000000 }, |
{ 0x00800401, 0x21200236, 0x01ee8160, 0x00000000 }, |
{ 0x00800801, 0x21300236, 0x01ee8170, 0x00000000 }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x1218a000 }, |
{ 0x00200401, 0x204001a5, 0x00450064, 0x00000000 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x000f000f }, |
{ 0x01600031, 0x21400021, 0x508d0040, 0x00000200 }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x03400340 }, |
{ 0x00800401, 0x41600236, 0x00d28000, 0x00000000 }, |
{ 0x00800801, 0x41610236, 0x00d28080, 0x00000000 }, |
{ 0x00800401, 0x41800236, 0x00d28020, 0x00000000 }, |
{ 0x00800801, 0x41810236, 0x00d280a0, 0x00000000 }, |
{ 0x00800401, 0x41a00236, 0x00d28040, 0x00000000 }, |
{ 0x00800801, 0x41a10236, 0x00d280c0, 0x00000000 }, |
{ 0x00800401, 0x41c00236, 0x00d28060, 0x00000000 }, |
{ 0x00800801, 0x41c10236, 0x00d280e0, 0x00000000 }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x0a18a001 }, |
{ 0x0000040c, 0x20443ca5, 0x00000044, 0x00010001 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x0007000f }, |
{ 0x0a600031, 0x21600021, 0x508d0040, 0x00000200 }, |
{ 0x00000001, 0x21400021, 0x00000140, 0x00000000 }, |
{ 0x00000001, 0x21600021, 0x00000160, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x01000005, 0x20602d29, 0x02000042, 0x00070007 }, |
{ 0x01000005, 0x20422d29, 0x00000042, 0xfff8fff8 }, |
{ 0x00000001, 0x202001e9, 0x00000000, 0x100c100c }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00000009, 0x27e82d21, 0x00000040, 0x00060006 }, |
{ 0x00600001, 0x20a00022, 0x008d0000, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000100 }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x01800031, 0x20801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20400022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20480c22, 0x000007e8, 0x00000080 }, |
{ 0x02800031, 0x21001d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20600022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20680c22, 0x000007e8, 0x00000100 }, |
{ 0x03800031, 0x21801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20800022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20880c22, 0x000007e8, 0x00000180 }, |
{ 0x04800031, 0x22001d09, 0x408d0000, 0x02488400 }, |
{ 0x02600005, 0x20000c20, 0x02000090, 0x00002000 }, |
{ 0x00000006, 0x20880c21, 0x00000088, 0x00200000 }, |
{ 0x00200009, 0x20845529, 0x0000009c, 0x00450020 }, |
{ 0x00200001, 0x40840231, 0x00450094, 0x00000000 }, |
{ 0x00310001, 0x20840229, 0x02450094, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000095, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000094 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0080, 0x00000000 }, |
{ 0x00802001, 0x20800061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x020000d0, 0x00002000 }, |
{ 0x00000006, 0x20c80c21, 0x000000c8, 0x00200000 }, |
{ 0x00200009, 0x20c45529, 0x000000dc, 0x00450020 }, |
{ 0x00200001, 0x40c40231, 0x004500d4, 0x00000000 }, |
{ 0x00310001, 0x20c40229, 0x024500d4, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x000000d5, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x000000d4 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x02000110, 0x00002000 }, |
{ 0x00000006, 0x21080c21, 0x00000108, 0x00200000 }, |
{ 0x00200009, 0x21045529, 0x0000011c, 0x00450020 }, |
{ 0x00200001, 0x41040231, 0x00450114, 0x00000000 }, |
{ 0x00310001, 0x21040229, 0x02450114, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000115, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000114 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x02000150, 0x00002000 }, |
{ 0x00000006, 0x21480c21, 0x00000148, 0x00200000 }, |
{ 0x00200009, 0x21445529, 0x0000015c, 0x00450020 }, |
{ 0x00200001, 0x41440231, 0x00450154, 0x00000000 }, |
{ 0x00310001, 0x21440229, 0x02450154, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000155, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000154 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0140, 0x00000000 }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x02000190, 0x00002000 }, |
{ 0x00000006, 0x21880c21, 0x00000188, 0x00200000 }, |
{ 0x00200009, 0x21845529, 0x0000019c, 0x00450020 }, |
{ 0x00200001, 0x41840231, 0x00450194, 0x00000000 }, |
{ 0x00310001, 0x21840229, 0x02450194, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000195, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000194 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0180, 0x00000000 }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x020001d0, 0x00002000 }, |
{ 0x00000006, 0x21c80c21, 0x000001c8, 0x00200000 }, |
{ 0x00200009, 0x21c45529, 0x000001dc, 0x00450020 }, |
{ 0x00200001, 0x41c40231, 0x004501d4, 0x00000000 }, |
{ 0x00310001, 0x21c40229, 0x024501d4, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x000001d5, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x000001d4 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d01c0, 0x00000000 }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x02000210, 0x00002000 }, |
{ 0x00000006, 0x22080c21, 0x00000208, 0x00200000 }, |
{ 0x00200009, 0x22045529, 0x0000021c, 0x00450020 }, |
{ 0x00200001, 0x42040231, 0x00450214, 0x00000000 }, |
{ 0x00310001, 0x22040229, 0x02450214, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000215, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000214 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0200, 0x00000000 }, |
{ 0x00802001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x02000250, 0x00002000 }, |
{ 0x00000006, 0x22480c21, 0x00000248, 0x00200000 }, |
{ 0x00200009, 0x22445529, 0x0000025c, 0x00450020 }, |
{ 0x00200001, 0x42440231, 0x00450254, 0x00000000 }, |
{ 0x00310001, 0x22440229, 0x02450254, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000255, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000254 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0240, 0x00000000 }, |
{ 0x00802001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x01000040, 0x20423dad, 0x00000042, 0xfff8fff8 }, |
{ 0x00600001, 0x21600022, 0x008d07e0, 0x00000000 }, |
{ 0x00802001, 0x21800022, 0x008d0080, 0x00000000 }, |
{ 0x00802001, 0x21c00022, 0x008d00c0, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20280c22, 0x000007e8, 0x00000080 }, |
{ 0x00802001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0140, 0x00000000 }, |
{ 0x01800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x21680c22, 0x000007e8, 0x00000100 }, |
{ 0x00802001, 0x21800022, 0x008d0180, 0x00000000 }, |
{ 0x00802001, 0x21c00022, 0x008d01c0, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x20280c22, 0x000007e8, 0x00000180 }, |
{ 0x00802001, 0x20400022, 0x008d0200, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0240, 0x00000000 }, |
{ 0x01800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x27e80c21, 0x000007e8, 0x00000200 }, |
{ 0x01000010, 0x20002da0, 0x02000060, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xffffff00 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000040 }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x01800031, 0x20801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20400022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20480c22, 0x000007e8, 0x00000080 }, |
{ 0x02800031, 0x21001d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20600022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20680c22, 0x000007e8, 0x00000100 }, |
{ 0x03800031, 0x21801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20800022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20880c22, 0x000007e8, 0x00000180 }, |
{ 0x04800031, 0x22001d09, 0x408d0000, 0x02488400 }, |
{ 0x00000001, 0x220400e0, 0x00000000, 0x00a00080 }, |
{ 0x00600001, 0x20a00022, 0x008d0000, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02008810, 0x00002000 }, |
{ 0x01000040, 0x20603dad, 0x00000060, 0xffffffff }, |
{ 0x00000006, 0xa8080c21, 0x00008808, 0x00200000 }, |
{ 0x00200009, 0xa8045529, 0x0000881c, 0x00450020 }, |
{ 0x00200001, 0xc8040231, 0x00458814, 0x00000000 }, |
{ 0x00310001, 0xa8040229, 0x02458814, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00008815, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00008814 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d8800, 0x00000000 }, |
{ 0x00802001, 0xa8000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00600001, 0x21600022, 0x008d07e0, 0x00000000 }, |
{ 0x00802001, 0x21800022, 0x008d8800, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000040, 0x27e80c21, 0x000007e8, 0x00000040 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xffffffda }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x01000005, 0x20602d29, 0x02000042, 0x00070007 }, |
{ 0x01000005, 0x20422d29, 0x00000042, 0xfff8fff8 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00000009, 0x27e82d21, 0x00000040, 0x00060006 }, |
{ 0x00600001, 0x20a00022, 0x008d0000, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000260 }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x01800031, 0x20801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20400022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20480c22, 0x000007e8, 0x00000080 }, |
{ 0x02800031, 0x21001d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20600022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20680c22, 0x000007e8, 0x00000100 }, |
{ 0x03800031, 0x21801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20800022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20880c22, 0x000007e8, 0x00000180 }, |
{ 0x04800031, 0x22001d09, 0x408d0000, 0x02488400 }, |
{ 0x00200001, 0x20640229, 0x00450094, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000090, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000090, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000095, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000095, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000090, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x20881c21, 0x00000088, 0x00200000 }, |
{ 0x00200001, 0x20840129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0080, 0x00000000 }, |
{ 0x00802001, 0x20800061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000090, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000009c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000009c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200009c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000090, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200009c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200009c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x20843d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x20862d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x40840231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x004500d4, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x020000d0, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x000000d0, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x000000d5, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x000000d5, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x000000d0, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x20c81c21, 0x000000c8, 0x00200000 }, |
{ 0x00200001, 0x20c40129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x000000d0, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x000000dc, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x000000dc, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x020000dc, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x020000d0, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x020000dc, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x020000dc, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x20c43d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x20c62d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x40c40231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00450114, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000110, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000110, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000115, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000115, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000110, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x21081c21, 0x00000108, 0x00200000 }, |
{ 0x00200001, 0x21040129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000110, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000011c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000011c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200011c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000110, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200011c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200011c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x21043d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x21062d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x41040231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00450154, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000150, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000150, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000155, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000155, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000150, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x21481c21, 0x00000148, 0x00200000 }, |
{ 0x00200001, 0x21440129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0140, 0x00000000 }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000150, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000015c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000015c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200015c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000150, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200015c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200015c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x21443d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x21462d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x41440231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00450194, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000190, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000190, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000195, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000195, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000190, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x21881c21, 0x00000188, 0x00200000 }, |
{ 0x00200001, 0x21840129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0180, 0x00000000 }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000190, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000019c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000019c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200019c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000190, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200019c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200019c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x21843d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x21862d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x41840231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x004501d4, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x020001d0, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x000001d0, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x000001d5, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x000001d5, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x000001d0, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x21c81c21, 0x000001c8, 0x00200000 }, |
{ 0x00200001, 0x21c40129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d01c0, 0x00000000 }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x000001d0, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x000001dc, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x000001dc, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x020001dc, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x020001d0, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x020001dc, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x020001dc, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x21c43d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x21c62d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x41c40231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00450214, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000210, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000210, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000215, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000215, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000210, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x22081c21, 0x00000208, 0x00200000 }, |
{ 0x00200001, 0x22040129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0200, 0x00000000 }, |
{ 0x00802001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000210, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000021c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000021c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200021c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000210, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200021c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200021c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x22043d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x22062d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x42040231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00450254, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000250, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000250, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000255, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000255, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000250, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x22481c21, 0x00000248, 0x00200000 }, |
{ 0x00200001, 0x22440129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0240, 0x00000000 }, |
{ 0x00802001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000250, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000025c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000025c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200025c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000250, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200025c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200025c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x22443d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x22462d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x42440231, 0x00660064, 0x00000000 }, |
{ 0x01000040, 0x20423dad, 0x00000042, 0xfff8fff8 }, |
{ 0x00600001, 0x21600022, 0x008d07e0, 0x00000000 }, |
{ 0x00802001, 0x21800022, 0x008d0080, 0x00000000 }, |
{ 0x00802001, 0x21c00022, 0x008d00c0, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20280c22, 0x000007e8, 0x00000080 }, |
{ 0x00802001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0140, 0x00000000 }, |
{ 0x01800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x21680c22, 0x000007e8, 0x00000100 }, |
{ 0x00802001, 0x21800022, 0x008d0180, 0x00000000 }, |
{ 0x00802001, 0x21c00022, 0x008d01c0, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x20280c22, 0x000007e8, 0x00000180 }, |
{ 0x00802001, 0x20400022, 0x008d0200, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0240, 0x00000000 }, |
{ 0x01800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x27e80c21, 0x000007e8, 0x00000200 }, |
{ 0x01000010, 0x20002da0, 0x02000060, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffda0 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000006e }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x01800031, 0x20801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20400022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20480c22, 0x000007e8, 0x00000080 }, |
{ 0x02800031, 0x21001d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20600022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20680c22, 0x000007e8, 0x00000100 }, |
{ 0x03800031, 0x21801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20800022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20880c22, 0x000007e8, 0x00000180 }, |
{ 0x04800031, 0x22001d09, 0x408d0000, 0x02488400 }, |
{ 0x00000001, 0x220400e0, 0x00000000, 0x00a00080 }, |
{ 0x00600001, 0x20a00022, 0x008d0000, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00458814, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02008810, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00008810, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00008815, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00008815, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00008810, 0x00002000 }, |
{ 0x01000040, 0x20603dad, 0x02000060, 0xffffffff }, |
{ 0x00000006, 0xa8080c21, 0x00008808, 0x00200000 }, |
{ 0x00200001, 0xa8040129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d8800, 0x00000000 }, |
{ 0x00802001, 0xa8000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x02600005, 0x20000d20, 0x02000066, 0x00000001 }, |
{ 0x02600005, 0x20000c20, 0x00008810, 0x00004000 }, |
{ 0x00000001, 0x20680129, 0x0000881c, 0x00000000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000881c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200881c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02008810, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200881c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200881c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x00000068, 0x000d0070 }, |
{ 0x01000040, 0x20603dad, 0x02000060, 0x00000000 }, |
{ 0x00000009, 0xa8043d09, 0x00000600, 0x000c000c }, |
{ 0x00000005, 0xa8062d09, 0x00000600, 0xf000f000 }, |
{ 0x00200001, 0xc8040231, 0x00660064, 0x00000000 }, |
{ 0x00600001, 0x21600022, 0x008d07e0, 0x00000000 }, |
{ 0x00802001, 0x21800022, 0x008d8800, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000040, 0x27e80c21, 0x000007e8, 0x00000040 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xffffffac }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00030003 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x01400140 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00200020 }, |
{ 0x00000001, 0x203801e2, 0x00000000, 0x00010001 }, |
{ 0x00800001, 0x204001ae, 0x00b10020, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x000002a0, 0x00010001 }, |
{ 0x00800031, 0x20000128, 0x608d07e0, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00020002 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc6 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffca }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00000041, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff4 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000006 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffff6 }, |
{ 0x05000010, 0x200035ac, 0x00000240, 0x00000026 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffffc }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00600009, 0x25c03dad, 0x00050034, 0x00040004 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x00000041, 0x20263d29, 0x00000036, 0x00040004 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x27e82c21, 0x000005e4, 0x00400040 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x00000178 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000176 }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x00200401, 0x27e001a1, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0288a001 }, |
{ 0x01600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02286003 }, |
{ 0x03600031, 0x20800021, 0x408d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x00000008, 0x25e83e2d, 0x00009080, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x00459080, 0x00000000 }, |
{ 0x00200c01, 0x25d80129, 0x00459050, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699060, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000134 }, |
{ 0x00000008, 0x25e83e2d, 0x00009084, 0x00020002 }, |
{ 0x00200401, 0x25d0022d, 0x00459084, 0x00000000 }, |
{ 0x00000801, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000401, 0x25d80129, 0x00009040, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699064, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000011e }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000401, 0x25d80129, 0x00009042, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699068, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000110 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000401, 0x25d80129, 0x00009044, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x0069906c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000102 }, |
{ 0x00200401, 0x27e001a1, 0x004505c4, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x00800401, 0x23400231, 0x00a90040, 0x00000000 }, |
{ 0x00800801, 0x23500231, 0x00a90044, 0x00000000 }, |
{ 0x00800401, 0x23600231, 0x00a90048, 0x00000000 }, |
{ 0x00800801, 0x23700231, 0x00a9004c, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x002b0340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x002b0350, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x002b0360, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x002b0370, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06082003 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00000008, 0x25e83e2d, 0x00009082, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00800080 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x00459082, 0x00000000 }, |
{ 0x00200c01, 0x25d80129, 0x00459054, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699070, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000096 }, |
{ 0x00000008, 0x25e83e2d, 0x00009084, 0x00020002 }, |
{ 0x00200401, 0x25d0022d, 0x00459084, 0x00000000 }, |
{ 0x00000801, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000401, 0x25d80129, 0x00009046, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699074, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000401, 0x25d80129, 0x00009048, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699078, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000072 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000401, 0x25d80129, 0x0000904a, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x0069907c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x00200401, 0x27e001a1, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x20c00022, 0x008d0140, 0x00000000 }, |
{ 0x00802001, 0x21000022, 0x008d0180, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x12082003 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00802001, 0x20400022, 0x008d0080, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0618a003 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x00800401, 0x23400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x23500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x23600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x23700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x23800231, 0x00cf0340, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00cf0341, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00cf0342, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00cf0343, 0x00000000 }, |
{ 0x00802001, 0x202000a2, 0x008d0380, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x06080020 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00000440, 0x27e03da1, 0x000005c0, 0x000c000c }, |
{ 0x00000c01, 0x27e401a1, 0x000005c2, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x02600031, 0x23401c25, 0x408d07e0, 0x02286003 }, |
{ 0x00800401, 0x23800231, 0x00cf0340, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00cf0341, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00cf0342, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00cf0343, 0x00000000 }, |
{ 0x00802001, 0x202000a2, 0x008d0380, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x06080020 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00800040, 0x2400462d, 0x00b19c00, 0x00b1d830 }, |
{ 0x00800040, 0x2340462d, 0x00b19820, 0x00b1d830 }, |
{ 0x00800040, 0x2360462d, 0x00b19c10, 0x00b1dc00 }, |
{ 0x05810010, 0x200035ac, 0x008d2400, 0x000005d0 }, |
{ 0x05810010, 0x200035ac, 0x008d2340, 0x000005d2 }, |
{ 0x05810010, 0x200035ac, 0x008d2360, 0x000005d2 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x000000ca }, |
{ 0x00800040, 0x2440462d, 0x00b19810, 0x00b1d830 }, |
{ 0x00800040, 0x2460462d, 0x00b19c20, 0x00b1dc00 }, |
{ 0x00800201, 0x24a00129, 0x00b19820, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x00000066 }, |
{ 0x05800010, 0x200035ac, 0x028d2400, 0x000005e8 }, |
{ 0x00800040, 0x2520462d, 0x00b19830, 0x00b19820 }, |
{ 0x00800040, 0x2540462d, 0x00b19c00, 0x00b19c10 }, |
{ 0x00000201, 0x26000108, 0x00000602, 0x00000000 }, |
{ 0x05810010, 0x200035ac, 0x028d2440, 0x000005d2 }, |
{ 0x05810010, 0x200035ac, 0x008d2460, 0x000005d2 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x00800040, 0x2560462d, 0x00b19810, 0x00b19800 }, |
{ 0x00800040, 0x238045ad, 0x008d0520, 0x00b19c00 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00040004 }, |
{ 0x00800040, 0x23a0458d, 0x00b10400, 0x00b19810 }, |
{ 0x00800048, 0x24003dac, 0x008d0560, 0x00020002 }, |
{ 0x80800008, 0x43c03d91, 0x00b10400, 0x00030003 }, |
{ 0x00800040, 0x24003dac, 0x00b103a0, 0xfffefffe }, |
{ 0x80800008, 0x43603d91, 0x00b10400, 0x00020002 }, |
{ 0x00800040, 0x2400362c, 0x00b19c10, 0x00b10380 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00b103a0 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00030003 }, |
{ 0x00800001, 0xb8100231, 0x00ae03c0, 0x00000000 }, |
{ 0x00800001, 0xb8200231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xb8300231, 0x00ae0340, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001000e }, |
{ 0x00800040, 0x2400362c, 0x00b19820, 0x008d0520 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b19c10 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00020002 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00020002 }, |
{ 0x00800001, 0xb8300231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x00800040, 0x2580462d, 0x00b19c20, 0x00b19c30 }, |
{ 0x00800040, 0x238045ad, 0x008d0540, 0x008d04b0 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00040004 }, |
{ 0x00800040, 0x23a0458d, 0x00b10400, 0x00b19c20 }, |
{ 0x00800048, 0x24003dac, 0x008d0580, 0x00020002 }, |
{ 0x80800008, 0x43c03d91, 0x00b10400, 0x00030003 }, |
{ 0x00800040, 0x24003dac, 0x00b103a0, 0xfffefffe }, |
{ 0x80800008, 0x43603d91, 0x00b10400, 0x00020002 }, |
{ 0x00800040, 0x2400362c, 0x008d04a0, 0x00b10380 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00b103a0 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00030003 }, |
{ 0x00800001, 0xbc200231, 0x00ae03c0, 0x00000000 }, |
{ 0x00800001, 0xbc100231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001000e }, |
{ 0x00800040, 0x2400362c, 0x008d04a0, 0x008d0540 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b19c10 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00020002 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00020002 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001005c }, |
{ 0x00800201, 0x23e0022d, 0x002805d4, 0x00000000 }, |
{ 0x00800201, 0x23c0022d, 0x002805d4, 0x00000000 }, |
{ 0x05800010, 0x200035ac, 0x008d2440, 0x000005d2 }, |
{ 0x05800010, 0x200035ac, 0x028d2460, 0x000005d2 }, |
{ 0x00800040, 0x24003e2c, 0x00b19820, 0x00040004 }, |
{ 0x00800048, 0x24003dac, 0x008d0400, 0x00040004 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b1dc10 }, |
{ 0x00800008, 0x23403d8d, 0x00b10400, 0x00030003 }, |
{ 0x00810040, 0x23e03dad, 0x008d03e0, 0x00010001 }, |
{ 0x00200201, 0x25ec018d, 0x00450600, 0x00000000 }, |
{ 0x00810040, 0x23e03dad, 0x028d03e0, 0x00010001 }, |
{ 0x03800010, 0x200035ac, 0x008d0340, 0x008d03e0 }, |
{ 0x05800010, 0x200035ac, 0x028d0340, 0x008d43e0 }, |
{ 0x00800042, 0x24c0462d, 0x00b19830, 0x00b19c00 }, |
{ 0x00810001, 0x234001ad, 0x008d03e0, 0x00000000 }, |
{ 0x00810001, 0x234001ad, 0x028d43e0, 0x00000000 }, |
{ 0x00200201, 0x260001ac, 0x004505ec, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19830, 0x008d0340 }, |
{ 0x80800040, 0x43403631, 0x00b19c00, 0x008d4340 }, |
{ 0x00800001, 0xb8300231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00800040, 0x2400362c, 0x00b19810, 0x008d04c0 }, |
{ 0x00800048, 0x24003e2c, 0x00b19820, 0xfffefffe }, |
{ 0x00800008, 0x23603d8d, 0x00b10400, 0x00010001 }, |
{ 0x03800010, 0x200035ac, 0x008d0360, 0x008d03c0 }, |
{ 0x05800010, 0x200035ac, 0x028d0360, 0x008d43c0 }, |
{ 0x00810001, 0x236001ad, 0x008d03c0, 0x00000000 }, |
{ 0x00810001, 0x236001ad, 0x028d43c0, 0x00000000 }, |
{ 0x00000201, 0x260201ac, 0x000005ee, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19820, 0x008d0360 }, |
{ 0x00800001, 0xb8200231, 0x00ae0360, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00800040, 0x2400362c, 0x00b19c20, 0x008d04c0 }, |
{ 0x00800048, 0x24003e2c, 0x00b19c10, 0xfffefffe }, |
{ 0x00800008, 0x23603d8d, 0x00b10400, 0x00010001 }, |
{ 0x03800010, 0x200035ac, 0x008d0360, 0x008d03c0 }, |
{ 0x05800010, 0x200035ac, 0x028d0360, 0x008d43c0 }, |
{ 0x00810001, 0x236001ad, 0x008d03c0, 0x00000000 }, |
{ 0x00810001, 0x236001ad, 0x028d43c0, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19c10, 0x008d0360 }, |
{ 0x00800001, 0xbc100231, 0x00ae0360, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007c0, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00030003 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000001, 0x206801ed, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00030003 }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc4 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffc8 }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00800001, 0x240001ac, 0x00000068, 0x00000000 }, |
{ 0x00000048, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff2 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00600401, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x26140061, 0x00000000, 0x01800000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000801, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00000040, 0x2078252d, 0x00000026, 0x00004280 }, |
{ 0x00400001, 0x26000231, 0x00000078, 0x00000000 }, |
{ 0x00600031, 0x26201c21, 0x308d0600, 0x02000002 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffffe8 }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000012 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00600009, 0x25c03dad, 0x00050034, 0x00040004 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x27e82c21, 0x000005e4, 0x00400040 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x01400140 }, |
{ 0x00000048, 0x20263dad, 0x00000036, 0x00040004 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x00800001, 0x2220022d, 0x000d002c, 0x00000000 }, |
{ 0x00600040, 0x22303dad, 0x008d0230, 0x00080008 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x00000126 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000124 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0248a002 }, |
{ 0x02600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02186004 }, |
{ 0x02600031, 0x20800021, 0x408d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x00800008, 0x2340352d, 0x00009050, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009052, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x004590c0, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a0, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000fc }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00410041 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00200401, 0x25d0022d, 0x004590c8, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b0, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000ee }, |
{ 0x00800008, 0x2340352d, 0x00009042, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00200401, 0x25d0022d, 0x004590c4, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a4, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000d8 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00200401, 0x25d0022d, 0x004590cc, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b4, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000ca }, |
{ 0x00000401, 0x27e001a1, 0x000005c4, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c6, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x00600401, 0x2340012d, 0x00890040, 0x00000000 }, |
{ 0x00600801, 0x2350012d, 0x00890048, 0x00000000 }, |
{ 0x00600001, 0x204001aa, 0x00270340, 0x00000000 }, |
{ 0x00600001, 0x205001aa, 0x00270350, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x04082004 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00800008, 0x2340352d, 0x00009054, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009056, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00800080 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x004590c2, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a8, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00810081 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00200401, 0x25d0022d, 0x004590ca, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b8, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000078 }, |
{ 0x00800008, 0x2340352d, 0x00009048, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00200401, 0x25d0022d, 0x004590c4, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990ac, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00200401, 0x25d0022d, 0x004590cc, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990bc, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000054 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0a082004 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00600001, 0x20400022, 0x008d0080, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0418a004 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x00600401, 0x2340012d, 0x008500cc, 0x00000000 }, |
{ 0x00600801, 0x2350012d, 0x0085010c, 0x00000000 }, |
{ 0x00800001, 0x236001ad, 0x002e0340, 0x00000000 }, |
{ 0x00600001, 0x202000a2, 0x008d0360, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x04080020 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00000440, 0x27e03da1, 0x000005c0, 0x000c000c }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x02600031, 0x23401c25, 0x408d07e0, 0x02186004 }, |
{ 0x00800001, 0x236001ad, 0x002e0340, 0x00000000 }, |
{ 0x00600001, 0x202000a2, 0x008d0360, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x04080020 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00600040, 0x2400462d, 0x00ae9c00, 0x00aed810 }, |
{ 0x00600040, 0x2340462d, 0x00ae9800, 0x00aed810 }, |
{ 0x00600040, 0x2360462d, 0x00ae9c10, 0x00aedc00 }, |
{ 0x05810010, 0x200035ac, 0x008d2400, 0x000005d0 }, |
{ 0x05810010, 0x200035ac, 0x008d2340, 0x000005d2 }, |
{ 0x05810010, 0x200035ac, 0x008d2360, 0x000005d2 }, |
{ 0x00618022, 0x34001c00, 0x00001400, 0x00000038 }, |
{ 0x00618022, 0x34001c00, 0x02001400, 0x00000016 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9c10, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x00ae9800, 0x00020002 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00ae9810 }, |
{ 0x80600008, 0x43403d91, 0x008d0400, 0x00020002 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9800, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x00ae9c10, 0x00020002 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00ae9c00 }, |
{ 0x80600008, 0x43603d91, 0x008d0400, 0x00020002 }, |
{ 0x00600001, 0xd8100231, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0xdc000231, 0x00ae0360, 0x00000000 }, |
{ 0x00608024, 0x34001c00, 0x00001400, 0x00010020 }, |
{ 0x00600201, 0x2400022c, 0x002405d4, 0x00000000 }, |
{ 0x00600040, 0x23e03d8d, 0x008d0400, 0x00010001 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9800, 0x00040004 }, |
{ 0x00600048, 0x24003dac, 0x008d0400, 0x00040004 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00aedc10 }, |
{ 0x00600008, 0x23403d8d, 0x008d0400, 0x00030003 }, |
{ 0x03600010, 0x200035ac, 0x008d0340, 0x008d03e0 }, |
{ 0x05600010, 0x200035ac, 0x028d0340, 0x008d43e0 }, |
{ 0x00610001, 0x234001ad, 0x008d03e0, 0x00000000 }, |
{ 0x00610001, 0x234001ad, 0x028d43e0, 0x00000000 }, |
{ 0x80600040, 0x43603631, 0x00ae9810, 0x008d0340 }, |
{ 0x80600040, 0x43403631, 0x00ae9c00, 0x008d4340 }, |
{ 0x00600001, 0xd8100231, 0x00ae0360, 0x00000000 }, |
{ 0x00600001, 0xdc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007c0, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00030003 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x01400140 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00200020 }, |
{ 0x00000001, 0x203801e2, 0x00000000, 0x00010001 }, |
{ 0x00800001, 0x204001ae, 0x00b10020, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x000002a0, 0x00010001 }, |
{ 0x00800031, 0x20000128, 0x608d07e0, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00020002 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc6 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffca }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00000041, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff4 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000006 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffff6 }, |
{ 0x05000010, 0x200035ac, 0x00000240, 0x00000026 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffffc }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00600009, 0x25c03dad, 0x00050034, 0x00040004 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x00000041, 0x20263d29, 0x00000036, 0x00040004 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x27e82c21, 0x000005e4, 0x00400040 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x0000018c }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000018a }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0288e701 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0288e601 }, |
{ 0x01600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02286703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02286603 }, |
{ 0x03600031, 0x20800021, 0x408d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x00000008, 0x25e83e2d, 0x00009080, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x00459080, 0x00000000 }, |
{ 0x00200c01, 0x25d80129, 0x00459050, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699060, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffb8c }, |
{ 0x00000008, 0x25e83e2d, 0x00009084, 0x00020002 }, |
{ 0x00200401, 0x25d0022d, 0x00459084, 0x00000000 }, |
{ 0x00000801, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000401, 0x25d80129, 0x00009040, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699064, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffb76 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000401, 0x25d80129, 0x00009042, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699068, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffb68 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000401, 0x25d80129, 0x00009044, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x0069906c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffb5a }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c4, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x00800401, 0x23400231, 0x00a90040, 0x00000000 }, |
{ 0x00800801, 0x23500231, 0x00a90044, 0x00000000 }, |
{ 0x00800401, 0x23600231, 0x00a90048, 0x00000000 }, |
{ 0x00800801, 0x23700231, 0x00a9004c, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x002b0340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x002b0350, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x002b0360, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x002b0370, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x06082703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x06082603 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00000008, 0x25e83e2d, 0x00009082, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00800080 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x00459082, 0x00000000 }, |
{ 0x00200c01, 0x25d80129, 0x00459054, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699070, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffaea }, |
{ 0x00000008, 0x25e83e2d, 0x00009084, 0x00020002 }, |
{ 0x00200401, 0x25d0022d, 0x00459084, 0x00000000 }, |
{ 0x00000801, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000401, 0x25d80129, 0x00009046, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699074, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffad4 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000401, 0x25d80129, 0x00009048, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699078, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffac6 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000401, 0x25d80129, 0x0000904a, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x0069907c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffab8 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x20c00022, 0x008d0140, 0x00000000 }, |
{ 0x00802001, 0x21000022, 0x008d0180, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x12082703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x12082603 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00802001, 0x20400022, 0x008d0080, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0618a703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0618a603 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x00800401, 0x23400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x23500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x23600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x23700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x23800231, 0x00cf0340, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00cf0341, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00cf0342, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00cf0343, 0x00000000 }, |
{ 0x00802001, 0x202000a2, 0x008d0380, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x06080020 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000440, 0x27e03da1, 0x000005c0, 0x000c000c }, |
{ 0x00000c01, 0x27e401a1, 0x000005c2, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02286003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x00010008 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02286703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02286603 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x23400025, 0x408d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00cf0340, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00cf0341, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00cf0342, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00cf0343, 0x00000000 }, |
{ 0x00802001, 0x202000a2, 0x008d0380, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x06080020 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00030003 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000001, 0x206801ed, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00030003 }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc4 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffc8 }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00800001, 0x240001ac, 0x00000068, 0x00000000 }, |
{ 0x00000048, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff2 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00600401, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x26140061, 0x00000000, 0x01800000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000801, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00000040, 0x2078252d, 0x00000026, 0x00004280 }, |
{ 0x00400001, 0x26000231, 0x00000078, 0x00000000 }, |
{ 0x00600031, 0x26201c21, 0x308d0600, 0x02000002 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffffe8 }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000012 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00600009, 0x25c03dad, 0x00050034, 0x00040004 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x27e82c21, 0x000005e4, 0x00400040 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x01400140 }, |
{ 0x00000048, 0x20263dad, 0x00000036, 0x00040004 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x00800001, 0x2220022d, 0x000d002c, 0x00000000 }, |
{ 0x00600040, 0x22303dad, 0x008d0230, 0x00080008 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x0000013a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000138 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0248e702 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0248e602 }, |
{ 0x02600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02186704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02186604 }, |
{ 0x02600031, 0x20800021, 0x408d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x00800008, 0x2340352d, 0x00009050, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009052, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x004590c0, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a0, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffc0c }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00410041 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00200401, 0x25d0022d, 0x004590c8, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b0, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffbfe }, |
{ 0x00800008, 0x2340352d, 0x00009042, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00200401, 0x25d0022d, 0x004590c4, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a4, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffbe8 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00200401, 0x25d0022d, 0x004590cc, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b4, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffbda }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c4, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c6, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x00600401, 0x2340012d, 0x00890040, 0x00000000 }, |
{ 0x00600801, 0x2350012d, 0x00890048, 0x00000000 }, |
{ 0x00600001, 0x204001aa, 0x00270340, 0x00000000 }, |
{ 0x00600001, 0x205001aa, 0x00270350, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x04082704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x04082604 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00800008, 0x2340352d, 0x00009054, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009056, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00800080 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x004590c2, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a8, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffb92 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00810081 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00200401, 0x25d0022d, 0x004590ca, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b8, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffb84 }, |
{ 0x00800008, 0x2340352d, 0x00009048, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00200401, 0x25d0022d, 0x004590c4, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990ac, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffb6e }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00200401, 0x25d0022d, 0x004590cc, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990bc, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffb60 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0a082704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0a082604 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00600001, 0x20400022, 0x008d0080, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0418a704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0418a604 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x00600401, 0x2340012d, 0x008500cc, 0x00000000 }, |
{ 0x00600801, 0x2350012d, 0x0085010c, 0x00000000 }, |
{ 0x00800001, 0x236001ad, 0x002e0340, 0x00000000 }, |
{ 0x00600001, 0x202000a2, 0x008d0360, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x04080020 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000440, 0x27e03da1, 0x000005c0, 0x000c000c }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02186004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x00010008 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02186704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02186604 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x23400025, 0x408d07e0, 0x00000200 }, |
{ 0x00800001, 0x236001ad, 0x002e0340, 0x00000000 }, |
{ 0x00600001, 0x202000a2, 0x008d0360, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x04080020 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00010001 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00010001 }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x01400140 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00200020 }, |
{ 0x00000001, 0x203801e2, 0x00000000, 0x00010001 }, |
{ 0x00800001, 0x204001ae, 0x00b10020, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x000002a0, 0x00010001 }, |
{ 0x00800031, 0x20000128, 0x608d07e0, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00020002 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc6 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffca }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00000041, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff4 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000006 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffff6 }, |
{ 0x05000010, 0x200035ac, 0x00000240, 0x00000026 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffffc }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00400441, 0x45c03dad, 0x00000034, 0x00100010 }, |
{ 0x00400841, 0x45c23dad, 0x00000036, 0x00200020 }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x25e42c21, 0x000005e4, 0x00800080 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x00000005, 0x202a3dad, 0x0000002a, 0xfffdfffd }, |
{ 0x02000005, 0x20002d2c, 0x0200002a, 0x00020002 }, |
{ 0x00000001, 0x27e80021, 0x000005e4, 0x00000000 }, |
{ 0x00010040, 0x27e83c21, 0x020007e8, 0x00400040 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000005, 0x25ec2e29, 0x00009002, 0x000a000a }, |
{ 0x00000005, 0x25ea2e29, 0x00009002, 0x00060006 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x00000252 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000250 }, |
{ 0x01000010, 0x20003d2c, 0x000005ec, 0x00080008 }, |
{ 0x00000005, 0x25e03d8d, 0x00000600, 0x00010001 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a5, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0288a001 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0288e701 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0288e601 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c4, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02286003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02286703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02286603 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x23400025, 0x408d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x00800401, 0x20400231, 0x00cf0340, 0x00000000 }, |
{ 0x00800801, 0x20500231, 0x00cf0341, 0x00000000 }, |
{ 0x00800401, 0x20600231, 0x00cf0342, 0x00000000 }, |
{ 0x00800801, 0x20700231, 0x00cf0343, 0x00000000 }, |
{ 0x01600010, 0x20003d2c, 0x000005ea, 0x00040004 }, |
{ 0x01600010, 0x20003d2c, 0x020005ea, 0x00020002 }, |
{ 0x00800001, 0x21c00229, 0x00009080, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00009081, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289060, 0x00000000 }, |
{ 0x00610401, 0x41c00229, 0x00009080, 0x00000000 }, |
{ 0x00610801, 0x41c20229, 0x00009090, 0x00000000 }, |
{ 0x00610401, 0x41e00229, 0x00009081, 0x00000000 }, |
{ 0x00610801, 0x41e20229, 0x00009091, 0x00000000 }, |
{ 0x00610401, 0x42000229, 0x00249060, 0x00000000 }, |
{ 0x00610801, 0x42020229, 0x00249098, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x00610401, 0x21c00229, 0x02009080, 0x00000000 }, |
{ 0x00610801, 0x21d00229, 0x02009090, 0x00000000 }, |
{ 0x00610401, 0x21e00229, 0x02009081, 0x00000000 }, |
{ 0x00610801, 0x21f00229, 0x02009091, 0x00000000 }, |
{ 0x00610401, 0x22000229, 0x02249060, 0x00000000 }, |
{ 0x00610801, 0x22100229, 0x02249098, 0x00000000 }, |
{ 0x00800008, 0x25a03d29, 0x008d01c0, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200001, 0x25d80129, 0x00459050, 0x00000000 }, |
{ 0x00800040, 0x25a03d29, 0x00b105a0, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001b4 }, |
{ 0x00800008, 0x25a03e29, 0x00009084, 0x00020002 }, |
{ 0x00800001, 0x21c00229, 0x00009084, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00009085, 0x00000000 }, |
{ 0x00000001, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00800040, 0x25a03d29, 0x00b105a0, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x25d80129, 0x00009040, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289064, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000019c }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x25d80129, 0x00009042, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289068, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000018e }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000001, 0x25d80129, 0x00009044, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x0028906c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000180 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c4, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x00800401, 0x23400231, 0x00a90040, 0x00000000 }, |
{ 0x00800801, 0x23500231, 0x00a90044, 0x00000000 }, |
{ 0x00800401, 0x23600231, 0x00a90048, 0x00000000 }, |
{ 0x00800801, 0x23700231, 0x00a9004c, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x002b0340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x002b0350, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x002b0360, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x002b0370, 0x00000000 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06082003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x06082703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x06082603 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02286003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x01000005, 0x20003dac, 0x020005e0, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000006 }, |
{ 0x00000440, 0x27e43ca5, 0x000007e4, 0xfffcfffc }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x00200000 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000c }, |
{ 0x0000000c, 0x27e43da5, 0x000005c2, 0x00010001 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02286703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02286603 }, |
{ 0x00000040, 0x27e43ca5, 0x000007e4, 0xfffcfffc }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20400021, 0x408d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00000001, 0x260201ac, 0x000005e0, 0x00000000 }, |
{ 0x00800008, 0x25a03e29, 0x00009082, 0x00020002 }, |
{ 0x00200001, 0x25d80129, 0x00459054, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00009082, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00009083, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289070, 0x00000000 }, |
{ 0x00800040, 0x25a03d29, 0x00b105a0, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000050 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000a }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000d4 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000044 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05000500 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05400540 }, |
{ 0x00800001, 0x25000129, 0x00ad0040, 0x00000000 }, |
{ 0x00800001, 0x25200129, 0x00ad0080, 0x00000000 }, |
{ 0x00800001, 0x25400129, 0x00ad00c0, 0x00000000 }, |
{ 0x00800001, 0x25600129, 0x00ad0100, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000c2 }, |
{ 0x00600001, 0x20600129, 0x008d0510, 0x00000000 }, |
{ 0x00600001, 0x20800129, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x20a00129, 0x008d0530, 0x00000000 }, |
{ 0x00600001, 0x20c00129, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x20e00129, 0x008d0550, 0x00000000 }, |
{ 0x00600001, 0x21000129, 0x008d0560, 0x00000000 }, |
{ 0x00800008, 0x25a03e29, 0x00009092, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05000500 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05400540 }, |
{ 0x00800001, 0x25000129, 0x00ad0050, 0x00000000 }, |
{ 0x00800001, 0x25200129, 0x00ad0090, 0x00000000 }, |
{ 0x00800001, 0x25400129, 0x00ad00d0, 0x00000000 }, |
{ 0x00800001, 0x25600129, 0x00ad0110, 0x00000000 }, |
{ 0x00200001, 0x25d80129, 0x0045905c, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00009092, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00009093, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x0028909c, 0x00000000 }, |
{ 0x00800040, 0x25a03d29, 0x00b105a0, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000009a }, |
{ 0x00600001, 0x20700129, 0x008d0510, 0x00000000 }, |
{ 0x00600001, 0x20900129, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x20b00129, 0x008d0530, 0x00000000 }, |
{ 0x00600001, 0x20d00129, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x20f00129, 0x008d0550, 0x00000000 }, |
{ 0x00600001, 0x21100129, 0x008d0560, 0x00000000 }, |
{ 0x00800008, 0x25a03e29, 0x00009084, 0x00020002 }, |
{ 0x00800001, 0x21c00229, 0x00009084, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00009085, 0x00000000 }, |
{ 0x00000001, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00800040, 0x25a03d29, 0x00b105a0, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x25d80129, 0x00009046, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289074, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000076 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x25d80129, 0x00009048, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289078, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000068 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000001, 0x25d80129, 0x0000904a, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x0028907c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000005a }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x20c00022, 0x008d0140, 0x00000000 }, |
{ 0x00802001, 0x21000022, 0x008d0180, 0x00000000 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x12082003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x12082703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x12082603 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x01800005, 0x20003dac, 0x020005e0, 0x00010001 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00812001, 0x20400022, 0x028d0040, 0x00000000 }, |
{ 0x00912001, 0x20400022, 0x028d0080, 0x00000000 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0618a003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000c }, |
{ 0x0000000c, 0x27e43da5, 0x000005c2, 0x00010001 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0618a703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0618a603 }, |
{ 0x00000040, 0x27e43ca5, 0x000007e4, 0xfffcfffc }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003dac, 0x0000002a, 0x00020002 }, |
{ 0x00000006, 0x202a3dad, 0x0000002a, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffd94 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00800040, 0x2400462d, 0x00b19c00, 0x00b1d830 }, |
{ 0x00800040, 0x2340462d, 0x00b19820, 0x00b1d830 }, |
{ 0x00800040, 0x2360462d, 0x00b19c10, 0x00b1dc00 }, |
{ 0x05810010, 0x200025ac, 0x008d2400, 0x008d01c0 }, |
{ 0x05810010, 0x200025ac, 0x008d2340, 0x008d01e0 }, |
{ 0x05810010, 0x200025ac, 0x008d2360, 0x008d01e0 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x000000c8 }, |
{ 0x00800040, 0x2440462d, 0x00b19810, 0x00b1d830 }, |
{ 0x00800040, 0x2460462d, 0x00b19c20, 0x00b1dc00 }, |
{ 0x00800201, 0x24a00129, 0x00b19820, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x00000066 }, |
{ 0x05800010, 0x200025ac, 0x028d2400, 0x008d05a0 }, |
{ 0x00800040, 0x2520462d, 0x00b19830, 0x00b19820 }, |
{ 0x00800040, 0x2540462d, 0x00b19c00, 0x00b19c10 }, |
{ 0x00000201, 0x26000108, 0x00000602, 0x00000000 }, |
{ 0x05810010, 0x200025ac, 0x028d2440, 0x008d01e0 }, |
{ 0x05810010, 0x200025ac, 0x008d2460, 0x008d01e0 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x00800040, 0x2560462d, 0x00b19810, 0x00b19800 }, |
{ 0x00800040, 0x238045ad, 0x008d0520, 0x00b19c00 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00040004 }, |
{ 0x00800040, 0x23a0458d, 0x00b10400, 0x00b19810 }, |
{ 0x00800048, 0x24003dac, 0x008d0560, 0x00020002 }, |
{ 0x80800008, 0x43c03d91, 0x00b10400, 0x00030003 }, |
{ 0x00800040, 0x24003dac, 0x00b103a0, 0xfffefffe }, |
{ 0x80800008, 0x43603d91, 0x00b10400, 0x00020002 }, |
{ 0x00800040, 0x2400362c, 0x00b19c10, 0x00b10380 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00b103a0 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00030003 }, |
{ 0x00800001, 0xb8100231, 0x00ae03c0, 0x00000000 }, |
{ 0x00800001, 0xb8200231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xb8300231, 0x00ae0340, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001000e }, |
{ 0x00800040, 0x2400362c, 0x00b19820, 0x008d0520 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b19c10 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00020002 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00020002 }, |
{ 0x00800001, 0xb8300231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x00800040, 0x2580462d, 0x00b19c20, 0x00b19c30 }, |
{ 0x00800040, 0x238045ad, 0x008d0540, 0x008d04b0 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00040004 }, |
{ 0x00800040, 0x23a0458d, 0x00b10400, 0x00b19c20 }, |
{ 0x00800048, 0x24003dac, 0x008d0580, 0x00020002 }, |
{ 0x80800008, 0x43c03d91, 0x00b10400, 0x00030003 }, |
{ 0x00800040, 0x24003dac, 0x00b103a0, 0xfffefffe }, |
{ 0x80800008, 0x43603d91, 0x00b10400, 0x00020002 }, |
{ 0x00800040, 0x2400362c, 0x008d04a0, 0x00b10380 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00b103a0 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00030003 }, |
{ 0x00800001, 0xbc200231, 0x00ae03c0, 0x00000000 }, |
{ 0x00800001, 0xbc100231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001000e }, |
{ 0x00800040, 0x2400362c, 0x008d04a0, 0x008d0540 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b19c10 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00020002 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00020002 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001005a }, |
{ 0x00800001, 0x23e0012d, 0x008d0200, 0x00000000 }, |
{ 0x05800010, 0x200025ac, 0x008d2440, 0x008d01e0 }, |
{ 0x05800010, 0x200025ac, 0x028d2460, 0x008d01e0 }, |
{ 0x00800040, 0x24003e2c, 0x00b19820, 0x00040004 }, |
{ 0x00800048, 0x24003dac, 0x008d0400, 0x00040004 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b1dc10 }, |
{ 0x00800008, 0x23403d8d, 0x00b10400, 0x00030003 }, |
{ 0x00810040, 0x23e03dad, 0x008d03e0, 0x00010001 }, |
{ 0x00200201, 0x25ec018d, 0x00450600, 0x00000000 }, |
{ 0x00810040, 0x23e03dad, 0x028d03e0, 0x00010001 }, |
{ 0x03800010, 0x200035ac, 0x008d0340, 0x008d03e0 }, |
{ 0x05800010, 0x200035ac, 0x028d0340, 0x008d43e0 }, |
{ 0x00800042, 0x24c0462d, 0x00b19830, 0x00b19c00 }, |
{ 0x00810001, 0x234001ad, 0x008d03e0, 0x00000000 }, |
{ 0x00810001, 0x234001ad, 0x028d43e0, 0x00000000 }, |
{ 0x00200201, 0x260001ac, 0x004505ec, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19830, 0x008d0340 }, |
{ 0x80800040, 0x43403631, 0x00b19c00, 0x008d4340 }, |
{ 0x00800001, 0xb8300231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00800040, 0x2400362c, 0x00b19810, 0x008d04c0 }, |
{ 0x00800048, 0x24003e2c, 0x00b19820, 0xfffefffe }, |
{ 0x00800008, 0x23603d8d, 0x00b10400, 0x00010001 }, |
{ 0x03800010, 0x200025ac, 0x008d0360, 0x008d0200 }, |
{ 0x05800010, 0x200025ac, 0x028d0360, 0x008d4200 }, |
{ 0x00810001, 0x2360012d, 0x008d0200, 0x00000000 }, |
{ 0x00810001, 0x2360012d, 0x028d4200, 0x00000000 }, |
{ 0x00000201, 0x260201ac, 0x000005ee, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19820, 0x008d0360 }, |
{ 0x00800001, 0xb8200231, 0x00ae0360, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00800040, 0x2400362c, 0x00b19c20, 0x008d04c0 }, |
{ 0x00800048, 0x24003e2c, 0x00b19c10, 0xfffefffe }, |
{ 0x00800008, 0x23603d8d, 0x00b10400, 0x00010001 }, |
{ 0x03800010, 0x200025ac, 0x008d0360, 0x008d0200 }, |
{ 0x05800010, 0x200025ac, 0x028d0360, 0x008d4200 }, |
{ 0x00810001, 0x2360012d, 0x008d0200, 0x00000000 }, |
{ 0x00810001, 0x2360012d, 0x028d4200, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19c10, 0x008d0360 }, |
{ 0x00800001, 0xbc100231, 0x00ae0360, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007c0, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00010001 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000001, 0x206801ed, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00030003 }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc4 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffc8 }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00800001, 0x240001ac, 0x00000068, 0x00000000 }, |
{ 0x00000048, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff2 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00600401, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x26140061, 0x00000000, 0x01800000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000801, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00000040, 0x2078252d, 0x00000026, 0x00004280 }, |
{ 0x00400001, 0x26000231, 0x00000078, 0x00000000 }, |
{ 0x00600031, 0x26201c21, 0x308d0600, 0x02000002 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffffe8 }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000012 }, |
{ 0x00000000, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00400441, 0x45c03dad, 0x00000034, 0x00100010 }, |
{ 0x00400841, 0x45c23dad, 0x00000036, 0x00200020 }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x25e42c21, 0x000005e4, 0x00800080 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x00000005, 0x202a3dad, 0x0000002a, 0xfffdfffd }, |
{ 0x00800001, 0x2220022d, 0x000d002c, 0x00000000 }, |
{ 0x00600040, 0x22303dad, 0x008d0230, 0x00080008 }, |
{ 0x02000005, 0x20002d2c, 0x0200002a, 0x00020002 }, |
{ 0x00000001, 0x27e80021, 0x000005e4, 0x00000000 }, |
{ 0x00010040, 0x27e83c21, 0x020007e8, 0x00400040 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000005, 0x25ec2e29, 0x00009002, 0x000a000a }, |
{ 0x00000005, 0x25ea2e29, 0x00009002, 0x00060006 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x00000252 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000250 }, |
{ 0x01000010, 0x20003d2c, 0x000005ec, 0x00080008 }, |
{ 0x00000005, 0x25e03d8d, 0x00000600, 0x00010001 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0248a002 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0248e702 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0248e602 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c4, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c6, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02186004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02186704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02186604 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x23400025, 0x408d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x00800001, 0x204001a9, 0x002e0340, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x01000010, 0x20003d2c, 0x020005ea, 0x00040004 }, |
{ 0x00800008, 0x2340352d, 0x00009050, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009052, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x01000010, 0x20003d2c, 0x000005ea, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x02600005, 0x20003dac, 0x00650340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02650360, 0x00010001 }, |
{ 0x00400401, 0x41c00229, 0x000090c0, 0x00000000 }, |
{ 0x00400801, 0x41c20229, 0x000090e0, 0x00000000 }, |
{ 0x00400401, 0x41e00229, 0x000090c1, 0x00000000 }, |
{ 0x00400801, 0x41e20229, 0x000090e1, 0x00000000 }, |
{ 0x00400401, 0x42000229, 0x006990a0, 0x00000000 }, |
{ 0x00400801, 0x42020229, 0x006990e8, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00400401, 0x21c00229, 0x000090c0, 0x00000000 }, |
{ 0x00400801, 0x21c80229, 0x000090e0, 0x00000000 }, |
{ 0x00400401, 0x21e00229, 0x000090c1, 0x00000000 }, |
{ 0x00400801, 0x21e80229, 0x000090e1, 0x00000000 }, |
{ 0x00400401, 0x22000229, 0x006990a0, 0x00000000 }, |
{ 0x00400801, 0x22080229, 0x006990e8, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00600001, 0x21c00229, 0x000090c0, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c1, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490a0, 0x00000000 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001c8 }, |
{ 0x01400010, 0x20003d2c, 0x000005ea, 0x00040004 }, |
{ 0x01400010, 0x20003d2c, 0x020005ea, 0x00020002 }, |
{ 0x00600001, 0x21c00229, 0x000090c8, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c9, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490b0, 0x00000000 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00410041 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00410401, 0x41c00229, 0x000090c8, 0x00000000 }, |
{ 0x00410801, 0x41c20229, 0x000090f0, 0x00000000 }, |
{ 0x00410401, 0x41e00229, 0x000090c9, 0x00000000 }, |
{ 0x00410801, 0x41e20229, 0x000090f1, 0x00000000 }, |
{ 0x00410401, 0x42000229, 0x006990b0, 0x00000000 }, |
{ 0x00410801, 0x42020229, 0x006990f8, 0x00000000 }, |
{ 0x00410401, 0x21c00229, 0x020090c8, 0x00000000 }, |
{ 0x00410801, 0x21c80229, 0x020090f0, 0x00000000 }, |
{ 0x00410401, 0x21e00229, 0x020090c9, 0x00000000 }, |
{ 0x00410801, 0x21e80229, 0x020090f1, 0x00000000 }, |
{ 0x00410401, 0x22000229, 0x026990b0, 0x00000000 }, |
{ 0x00410801, 0x22080229, 0x026990f8, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000019c }, |
{ 0x00800008, 0x2340352d, 0x00009042, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00600001, 0x21c00229, 0x000090c4, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c5, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490a4, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000184 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00600001, 0x21c00229, 0x000090cc, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090cd, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490b4, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000174 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c4, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c6, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x00600401, 0x2340012d, 0x00890040, 0x00000000 }, |
{ 0x00600801, 0x2350012d, 0x00890048, 0x00000000 }, |
{ 0x00600001, 0x204001aa, 0x00270340, 0x00000000 }, |
{ 0x00600001, 0x205001aa, 0x00270350, 0x00000000 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x04082004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x04082704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x04082604 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da5, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02186004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x01000005, 0x20003dac, 0x020005e0, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000006 }, |
{ 0x00000440, 0x27e43ca5, 0x000007e4, 0xfffefffe }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x00100000 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000c }, |
{ 0x0000000c, 0x27e43da5, 0x000005c2, 0x00020002 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02186704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02186604 }, |
{ 0x00000040, 0x27e43ca5, 0x000007e4, 0xfffefffe }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x20400021, 0x408d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00000001, 0x260201ac, 0x000005e0, 0x00000000 }, |
{ 0x00800008, 0x2340352d, 0x00009054, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009056, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000026 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00600001, 0x21c00229, 0x000090c2, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c3, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490a8, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000f0 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00410041 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00600001, 0x21c00229, 0x000090ca, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090cb, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490b8, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000e0 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05000500 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05200520 }, |
{ 0x00800001, 0x25000129, 0x00ad0040, 0x00000000 }, |
{ 0x00800001, 0x25200129, 0x00ad00c0, 0x00000000 }, |
{ 0x00600001, 0x21c00229, 0x000090c2, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c3, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490a8, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000c6 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05010501 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05210521 }, |
{ 0x00600001, 0x21c00229, 0x000090ca, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090cb, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490b8, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000b6 }, |
{ 0x00800008, 0x2340352d, 0x0000905c, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x0000905e, 0x008d0220 }, |
{ 0x00600001, 0x20600129, 0x008d0510, 0x00000000 }, |
{ 0x00600001, 0x20c00129, 0x008d0520, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05000500 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05200520 }, |
{ 0x00800001, 0x25000129, 0x00ad0050, 0x00000000 }, |
{ 0x00800001, 0x25200129, 0x00ad00d0, 0x00000000 }, |
{ 0x00600001, 0x21c00229, 0x000090e2, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090e3, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490ec, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000096 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05010501 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05210521 }, |
{ 0x00600001, 0x21c00229, 0x000090f2, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090f3, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490fc, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00600001, 0x20700129, 0x008d0510, 0x00000000 }, |
{ 0x00600001, 0x20d00129, 0x008d0520, 0x00000000 }, |
{ 0x00800008, 0x2340352d, 0x00009048, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00600001, 0x21c00229, 0x000090c4, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c5, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490ac, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00600001, 0x21c00229, 0x000090cc, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090cd, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490bc, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000005a }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0a082004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0a082704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0a082604 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x01600005, 0x20003dac, 0x020005e0, 0x00010001 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00610001, 0x20400022, 0x028d0040, 0x00000000 }, |
{ 0x00710001, 0x20400022, 0x028d0060, 0x00000000 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0418a004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000c }, |
{ 0x0000000c, 0x27e43da5, 0x000005c2, 0x00020002 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0418a704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0418a604 }, |
{ 0x00000040, 0x27e43ca5, 0x000007e4, 0xfffefffe }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003dac, 0x0000002a, 0x00020002 }, |
{ 0x00000006, 0x202a3dad, 0x0000002a, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffd94 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00600040, 0x2400462d, 0x00ae9c00, 0x00aed810 }, |
{ 0x00600040, 0x2340462d, 0x00ae9800, 0x00aed810 }, |
{ 0x00600040, 0x2360462d, 0x00ae9c10, 0x00aedc00 }, |
{ 0x05810010, 0x200025ac, 0x008d2400, 0x008d01c0 }, |
{ 0x05810010, 0x200025ac, 0x008d2340, 0x008d01e0 }, |
{ 0x05810010, 0x200025ac, 0x008d2360, 0x008d01e0 }, |
{ 0x00618022, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x00618022, 0x34001c00, 0x02001400, 0x00000016 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9c10, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x00ae9800, 0x00020002 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00ae9810 }, |
{ 0x80600008, 0x43403d91, 0x008d0400, 0x00020002 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9800, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x00ae9c10, 0x00020002 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00ae9c00 }, |
{ 0x80600008, 0x43603d91, 0x008d0400, 0x00020002 }, |
{ 0x00600001, 0xd8100231, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0xdc000231, 0x00ae0360, 0x00000000 }, |
{ 0x00608024, 0x34001c00, 0x00001400, 0x0001001e }, |
{ 0x00600040, 0x23e03d2d, 0x008d0200, 0x00010001 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9800, 0x00040004 }, |
{ 0x00600048, 0x24003dac, 0x008d0400, 0x00040004 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00aedc10 }, |
{ 0x00600008, 0x23403d8d, 0x008d0400, 0x00030003 }, |
{ 0x03600010, 0x200035ac, 0x008d0340, 0x008d03e0 }, |
{ 0x05600010, 0x200035ac, 0x028d0340, 0x008d43e0 }, |
{ 0x00610001, 0x234001ad, 0x008d03e0, 0x00000000 }, |
{ 0x00610001, 0x234001ad, 0x028d43e0, 0x00000000 }, |
{ 0x80600040, 0x43603631, 0x00ae9810, 0x008d0340 }, |
{ 0x80600040, 0x43403631, 0x00ae9c00, 0x008d4340 }, |
{ 0x00600001, 0xd8100231, 0x00ae0360, 0x00000000 }, |
{ 0x00600001, 0xdc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007c0, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
/drivers/video/i965/shaders/h264/mc/avc_mc.g4b.gen5 |
---|
0,0 → 1,5251 |
{ 0x00600001, 0x27c00021, 0x008d0000, 0x00000000 }, |
{ 0x00200009, 0x27fa3e29, 0x00450064, 0x00040004 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000d4 }, |
{ 0x00000005, 0x220e3e2c, 0x00000070, 0x000f000f }, |
{ 0x00000001, 0x26a00221, 0x00009c38, 0x00000000 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a0 }, |
{ 0x00a02001, 0x24000229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24400229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24800229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24c00229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x25000229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x25400229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x25800229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x25c00229, 0x00b10624, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x22080060, 0x00000000, 0x06440640 }, |
{ 0x00a02001, 0x24000229, 0x00009003, 0x00000000 }, |
{ 0x00a02001, 0x24400229, 0x0000900b, 0x00000000 }, |
{ 0x00a02001, 0x24800229, 0x00009013, 0x00000000 }, |
{ 0x00a02001, 0x24c00229, 0x0000901b, 0x00000000 }, |
{ 0x00a02001, 0x25000229, 0x00009023, 0x00000000 }, |
{ 0x00a02001, 0x25400229, 0x0000902b, 0x00000000 }, |
{ 0x00a02001, 0x25800229, 0x00009033, 0x00000000 }, |
{ 0x00a02001, 0x25c00229, 0x0000903b, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000072 }, |
{ 0x02600005, 0x20000c20, 0x0000006c, 0x00000002 }, |
{ 0x00600005, 0x24000c20, 0x0000006c, 0x00000011 }, |
{ 0x01600007, 0x20000c00, 0x028d0400, 0x00000011 }, |
{ 0x00780001, 0x26240169, 0x00000000, 0x80808080 }, |
{ 0x00780001, 0x66430231, 0x028d0624, 0x00000000 }, |
{ 0x00780001, 0x66630231, 0x028d062c, 0x00000000 }, |
{ 0x00780001, 0x26240231, 0x00cf0643, 0x00000000 }, |
{ 0x00780001, 0x262c0231, 0x00cf0663, 0x00000000 }, |
{ 0x00800040, 0x25e04629, 0x00cf0643, 0x00b10624 }, |
{ 0x00600040, 0x25e02529, 0x008d05e0, 0x008d05f0 }, |
{ 0x00400040, 0x25e02529, 0x006905e0, 0x006905e8 }, |
{ 0x00200040, 0x25e02529, 0x004505e0, 0x004505e4 }, |
{ 0x00a02040, 0x2400252c, 0x000005e0, 0x000005e2 }, |
{ 0x00a02040, 0x24003d8c, 0x00b10400, 0x00100010 }, |
{ 0x00a02008, 0x24003d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x24403d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x24803d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x24c03d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x25003d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x25403d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x25803d89, 0x00b10400, 0x00050005 }, |
{ 0x00a02008, 0x25c03d89, 0x00b10400, 0x00050005 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000044 }, |
{ 0x00600041, 0x26806e2d, 0x008d062c, 0x89abcdef }, |
{ 0x00600041, 0x26906e2d, 0x008d0623, 0xfedcba98 }, |
{ 0x00600041, 0x26a06e2d, 0x00cf0663, 0x89abcdef }, |
{ 0x00600041, 0x26b06e2d, 0x00cf0643, 0x0fedcba9 }, |
{ 0x00000041, 0x26be3e2d, 0x00000623, 0xfff8fff8 }, |
{ 0x00802040, 0x268035ad, 0x008d4680, 0x008d0690 }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0688 }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0684 }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0682 }, |
{ 0x00800001, 0x240001ec, 0x00000000, 0x00200020 }, |
{ 0x00200048, 0x24003dac, 0x00a00680, 0x00050005 }, |
{ 0x00200008, 0x26e03d8d, 0x00450400, 0x00060006 }, |
{ 0x00800001, 0x240001ec, 0x00000000, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x00000633, 0x00100010 }, |
{ 0x00800048, 0x26c03e2d, 0x0000067f, 0x00100010 }, |
{ 0x00800048, 0x272055ad, 0x000006e0, 0x00b10040 }, |
{ 0x00600041, 0x268055ad, 0x000006e2, 0x00ae0040 }, |
{ 0x00600041, 0x26a055ad, 0x000006e2, 0x00ae0041 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b00680 }, |
{ 0x80a02008, 0x44003d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b00682 }, |
{ 0x80a02008, 0x44403d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b00684 }, |
{ 0x80a02008, 0x44803d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b00686 }, |
{ 0x80a02008, 0x44c03d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b00688 }, |
{ 0x80a02008, 0x45003d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b0068a }, |
{ 0x80a02008, 0x45403d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b0068c }, |
{ 0x80a02008, 0x45803d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00b0068e }, |
{ 0x80a02008, 0x45c03d91, 0x00b10400, 0x00050005 }, |
{ 0x00000001, 0x22040060, 0x00000000, 0x00900080 }, |
{ 0x01000005, 0x20000c20, 0x02000068, 0x00003c00 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000020 }, |
{ 0x80802040, 0x440045b1, 0x008d8800, 0x00ae0400 }, |
{ 0x80802040, 0x444045b1, 0x008d8820, 0x00ae0440 }, |
{ 0x80802040, 0x448045b1, 0x008d8840, 0x00ae0480 }, |
{ 0x80802040, 0x44c045b1, 0x008d8860, 0x00ae04c0 }, |
{ 0x80802040, 0x441045b1, 0x008d8880, 0x00ae0410 }, |
{ 0x80802040, 0x445045b1, 0x008d88a0, 0x00ae0450 }, |
{ 0x80802040, 0x449045b1, 0x008d88c0, 0x00ae0490 }, |
{ 0x80802040, 0x44d045b1, 0x008d88e0, 0x00ae04d0 }, |
{ 0x80802040, 0x450045b1, 0x008d8900, 0x00ae0500 }, |
{ 0x80802040, 0x454045b1, 0x008d8920, 0x00ae0540 }, |
{ 0x80802040, 0x458045b1, 0x008d8940, 0x00ae0580 }, |
{ 0x80802040, 0x45c045b1, 0x008d8960, 0x00ae05c0 }, |
{ 0x80802040, 0x451045b1, 0x008d8980, 0x00ae0510 }, |
{ 0x80802040, 0x455045b1, 0x008d89a0, 0x00ae0550 }, |
{ 0x80802040, 0x459045b1, 0x008d89c0, 0x00ae0590 }, |
{ 0x80802040, 0x45d045b1, 0x008d89e0, 0x00ae05d0 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x01800180 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000e2 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x27800021, 0x00000780, 0x00000000 }, |
{ 0x00000001, 0x27a00021, 0x000007a0, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00200440, 0x27c055a5, 0x004507fa, 0x0045002a }, |
{ 0x00000801, 0x27c80061, 0x00000000, 0x0000001b }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x02186000 }, |
{ 0x01600031, 0x26200021, 0x408d07c0, 0x00000200 }, |
{ 0x00000440, 0x27c43ca5, 0x000007c4, 0x00010001 }, |
{ 0x00000801, 0x27c80061, 0x00000000, 0x000f0003 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x00100000 }, |
{ 0x02600031, 0x26400021, 0x408d07c0, 0x00000200 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00000008, 0x27fc3dad, 0x000007fc, 0x00010001 }, |
{ 0x00200440, 0x27c055a5, 0x004507fa, 0x0045002a }, |
{ 0x00000801, 0x27c80061, 0x00000000, 0x00000013 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0xefffc001 }, |
{ 0x01600031, 0x26200021, 0x408d07c0, 0x00000200 }, |
{ 0x00000440, 0x27c43ca5, 0x000007c4, 0x00010001 }, |
{ 0x00000801, 0x27c80061, 0x00000000, 0x00070003 }, |
{ 0x05600031, 0x26400021, 0x408d07c0, 0x00000200 }, |
{ 0x00000008, 0x220e3e2c, 0x0000006c, 0x00060006 }, |
{ 0x00000001, 0x26a002a5, 0x00009c3c, 0x00000000 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a0 }, |
{ 0x02600005, 0x20000c20, 0x0000006c, 0x00000002 }, |
{ 0x00780001, 0x26240169, 0x00000000, 0x80808080 }, |
{ 0x02400005, 0x20000c20, 0x0200006c, 0x00000001 }, |
{ 0x00560001, 0x46420129, 0x02690624, 0x00000000 }, |
{ 0x02400005, 0x20000c20, 0x0200006c, 0x00000010 }, |
{ 0x00560001, 0x46520129, 0x0269062c, 0x00000000 }, |
{ 0x00780001, 0x26240129, 0x00ae0642, 0x00000000 }, |
{ 0x00800040, 0x24004629, 0x00b10624, 0x00650642 }, |
{ 0x00600040, 0x24002529, 0x00650400, 0x00650404 }, |
{ 0x00600040, 0x25202529, 0x00050400, 0x00050404 }, |
{ 0x00600040, 0x25702529, 0x00050408, 0x0005040c }, |
{ 0x00560001, 0x26240169, 0x00000000, 0x80808080 }, |
{ 0x00460001, 0x26240129, 0x028a0652, 0x00000000 }, |
{ 0x00560001, 0x46520129, 0x02690624, 0x00000000 }, |
{ 0x02400005, 0x20000c20, 0x0200006c, 0x00000001 }, |
{ 0x00560001, 0x46420169, 0x02000000, 0x80808080 }, |
{ 0x00460001, 0x46420129, 0x0069062c, 0x00000000 }, |
{ 0x00560001, 0x262c0129, 0x008a0642, 0x00000000 }, |
{ 0x00600040, 0x24004629, 0x008d0624, 0x00650652 }, |
{ 0x00600040, 0x24104629, 0x00650642, 0x008d062c }, |
{ 0x00600040, 0x24002529, 0x00650400, 0x00650404 }, |
{ 0x00600040, 0x25302529, 0x00050408, 0x0005040c }, |
{ 0x00600040, 0x25602529, 0x00050400, 0x00050404 }, |
{ 0x00a02040, 0x24003d2c, 0x00b10520, 0x00040004 }, |
{ 0x00a02008, 0x24003d89, 0x00b10400, 0x00030003 }, |
{ 0x00a02008, 0x24403d89, 0x00b10400, 0x00030003 }, |
{ 0x00a02040, 0x24003d2c, 0x00b10560, 0x00040004 }, |
{ 0x00a02008, 0x24803d89, 0x00b10400, 0x00030003 }, |
{ 0x00a02008, 0x24c03d89, 0x00b10400, 0x00030003 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x22080060, 0x00000000, 0x06440640 }, |
{ 0x00a02001, 0x24000229, 0x00059002, 0x00000000 }, |
{ 0x00a02001, 0x24400229, 0x0005900a, 0x00000000 }, |
{ 0x00a02001, 0x24800229, 0x00059012, 0x00000000 }, |
{ 0x00a02001, 0x24c00229, 0x0005901a, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000003c }, |
{ 0x00a02001, 0x24000229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24400229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24800229, 0x00b10624, 0x00000000 }, |
{ 0x00a02001, 0x24c00229, 0x00b10624, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x00600041, 0x26806e2d, 0x008d062c, 0x44332211 }, |
{ 0x00600041, 0x26906e2d, 0x008d0622, 0xffeeddcc }, |
{ 0x00600041, 0x26a06e2d, 0x00650652, 0x44332211 }, |
{ 0x00600041, 0x26b06e2d, 0x00650642, 0x00ffeedd }, |
{ 0x00200041, 0x26bc3e2d, 0x00450622, 0xfffcfffc }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0690 }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0688 }, |
{ 0x00802040, 0x268035ad, 0x008d0680, 0x008d0684 }, |
{ 0x00800001, 0x240001ec, 0x00000000, 0x00200020 }, |
{ 0x00400048, 0x24003dac, 0x00a50680, 0x00220022 }, |
{ 0x00400008, 0x26e03d8d, 0x00690400, 0x00060006 }, |
{ 0x00800001, 0x240001ec, 0x00000000, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x00050632, 0x00100010 }, |
{ 0x00800048, 0x26c03e2d, 0x0005065e, 0x00100010 }, |
{ 0x00800048, 0x272055ad, 0x000506e0, 0x00240044 }, |
{ 0x00600041, 0x268055ad, 0x000506e4, 0x00440044 }, |
{ 0x00600041, 0x26a055ad, 0x000506e4, 0x00440045 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00050680 }, |
{ 0x80a02008, 0x44003d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00050684 }, |
{ 0x80a02008, 0x44403d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x00050688 }, |
{ 0x80a02008, 0x44803d91, 0x00b10400, 0x00050005 }, |
{ 0x00a02040, 0x240035ac, 0x00b10720, 0x0005068c }, |
{ 0x80a02008, 0x44c03d91, 0x00b10400, 0x00050005 }, |
{ 0x00000040, 0x22063d8c, 0x00000204, 0x00100010 }, |
{ 0x80802040, 0x640045b1, 0x008d8880, 0x00cf0400 }, |
{ 0x80802040, 0x644045b1, 0x008d88a0, 0x00cf0440 }, |
{ 0x80802040, 0x648045b1, 0x008d88c0, 0x00cf0480 }, |
{ 0x80802040, 0x64c045b1, 0x008d88e0, 0x00cf04c0 }, |
{ 0x80802040, 0x640245b1, 0x008d8900, 0x00cf0402 }, |
{ 0x80802040, 0x644245b1, 0x008d8920, 0x00cf0442 }, |
{ 0x80802040, 0x648245b1, 0x008d8940, 0x00cf0482 }, |
{ 0x80802040, 0x64c245b1, 0x008d8960, 0x00cf04c2 }, |
{ 0x00000401, 0x27c80061, 0x00000000, 0x0007000f }, |
{ 0x00200801, 0x27c001a1, 0x004507fa, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x08004000 }, |
{ 0x00800001, 0x20400232, 0x00d20400, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20420, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20440, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d20460, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d20480, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d204a0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d204c0, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d204e0, 0x00000000 }, |
{ 0x01600031, 0x27a00021, 0x508d07c0, 0x00000200 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00000401, 0x27c80061, 0x00000000, 0x000f000f }, |
{ 0x00200801, 0x27c001a1, 0x004507fa, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x0ff04000 }, |
{ 0x00000001, 0x22080060, 0x00000000, 0x04400400 }, |
{ 0x00a02001, 0x20400232, 0x00d29000, 0x00000000 }, |
{ 0x00a02001, 0x20500232, 0x00d29020, 0x00000000 }, |
{ 0x00a02001, 0x20800232, 0x00d29080, 0x00000000 }, |
{ 0x00a02001, 0x20900232, 0x00d290a0, 0x00000000 }, |
{ 0x00a02001, 0x20c00232, 0x00d29100, 0x00000000 }, |
{ 0x00a02001, 0x20d00232, 0x00d29120, 0x00000000 }, |
{ 0x00a02001, 0x21000232, 0x00d29180, 0x00000000 }, |
{ 0x00a02001, 0x21100232, 0x00d291a0, 0x00000000 }, |
{ 0x01600031, 0x27800021, 0x508d07c0, 0x00000200 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0000, 0x00000000 }, |
{ 0x00200009, 0x27fa3e29, 0x00450064, 0x00040004 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff04 }, |
{ 0x00000001, 0x220401ec, 0x00000000, 0x00800080 }, |
{ 0x00000001, 0x22080060, 0x00000000, 0x04100400 }, |
{ 0x00200008, 0x27006e2d, 0x0000006c, 0x00000040 }, |
{ 0x00400001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x272001a9, 0x00b10620, 0x00000000 }, |
{ 0x02600005, 0x20001c20, 0x0000006c, 0x00000008 }, |
{ 0x00110001, 0x27230231, 0x00000624, 0x00000000 }, |
{ 0x00600001, 0x27420231, 0x00cf0643, 0x00000000 }, |
{ 0x00110001, 0x27410231, 0x00000643, 0x00000000 }, |
{ 0x00240001, 0x27400231, 0x00000623, 0x00000000 }, |
{ 0x02000005, 0x20001c20, 0x0200006c, 0x00000002 }, |
{ 0x00010001, 0x27400231, 0x02000624, 0x00000000 }, |
{ 0x02000005, 0x20001c20, 0x0200006c, 0x00000001 }, |
{ 0x00110001, 0x27420231, 0x02000623, 0x00000000 }, |
{ 0x00000005, 0x26803e2d, 0x00000070, 0x000f000f }, |
{ 0x00000001, 0x270801ad, 0x00000700, 0x00000000 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000084 }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00800001, 0x27200231, 0x00b10628, 0x00000000 }, |
{ 0x02600005, 0x20001c20, 0x0200006c, 0x00000004 }, |
{ 0x00680001, 0x272c0231, 0x028d0634, 0x00000000 }, |
{ 0x00780001, 0x272c0231, 0x02000633, 0x00000000 }, |
{ 0x00400001, 0x27420231, 0x00a0040e, 0x00000000 }, |
{ 0x00400001, 0x27460231, 0x00a0044e, 0x00000000 }, |
{ 0x00200001, 0x27400231, 0x0000062b, 0x00000000 }, |
{ 0x02000005, 0x20001c20, 0x0200006c, 0x00000002 }, |
{ 0x00010001, 0x27400231, 0x0200062c, 0x00000000 }, |
{ 0x00110001, 0x27410231, 0x0200040e, 0x00000000 }, |
{ 0x00000008, 0x26803e2d, 0x00000070, 0x00040004 }, |
{ 0x00200040, 0x22083d8c, 0x00450208, 0x00800080 }, |
{ 0x00000006, 0x27083dad, 0x00000700, 0x00010001 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00a02001, 0xb3800231, 0x00d20400, 0x00000000 }, |
{ 0x00a02001, 0xb3a00231, 0x00d20480, 0x00000000 }, |
{ 0x00a02001, 0xb3c00231, 0x00d20440, 0x00000000 }, |
{ 0x00a02001, 0xb3e00231, 0x00d204c0, 0x00000000 }, |
{ 0x02000005, 0x20001c20, 0x00000060, 0x00000002 }, |
{ 0x01000005, 0x20001c20, 0x0200006c, 0x00000001 }, |
{ 0x01010005, 0x20001c20, 0x00000060, 0x00004000 }, |
{ 0x02010005, 0x20001c20, 0x02000060, 0x00000010 }, |
{ 0x00030001, 0x27230231, 0x0000065f, 0x00000000 }, |
{ 0x00030220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02600005, 0x20001c20, 0x0000006c, 0x00000001 }, |
{ 0x00460001, 0x27200231, 0x0069065c, 0x00000000 }, |
{ 0x00110001, 0x27230231, 0x00000458, 0x00000000 }, |
{ 0x00600001, 0x27240231, 0x008d0458, 0x00000000 }, |
{ 0x00600001, 0x272c0231, 0x008d0478, 0x00000000 }, |
{ 0x00600001, 0x27420231, 0x00cf0663, 0x00000000 }, |
{ 0x00000001, 0x27400231, 0x00000458, 0x00000000 }, |
{ 0x00010001, 0x27410231, 0x0000065f, 0x00000000 }, |
{ 0x00110001, 0x27410231, 0x00000663, 0x00000000 }, |
{ 0x02000005, 0x20001c20, 0x0200006c, 0x00000010 }, |
{ 0x00110001, 0x27420231, 0x0200065f, 0x00000000 }, |
{ 0x00000005, 0x26803e2d, 0x00000071, 0x000f000f }, |
{ 0x00000006, 0x27083dad, 0x00000702, 0x00020002 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00400001, 0x27200231, 0x0069045c, 0x00000000 }, |
{ 0x00600001, 0x27240231, 0x008d0478, 0x00000000 }, |
{ 0x00800001, 0x272c0231, 0x0000047f, 0x00000000 }, |
{ 0x00400001, 0x27420231, 0x00a0048e, 0x00000000 }, |
{ 0x00400001, 0x27460231, 0x00a004ce, 0x00000000 }, |
{ 0x00000001, 0x27400231, 0x00000478, 0x00000000 }, |
{ 0x00000001, 0x27410231, 0x0000045f, 0x00000000 }, |
{ 0x00000008, 0x26803e2d, 0x00000071, 0x00040004 }, |
{ 0x00200040, 0x22083d8c, 0x00450208, 0x00800080 }, |
{ 0x00000006, 0x27083dad, 0x00000700, 0x00030003 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00a02001, 0xb3800231, 0x00d20480, 0x00000000 }, |
{ 0x00a02001, 0xb3a00231, 0x00d20500, 0x00000000 }, |
{ 0x00a02001, 0xb3c00231, 0x00d204c0, 0x00000000 }, |
{ 0x00a02001, 0xb3e00231, 0x00d20540, 0x00000000 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000100 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffe74 }, |
{ 0x00000001, 0x27800021, 0x00000780, 0x00000000 }, |
{ 0x00000001, 0x27a00021, 0x000007a0, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00000001, 0x27340231, 0x00000733, 0x00000000 }, |
{ 0x00600001, 0x274a0231, 0x00000749, 0x00000000 }, |
{ 0x00800040, 0x24003e2c, 0x00b10723, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10724, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10725, 0x00010001 }, |
{ 0x00800008, 0x26c03d8d, 0x008d0400, 0x00020002 }, |
{ 0x00800040, 0x24003e2c, 0x00b10740, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10741, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10742, 0x00010001 }, |
{ 0x00800008, 0x26a03d8d, 0x008d0400, 0x00020002 }, |
{ 0x00800001, 0x27240231, 0x00d206c0, 0x00000000 }, |
{ 0x00600001, 0x27400231, 0x00ae06a2, 0x00000000 }, |
{ 0x00000001, 0x27230231, 0x000006a0, 0x00000000 }, |
{ 0x00000005, 0x220e3dac, 0x00000680, 0x000f000f }, |
{ 0x00000001, 0x26a00221, 0x00009c2c, 0x00000000 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a0 }, |
{ 0x80800040, 0xd00045b1, 0x00b18800, 0x000d0724 }, |
{ 0x80800040, 0xd02045b1, 0x00b18820, 0x000d0724 }, |
{ 0x80800040, 0xd04045b1, 0x00b18840, 0x000d0724 }, |
{ 0x80800040, 0xd06045b1, 0x00b18860, 0x000d0724 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x80800040, 0xd00045b1, 0x00b18800, 0x002c0740 }, |
{ 0x80800040, 0xd02045b1, 0x00b18820, 0x002c0742 }, |
{ 0x80800040, 0xd04045b1, 0x00b18840, 0x002c0744 }, |
{ 0x80800040, 0xd06045b1, 0x00b18860, 0x002c0746 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x02802005, 0x20003da0, 0x00000708, 0x00020002 }, |
{ 0x02600005, 0x20003da0, 0x02000708, 0x00010001 }, |
{ 0x009a0001, 0x27200169, 0x00000000, 0x80808080 }, |
{ 0x00780001, 0x27400231, 0x028d0724, 0x00000000 }, |
{ 0x00780001, 0x27240231, 0x008d0740, 0x00000000 }, |
{ 0x00600040, 0x25e04629, 0x008d0724, 0x008d0740 }, |
{ 0x00400040, 0x25e02529, 0x006905e0, 0x006905e8 }, |
{ 0x00200040, 0x25e02529, 0x004505e0, 0x004505e4 }, |
{ 0x00800040, 0x2400252c, 0x000005e0, 0x000005e2 }, |
{ 0x00800040, 0x24003d8c, 0x008d0400, 0x00080008 }, |
{ 0x00800008, 0x26803d8d, 0x008d0400, 0x00040004 }, |
{ 0x80800040, 0xd00035b1, 0x00b18800, 0x00b10680 }, |
{ 0x80800040, 0xd02035b1, 0x00b18820, 0x00b10680 }, |
{ 0x80800040, 0xd04035b1, 0x00b18840, 0x00b10680 }, |
{ 0x80800040, 0xd06035b1, 0x00b18860, 0x00b10680 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00600001, 0x27340231, 0x008d0733, 0x00000000 }, |
{ 0x00800040, 0x24003e2c, 0x00b10726, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10725, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10724, 0x00010001 }, |
{ 0x00800008, 0x26803d8d, 0x00b10400, 0x00020002 }, |
{ 0x80800040, 0xd00035b1, 0x00b18800, 0x002d0680 }, |
{ 0x80800040, 0xd02035b1, 0x00b18820, 0x002d0684 }, |
{ 0x80800040, 0xd04035b1, 0x00b18840, 0x002d0688 }, |
{ 0x80800040, 0xd06035b1, 0x00b18860, 0x002d068c }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00400009, 0x26c05421, 0x00000744, 0x00690050 }, |
{ 0x00400009, 0x26d05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26a00231, 0x00cf06c3, 0x00000000 }, |
{ 0x00800001, 0x26a80231, 0x00b10723, 0x00000000 }, |
{ 0x00800040, 0x24003e2c, 0x00b106a2, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a1, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a0, 0x00010001 }, |
{ 0x00800008, 0x26a03d8d, 0x00b10400, 0x00020002 }, |
{ 0x00200040, 0x220c3eac, 0x00450056, 0x06a006a0 }, |
{ 0x80800040, 0xd06035b1, 0x01ed9800, 0x00b18860 }, |
{ 0x80800040, 0xd04035b1, 0x01ed9804, 0x00b18840 }, |
{ 0x80800040, 0xd02035b1, 0x01ed9808, 0x00b18820 }, |
{ 0x80800040, 0xd00035b1, 0x01ed980c, 0x00b18800 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00400009, 0x26c05421, 0x00000744, 0x00690050 }, |
{ 0x00400009, 0x26d05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26a00231, 0x00cf06c3, 0x00000000 }, |
{ 0x00800001, 0x26a80231, 0x00b10723, 0x00000000 }, |
{ 0x00800042, 0x25c04629, 0x00b106a8, 0x00b106a9 }, |
{ 0x00800040, 0x24003e2c, 0x00b106a3, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a2, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a1, 0x00010001 }, |
{ 0x00800008, 0x26c03d8d, 0x008d0400, 0x00020002 }, |
{ 0x00600001, 0x26a00231, 0x00ae06c0, 0x00000000 }, |
{ 0x00600001, 0x46a60231, 0x00ae06cc, 0x00000000 }, |
{ 0x00600001, 0x46a70231, 0x00ae05c0, 0x00000000 }, |
{ 0x00200040, 0x220c3eac, 0x00450036, 0x06a006a0 }, |
{ 0x80800040, 0xd0603631, 0x01ee9800, 0x00b18860 }, |
{ 0x80800040, 0xd0403631, 0x01ee9802, 0x00b18840 }, |
{ 0x80800040, 0xd0203631, 0x01ee9804, 0x00b18820 }, |
{ 0x80800040, 0xd0003631, 0x01ee9806, 0x00b18800 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00400009, 0x26c05421, 0x00000744, 0x00690050 }, |
{ 0x00400009, 0x26d05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26a00231, 0x00ab06c3, 0x00000000 }, |
{ 0x00800001, 0x26a80231, 0x00b10723, 0x00000000 }, |
{ 0x00800040, 0x24003e2c, 0x00b106a2, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a1, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b106a0, 0x00010001 }, |
{ 0x00800008, 0x25c03d89, 0x008d0400, 0x00020002 }, |
{ 0x00800042, 0x26a0462d, 0x00b106a0, 0x00b106a1 }, |
{ 0x00600001, 0x46a10231, 0x00ae05c0, 0x00000000 }, |
{ 0x00600001, 0x26b00231, 0x00ae05d0, 0x00000000 }, |
{ 0x00200040, 0x220c3eac, 0x00450056, 0x06a006a0 }, |
{ 0x80800040, 0xd0603631, 0x01ed9800, 0x00b18860 }, |
{ 0x80800040, 0xd0403631, 0x01ed9804, 0x00b18840 }, |
{ 0x80800040, 0xd0203631, 0x01ed9808, 0x00b18820 }, |
{ 0x80800040, 0xd0003631, 0x01ed980c, 0x00b18800 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00800042, 0x25c04629, 0x00b10724, 0x00b10725 }, |
{ 0x00800040, 0x24003e2c, 0x00b10726, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10725, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10724, 0x00010001 }, |
{ 0x00800008, 0x25e03d89, 0x002d0400, 0x00020002 }, |
{ 0x80800040, 0xd0003531, 0x00ad05c0, 0x00b18800 }, |
{ 0x80800040, 0xd0203531, 0x00ad05c2, 0x00b18820 }, |
{ 0x80800040, 0xd0403531, 0x00ad05c4, 0x00b18840 }, |
{ 0x80800040, 0xd0603531, 0x00ad05c6, 0x00b18860 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00600001, 0x27480231, 0x00000747, 0x00000000 }, |
{ 0x00800042, 0x25c04629, 0x00b10740, 0x00b10741 }, |
{ 0x00800040, 0x24003e2c, 0x00b10742, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10741, 0x00020002 }, |
{ 0x00800048, 0x24003e2c, 0x00b10740, 0x00010001 }, |
{ 0x00800008, 0x25e03d89, 0x002d0400, 0x00020002 }, |
{ 0x00800001, 0x45c10231, 0x00d205e0, 0x00000000 }, |
{ 0x80800040, 0xd0003631, 0x004d05c0, 0x00b18800 }, |
{ 0x80800040, 0xd0203631, 0x004d05c4, 0x00b18820 }, |
{ 0x80800040, 0xd0403631, 0x004d05c8, 0x00b18840 }, |
{ 0x80800040, 0xd0603631, 0x004d05cc, 0x00b18860 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00000401, 0x27c80061, 0x00000000, 0x000f000f }, |
{ 0x00200801, 0x27c001a1, 0x004507fa, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x0ff04000 }, |
{ 0x00800001, 0x20400232, 0x00cd0400, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00cd0408, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00cd0410, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00cd0418, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00cd0440, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00cd0448, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00cd0450, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00cd0458, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00cd0480, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00cd0488, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00cd0490, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00cd0498, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00cd04c0, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00cd04c8, 0x00000000 }, |
{ 0x00800001, 0x21200232, 0x00cd04d0, 0x00000000 }, |
{ 0x00800001, 0x21300232, 0x00cd04d8, 0x00000000 }, |
{ 0x01600031, 0x27800021, 0x508d07c0, 0x00000200 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0000, 0x00000000 }, |
{ 0x00200009, 0x27fa3e29, 0x00450064, 0x00040004 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffd34 }, |
{ 0x00000001, 0x220401ec, 0x00000000, 0x00800080 }, |
{ 0x00000001, 0x220601ec, 0x00000000, 0x04000400 }, |
{ 0x00200008, 0x27006e2d, 0x0000006c, 0x00000040 }, |
{ 0x02600005, 0x20003e20, 0x0000006c, 0x00040004 }, |
{ 0x00780001, 0x26340231, 0x00000633, 0x00000000 }, |
{ 0x00800001, 0x27200231, 0x00b10620, 0x00000000 }, |
{ 0x00600001, 0x27400231, 0x00cf0643, 0x00000000 }, |
{ 0x00400008, 0x26806e2d, 0x00240070, 0x00004040 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00000006, 0x27003dad, 0x00000700, 0x00010001 }, |
{ 0x00800001, 0x27200231, 0x00b10628, 0x00000000 }, |
{ 0x00400001, 0x27400231, 0x00808c26, 0x00000000 }, |
{ 0x00400001, 0x27440231, 0x00808c66, 0x00000000 }, |
{ 0x00400008, 0x26806e2d, 0x00240072, 0x00004040 }, |
{ 0x00000040, 0x22063d8c, 0x00000206, 0x00800080 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000058 }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00000006, 0x27003dad, 0x00000702, 0x00020002 }, |
{ 0x00800001, 0xaf800231, 0x00d28f80, 0x00000000 }, |
{ 0x00800001, 0xaf900231, 0x00d28fa0, 0x00000000 }, |
{ 0x00800001, 0xafc00231, 0x00d28fc0, 0x00000000 }, |
{ 0x00800001, 0xafd00231, 0x00d28fe0, 0x00000000 }, |
{ 0x00800001, 0xafa00231, 0x00d28c00, 0x00000000 }, |
{ 0x00800001, 0xafb00231, 0x00d28c20, 0x00000000 }, |
{ 0x00800001, 0xafe00231, 0x00d28c40, 0x00000000 }, |
{ 0x00800001, 0xaff00231, 0x00d28c60, 0x00000000 }, |
{ 0x00400001, 0x27200231, 0x0069065c, 0x00000000 }, |
{ 0x00600001, 0x27240231, 0x00a98fcc, 0x00000000 }, |
{ 0x00600001, 0x272c0231, 0x00a98fec, 0x00000000 }, |
{ 0x00600001, 0x27340231, 0x00008fff, 0x00000000 }, |
{ 0x00800001, 0x2620012d, 0x00b10720, 0x00000000 }, |
{ 0x00600001, 0x27400231, 0x00cf0663, 0x00000000 }, |
{ 0x00400008, 0x26806e2d, 0x00240074, 0x00004040 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x00000040, 0x22043d8c, 0x00000204, 0x00800080 }, |
{ 0x00000006, 0x27003dad, 0x00000700, 0x00010001 }, |
{ 0x00800001, 0x27200231, 0x00b10628, 0x00000000 }, |
{ 0x00600001, 0x27300231, 0x008d0638, 0x00000000 }, |
{ 0x00400001, 0x27400231, 0x00808c26, 0x00000000 }, |
{ 0x00400001, 0x27440231, 0x00808c66, 0x00000000 }, |
{ 0x00400008, 0x26806e2d, 0x00240076, 0x00004040 }, |
{ 0x00000040, 0x22063d8c, 0x00000206, 0x00800080 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x00800001, 0xaf800231, 0x00d28f80, 0x00000000 }, |
{ 0x00800001, 0xaf900231, 0x00d28fa0, 0x00000000 }, |
{ 0x00800001, 0xafc00231, 0x00d28fc0, 0x00000000 }, |
{ 0x00800001, 0xafd00231, 0x00d28fe0, 0x00000000 }, |
{ 0x00800001, 0xafa00231, 0x00d28c00, 0x00000000 }, |
{ 0x00800001, 0xafb00231, 0x00d28c20, 0x00000000 }, |
{ 0x00800001, 0xafe00231, 0x00d28c40, 0x00000000 }, |
{ 0x00800001, 0xaff00231, 0x00d28c60, 0x00000000 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000e0 }, |
{ 0x00000040, 0x27e01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffcce }, |
{ 0x00000001, 0x27800021, 0x00000780, 0x00000000 }, |
{ 0x00000001, 0x27a00021, 0x000007a0, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00600001, 0x27800231, 0x008d0740, 0x00000000 }, |
{ 0x00400005, 0x22083dac, 0x00690680, 0x000f000f }, |
{ 0x00400040, 0x26a04625, 0x01e09020, 0x00690058 }, |
{ 0x00000001, 0x26d001ad, 0x00000700, 0x00000000 }, |
{ 0x00000040, 0x27e41c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a0 }, |
{ 0x80600040, 0xcc0035b1, 0x00898800, 0x008d0760 }, |
{ 0x80600040, 0xcc1035b1, 0x00898820, 0x008d0770 }, |
{ 0x00800001, 0x27200231, 0x008d0724, 0x00000000 }, |
{ 0x00400001, 0x27400231, 0x00808c06, 0x00000000 }, |
{ 0x00000006, 0x26d03dad, 0x00000700, 0x00010001 }, |
{ 0x00000040, 0x27e41c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a4 }, |
{ 0x80600040, 0xcc2035b1, 0x00898808, 0x008d0760 }, |
{ 0x80600040, 0xcc3035b1, 0x00898828, 0x008d0770 }, |
{ 0x00000001, 0x27230231, 0x00000783, 0x00000000 }, |
{ 0x00400001, 0x27240231, 0x008a8c18, 0x00000000 }, |
{ 0x00400001, 0x27280231, 0x008a8c38, 0x00000000 }, |
{ 0x00400001, 0x272c0231, 0x00008c3e, 0x00000000 }, |
{ 0x00400001, 0x27400231, 0x00690784, 0x00000000 }, |
{ 0x00000006, 0x26d03dad, 0x00000700, 0x00020002 }, |
{ 0x00000040, 0x27e41c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006a8 }, |
{ 0x80600040, 0xcc4035b1, 0x00898840, 0x008d0760 }, |
{ 0x80600040, 0xcc5035b1, 0x00898860, 0x008d0770 }, |
{ 0x00800001, 0x27200231, 0x008d0724, 0x00000000 }, |
{ 0x00600001, 0x27280231, 0x00000727, 0x00000000 }, |
{ 0x00400001, 0x27400231, 0x00808c46, 0x00000000 }, |
{ 0x00000006, 0x26d03dad, 0x00000700, 0x00030003 }, |
{ 0x00000040, 0x27e41c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x000006ac }, |
{ 0x80600040, 0xcc6035b1, 0x00898848, 0x008d0760 }, |
{ 0x80600040, 0xcc7035b1, 0x00898868, 0x008d0770 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x00800001, 0x2760022d, 0x00090724, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00800001, 0x2760022d, 0x00280740, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x02802005, 0x20003da0, 0x000006d0, 0x00020002 }, |
{ 0x02802005, 0x20003da0, 0x020006d0, 0x00010001 }, |
{ 0x009a0001, 0x27200169, 0x00000000, 0x80808080 }, |
{ 0x00780001, 0x27400231, 0x028d0724, 0x00000000 }, |
{ 0x00780001, 0x27240231, 0x008d0740, 0x00000000 }, |
{ 0x00400040, 0x25e04629, 0x00690724, 0x00690740 }, |
{ 0x00200040, 0x25e02529, 0x004505e0, 0x004505e4 }, |
{ 0x00800040, 0x2400252c, 0x000005e0, 0x000005e2 }, |
{ 0x00800040, 0x24003d8c, 0x008d0400, 0x00040004 }, |
{ 0x00800008, 0x27603d8d, 0x008d0400, 0x00030003 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00600001, 0x26c00231, 0x008d0724, 0x00000000 }, |
{ 0x00400001, 0x26c80231, 0x0069072b, 0x00000000 }, |
{ 0x00600040, 0x24003e2c, 0x008d06c2, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d06c1, 0x00020002 }, |
{ 0x00600048, 0x25e03e29, 0x008d06c0, 0x00010001 }, |
{ 0x00800008, 0x27603d2d, 0x002905e0, 0x00020002 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00400009, 0x26e05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26c40231, 0x008d0723, 0x00000000 }, |
{ 0x00400001, 0x26c00231, 0x00ab06e3, 0x00000000 }, |
{ 0x00600040, 0x24003e2c, 0x008d06c2, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d06c1, 0x00020002 }, |
{ 0x00600048, 0x26c03e2d, 0x008d06c0, 0x00010001 }, |
{ 0x00400040, 0x22083eac, 0x00690054, 0x06c006c0 }, |
{ 0x00800008, 0x27603dad, 0x01e99000, 0x00020002 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00400009, 0x26e05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26c40231, 0x008d0723, 0x00000000 }, |
{ 0x00400001, 0x26c00231, 0x00ab06e3, 0x00000000 }, |
{ 0x00600042, 0x25c04629, 0x008d06c4, 0x008d06c5 }, |
{ 0x00600040, 0x24003e2c, 0x008d06c3, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d06c2, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d06c1, 0x00010001 }, |
{ 0x00600008, 0x26c03d8d, 0x008d0400, 0x00020002 }, |
{ 0x00400001, 0x46c401ad, 0x006906c4, 0x00000000 }, |
{ 0x00400001, 0x46c6012d, 0x006905c0, 0x00000000 }, |
{ 0x00400040, 0x22083eac, 0x00690054, 0x06c006c0 }, |
{ 0x00800001, 0x276001ad, 0x01ea9000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00400009, 0x26e05421, 0x00000740, 0x00690050 }, |
{ 0x00600001, 0x26c40231, 0x008d0723, 0x00000000 }, |
{ 0x00400001, 0x26c00231, 0x00ab06e3, 0x00000000 }, |
{ 0x00600042, 0x25c04629, 0x008d06c0, 0x008d06c1 }, |
{ 0x00600040, 0x24003e2c, 0x008d06c2, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d06c1, 0x00020002 }, |
{ 0x00600048, 0x26e03e2d, 0x008d06c0, 0x00010001 }, |
{ 0x00400008, 0x46c23dad, 0x006906e0, 0x00020002 }, |
{ 0x00200008, 0x26d03dad, 0x004506e8, 0x00020002 }, |
{ 0x00400001, 0x46c0012d, 0x006905c0, 0x00000000 }, |
{ 0x00400009, 0x22083eac, 0x00690054, 0x00010001 }, |
{ 0x00400040, 0x22083d8c, 0x00690208, 0x06c006c0 }, |
{ 0x00800001, 0x276001ad, 0x01e99000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00600042, 0x45c04629, 0x008d0724, 0x008d0725 }, |
{ 0x00600040, 0x24003e2c, 0x008d0726, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d0725, 0x00020002 }, |
{ 0x00600048, 0x25e03e29, 0x008d0724, 0x00010001 }, |
{ 0x00600008, 0x45c23d29, 0x008d05e0, 0x00020002 }, |
{ 0x00800001, 0x2760012d, 0x002a05c0, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00600001, 0x27440231, 0x00000743, 0x00000000 }, |
{ 0x00600042, 0x45c04629, 0x008d0740, 0x008d0741 }, |
{ 0x00600040, 0x24003e2c, 0x008d0742, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x008d0741, 0x00020002 }, |
{ 0x00600048, 0x25e03e29, 0x008d0740, 0x00010001 }, |
{ 0x00600008, 0x45c23d29, 0x008d05e0, 0x00020002 }, |
{ 0x00800001, 0x2760012d, 0x004905c0, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007e4, 0x00000000 }, |
{ 0x00000401, 0x27c80061, 0x00000000, 0x000f000f }, |
{ 0x00200801, 0x27c001a1, 0x004507fa, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x0ff04000 }, |
{ 0x00800001, 0x20400232, 0x00a90400, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00a90404, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00a90408, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00a9040c, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00a90440, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00a90444, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00a90448, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00a9044c, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00a90480, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00a90484, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00a90488, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00a9048c, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00a904c0, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00a904c4, 0x00000000 }, |
{ 0x00800001, 0x21200232, 0x00a904c8, 0x00000000 }, |
{ 0x00800001, 0x21300232, 0x00a904cc, 0x00000000 }, |
{ 0x01600031, 0x27800021, 0x508d07c0, 0x00000200 }, |
{ 0x00000001, 0x34000020, 0x000007e0, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0000, 0x00000000 }, |
{ 0x00200009, 0x27fa3e29, 0x00450064, 0x00040004 }, |
{ 0x00000401, 0x27c80061, 0x00000000, 0x000f000f }, |
{ 0x00200809, 0x27c03e21, 0x00450064, 0x00040004 }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x1218a000 }, |
{ 0x00a02401, 0x20400232, 0x00b10080, 0x00000000 }, |
{ 0x00a02801, 0x20500232, 0x00b10090, 0x00000000 }, |
{ 0x00a02401, 0x20800232, 0x00b100c0, 0x00000000 }, |
{ 0x00a02801, 0x20900232, 0x00b100d0, 0x00000000 }, |
{ 0x00a02401, 0x20c00232, 0x00b10100, 0x00000000 }, |
{ 0x00a02801, 0x20d00232, 0x00b10110, 0x00000000 }, |
{ 0x00a02401, 0x21000232, 0x00b10140, 0x00000000 }, |
{ 0x00a02801, 0x21100232, 0x00b10150, 0x00000000 }, |
{ 0x01600031, 0x27800021, 0x508d07c0, 0x00000200 }, |
{ 0x00000401, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x0000080c, 0x20243c22, 0x000007c4, 0x00010001 }, |
{ 0x00000040, 0x22001c00, 0x00000200, 0xf8000001 }, |
{ 0x00800001, 0x40400232, 0x00b10180, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00b101c0, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00b10190, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00b101d0, 0x00000000 }, |
{ 0x00800001, 0x40800232, 0x00b101a0, 0x00000000 }, |
{ 0x00800001, 0x40810232, 0x00b101e0, 0x00000000 }, |
{ 0x00800001, 0x40a00232, 0x00b101b0, 0x00000000 }, |
{ 0x00800001, 0x40a10232, 0x00b101f0, 0x00000000 }, |
{ 0x01600031, 0x27a00001, 0x508d0000, 0x00000200 }, |
{ 0x00000001, 0x27800021, 0x00000780, 0x00000000 }, |
{ 0x00000001, 0x27a00021, 0x000007a0, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0000, 0x00000000 }, |
{ 0x00000005, 0x20203e2d, 0x00000061, 0x001f001f }, |
{ 0x00200009, 0x20643e2d, 0x00450064, 0x00040004 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00000000 }, |
{ 0x01000010, 0x20003dac, 0x00000020, 0x00160016 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x01200010, 0x20003e2c, 0x0200006c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000024 }, |
{ 0x00800009, 0x25403dad, 0x00050064, 0x00020002 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00180018 }, |
{ 0x00200040, 0x45483dad, 0x00660548, 0x00100010 }, |
{ 0x00200040, 0x45523dad, 0x00660552, 0x00100010 }, |
{ 0x00400040, 0x25583dad, 0x00690558, 0x00100010 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0x00200020 }, |
{ 0x00800040, 0x20a035ad, 0x00b100a0, 0x00b10540 }, |
{ 0x00600040, 0x45423dad, 0x00ae0542, 0x00200020 }, |
{ 0x00800040, 0x20e035ad, 0x00b100e0, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0xffe0ffe0 }, |
{ 0x00800040, 0x20c035ad, 0x00b100c0, 0x00b10540 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x06600010, 0x20003dac, 0x02000020, 0x00030003 }, |
{ 0x00000001, 0x206c0171, 0x00000000, 0x00000000 }, |
{ 0x00610001, 0x208000a5, 0x02050080, 0x00000000 }, |
{ 0x00610001, 0x212000a5, 0x02090100, 0x00000000 }, |
{ 0x00410001, 0x211000a5, 0x02690100, 0x00000000 }, |
{ 0x00200009, 0x25403dad, 0x00450064, 0x00020002 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00050540 }, |
{ 0x00200040, 0x40883dad, 0x00660088, 0x00200020 }, |
{ 0x00200040, 0x40923dad, 0x00660092, 0x00200020 }, |
{ 0x00400040, 0x20983dad, 0x00690098, 0x00200020 }, |
{ 0x00200401, 0x22080060, 0x00000000, 0x03400140 }, |
{ 0x00000c01, 0x220c0060, 0x00000000, 0x04400080 }, |
{ 0x00000801, 0x22040060, 0x00000000, 0x01000070 }, |
{ 0x00000001, 0x20200169, 0x00000000, 0x00000000 }, |
{ 0x0000000c, 0x2458262d, 0x0000006d, 0x00000020 }, |
{ 0x00000001, 0x210e0169, 0x00000000, 0x00010001 }, |
{ 0x00000005, 0x24583dad, 0x00000458, 0x00030003 }, |
{ 0x01000010, 0x200035ac, 0x0000010e, 0x00000458 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x000002fe }, |
{ 0x01000010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00010401, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00010805, 0x245a3e2d, 0x02008800, 0x007f007f }, |
{ 0x00110401, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00110805, 0x245a3e2d, 0x02008804, 0x007f007f }, |
{ 0x0000000c, 0x211e362d, 0x0000006c, 0x00000020 }, |
{ 0x00000040, 0x20780d21, 0x0000045a, 0x0208a002 }, |
{ 0x02000005, 0x20003dac, 0x0200011e, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000001be }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00700000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c000c }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x0007000c }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00110040, 0x20441da5, 0x02000442, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c0007 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00070007 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x01600006, 0x20003dac, 0x0000044a, 0x00000000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00010040, 0x22000c20, 0x00000078, 0x00200010 }, |
{ 0x00110040, 0x22000c20, 0x00000078, 0x00300010 }, |
{ 0x00010001, 0x20480061, 0x00000000, 0x00030009 }, |
{ 0x00110001, 0x20480061, 0x00000000, 0x00040009 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001a }, |
{ 0x00600001, 0x26220231, 0x008d05c0, 0x00000000 }, |
{ 0x00600401, 0x26120231, 0x008d05b8, 0x00000000 }, |
{ 0x00600801, 0x26020231, 0x008d05b0, 0x00000000 }, |
{ 0x00600401, 0x25f20231, 0x008d05a8, 0x00000000 }, |
{ 0x00600801, 0x25e20231, 0x008d05a0, 0x00000000 }, |
{ 0x00600401, 0x25d20231, 0x008d0598, 0x00000000 }, |
{ 0x00600801, 0x25c20231, 0x008d0590, 0x00000000 }, |
{ 0x00600401, 0x25b20231, 0x008d0588, 0x00000000 }, |
{ 0x00600801, 0x25a20231, 0x008d0580, 0x00000000 }, |
{ 0x00600401, 0x25920231, 0x008d0578, 0x00000000 }, |
{ 0x00600801, 0x25820231, 0x008d0570, 0x00000000 }, |
{ 0x00600001, 0x25720231, 0x008d0568, 0x00000000 }, |
{ 0x00600001, 0x25620231, 0x008d0560, 0x00000000 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00810001, 0xbc000229, 0x02ad8000, 0x00000000 }, |
{ 0x00810001, 0xbc200229, 0x02ad8020, 0x00000000 }, |
{ 0x00810001, 0xbc400229, 0x02ad8040, 0x00000000 }, |
{ 0x00810001, 0xbc600229, 0x02ad8060, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000012a }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000066 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000064 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04a00480 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00a02040, 0x2400462c, 0x00ad8000, 0x00ad8005 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8001, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8002, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8003, 0x00140014 }, |
{ 0x00a02048, 0xb8003e2d, 0x00ad8004, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8040, 0x00ad8045 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8041, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8042, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8043, 0x00140014 }, |
{ 0x00a02048, 0xb8403e2d, 0x00ad8044, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8080, 0x00ad8085 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8081, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8082, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8083, 0x00140014 }, |
{ 0x00a02048, 0xb8803e2d, 0x00ad8084, 0xfffbfffb }, |
{ 0x00600040, 0x2400462c, 0x008d80c0, 0x008d80c5 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c1, 0xfffbfffb }, |
{ 0x00600048, 0x24003e2c, 0x008d80c2, 0x00140014 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c3, 0x00140014 }, |
{ 0x00600048, 0xb8c03e2d, 0x008d80c4, 0xfffbfffb }, |
{ 0x00000401, 0x22000060, 0x00000000, 0x04a00480 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04a00490 }, |
{ 0x00010802, 0x220c2d28, 0x00000454, 0x04800480 }, |
{ 0x00a02040, 0x24003dac, 0x00b18000, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8800, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8820, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18020, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8820, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8840, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18040, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x000a000a }, |
{ 0x00a02040, 0x24003dac, 0x00b18040, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18060, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8860, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8880, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18080, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8880, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed88a0, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x000000b4 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000004c }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000004a }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010002, 0x220c2d28, 0x02000454, 0x04800480 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8000, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8001, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8021, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8002, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8022, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8003, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8023, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8004, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8024, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8005, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8025, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8040, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8060, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8041, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8061, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8042, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8062, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8043, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8063, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8044, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8064, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8045, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8065, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000042 }, |
{ 0x00200401, 0x22000128, 0x0066044c, 0x00000000 }, |
{ 0x00200c01, 0x22040128, 0x0045044e, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x03400010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220c0168, 0x02000000, 0x04800480 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad83e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8be0, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8800, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8800, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8820, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8040, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8840, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8860, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8060, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8860, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8880, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001c }, |
{ 0x00200401, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x01200010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01200010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00210040, 0x22002d08, 0x00450200, 0x00010001 }, |
{ 0x00210040, 0x22002d08, 0x02450200, 0x00100010 }, |
{ 0x00800001, 0xb8000229, 0x01ed8000, 0x00000000 }, |
{ 0x00800001, 0xb8200229, 0x01ed8020, 0x00000000 }, |
{ 0x00800001, 0xb8400229, 0x01ed8040, 0x00000000 }, |
{ 0x00800001, 0xb8600229, 0x01ed8060, 0x00000000 }, |
{ 0x80800042, 0xd8004631, 0x00d29800, 0x00d20480 }, |
{ 0x80800042, 0xd8204631, 0x00d29820, 0x00d204a0 }, |
{ 0x80800042, 0xd8404631, 0x00d29840, 0x00d204c0 }, |
{ 0x80800042, 0xd8604631, 0x00d29860, 0x00d204e0 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000c01, 0x220201e8, 0x00000000, 0x07100710 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00200040, 0x244c3d09, 0x00450200, 0x00100010 }, |
{ 0x00800041, 0x24002628, 0x00ad8000, 0x00000540 }, |
{ 0x00800041, 0x24202628, 0x00ad8020, 0x00000540 }, |
{ 0x00800048, 0x24002628, 0x00ad8002, 0x00000542 }, |
{ 0x00800048, 0x24202628, 0x00ad8022, 0x00000542 }, |
{ 0x00200001, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00800048, 0x24002628, 0x01ed8000, 0x00000544 }, |
{ 0x00800048, 0x24202628, 0x01ed8020, 0x00000544 }, |
{ 0x00800048, 0xbc002629, 0x01ed8002, 0x00000546 }, |
{ 0x00801048, 0xbc202629, 0x01ed8022, 0x00000546 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000126 }, |
{ 0x00000001, 0x20220169, 0x00000000, 0x00040004 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00500000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x00080008 }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00030008 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x00000078, 0x00100010 }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00000001, 0x20480061, 0x00000000, 0x00020005 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00410001, 0xbc000229, 0x02698000, 0x00000000 }, |
{ 0x00410001, 0xbc100229, 0x02698010, 0x00000000 }, |
{ 0x00410001, 0xbc200229, 0x02698020, 0x00000000 }, |
{ 0x00410001, 0xbc300229, 0x02698030, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000be }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000044 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000042 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04d004c0 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00802040, 0x2400462c, 0x00a98000, 0x00a98005 }, |
{ 0x00802048, 0x24003e2c, 0x00a98001, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98002, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98003, 0x00140014 }, |
{ 0x00802048, 0xb8003e2d, 0x00a98004, 0xfffbfffb }, |
{ 0x00802040, 0x2400462c, 0x00a98040, 0x00a98045 }, |
{ 0x00802048, 0x24003e2c, 0x00a98041, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98042, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98043, 0x00140014 }, |
{ 0x00802048, 0xb8203e2d, 0x00a98044, 0xfffbfffb }, |
{ 0x00400040, 0x2400462c, 0x00698080, 0x00698085 }, |
{ 0x00400048, 0x24003e2c, 0x00698081, 0xfffbfffb }, |
{ 0x00400048, 0x24003e2c, 0x00698082, 0x00140014 }, |
{ 0x00400048, 0x24003e2c, 0x00698083, 0x00140014 }, |
{ 0x00400048, 0xb8403e2d, 0x00698084, 0xfffbfffb }, |
{ 0x00000401, 0x220c0060, 0x00000000, 0x04e004d0 }, |
{ 0x00000c01, 0x22000060, 0x00000000, 0x04d004c8 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04e004d8 }, |
{ 0x00000801, 0x22080060, 0x00000000, 0x04f004e8 }, |
{ 0x00800040, 0x24003dac, 0x00b104c0, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x00b104e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed9800, 0x00140014 }, |
{ 0x00010001, 0x220c0168, 0x00000000, 0x05400540 }, |
{ 0x00110001, 0x220c0168, 0x00000000, 0x04c004c0 }, |
{ 0x00800048, 0x24003dac, 0x01e98000, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01e98020, 0x00010001 }, |
{ 0x00800048, 0x24003dac, 0x01e98800, 0x00140014 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000060 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000022 }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010001, 0x220e0168, 0x02000000, 0x05400540 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x00800040, 0x24003e2c, 0x01e98000, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98001, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98002, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98003, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98004, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98005, 0x00010001 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x03600010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x00400401, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x00400840, 0x22083d2c, 0x0069044c, 0x00100010 }, |
{ 0x00610040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00800040, 0x24003e2c, 0x01e983e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e993e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e99000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e99020, 0x00010001 }, |
{ 0x00000001, 0x220e0168, 0x00000000, 0x05400540 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x00400001, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x01400010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01400010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00010001 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00100010 }, |
{ 0x00800001, 0x25400229, 0x01e98000, 0x00000000 }, |
{ 0x80800042, 0x45404631, 0x00d20540, 0x00d204c0 }, |
{ 0x00000001, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x00400001, 0xd8000231, 0x008a0540, 0x00000000 }, |
{ 0x00400001, 0xd8100231, 0x008a0548, 0x00000000 }, |
{ 0x00400001, 0xd8200231, 0x008a0550, 0x00000000 }, |
{ 0x00400001, 0xd8300231, 0x008a0558, 0x00000000 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00600041, 0x24002628, 0x00898000, 0x00000540 }, |
{ 0x00600048, 0x24002628, 0x00898002, 0x00000542 }, |
{ 0x00600048, 0x24002628, 0x00898008, 0x00000544 }, |
{ 0x00600048, 0x2540262d, 0x0089800a, 0x00000546 }, |
{ 0x00400401, 0xbc0001a9, 0x00690540, 0x00000000 }, |
{ 0x00400801, 0xbc1001a9, 0x00690548, 0x00000000 }, |
{ 0x01000010, 0x20003d2c, 0x00000022, 0x00030003 }, |
{ 0x01000040, 0x20223d29, 0x02000022, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00080008 }, |
{ 0x00110040, 0x24540c21, 0x00000454, 0x00080008 }, |
{ 0x00010040, 0x24540c21, 0x00000454, 0x00180038 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffee6 }, |
{ 0x01800010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0xffe0ffe0 }, |
{ 0x00010001, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00110001, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00000001, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00800040, 0x24003dac, 0x00b19c00, 0x00200020 }, |
{ 0x00800040, 0x24203dac, 0x00b19c20, 0x00200020 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00060006 }, |
{ 0x8080000c, 0xdc203d91, 0x00b10420, 0x00060006 }, |
{ 0x02000040, 0x210e3d29, 0x0200010e, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00040004 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffcf8 }, |
{ 0x01000005, 0x25643e2d, 0x00000060, 0x00c000c0 }, |
{ 0x01000010, 0x20003dac, 0x02000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00a02001, 0x46400231, 0x00d20780, 0x00000000 }, |
{ 0x00a02001, 0x46800231, 0x00d207c0, 0x00000000 }, |
{ 0x00a02001, 0x46c00231, 0x00d20480, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000007e }, |
{ 0x80a02042, 0x46404631, 0x00d20640, 0x00d20780 }, |
{ 0x80a02042, 0x46804631, 0x00d20680, 0x00d207c0 }, |
{ 0x80a02042, 0x46c04631, 0x00d206c0, 0x00d20480 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000076 }, |
{ 0x01000010, 0x20003dac, 0x02000564, 0x00800080 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xffffffe4 }, |
{ 0x00200401, 0x256801ed, 0x00000000, 0x00200020 }, |
{ 0x00200801, 0x256c01ed, 0x00000000, 0x00060006 }, |
{ 0x00400001, 0x258001ed, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x45a001ad, 0x00058c00, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000028 }, |
{ 0x02600005, 0x20006e28, 0x02008c0c, 0x88848421 }, |
{ 0x0220000c, 0x25663dad, 0x00000458, 0x00010001 }, |
{ 0x0000000c, 0x25643dad, 0x00000564, 0x00060006 }, |
{ 0x00310001, 0x25c401ad, 0x00000458, 0x00000000 }, |
{ 0x00210001, 0x25c00061, 0x00000000, 0x00010001 }, |
{ 0x00310040, 0x25c03dad, 0x004545c4, 0x00010001 }, |
{ 0x00610001, 0x25a00061, 0x02000000, 0x00000080 }, |
{ 0x00710001, 0x45a002ad, 0x02ae8c00, 0x00000000 }, |
{ 0x00710001, 0x45a202ad, 0x02ae8c01, 0x00000000 }, |
{ 0x00800041, 0x25a035ad, 0x00b105a0, 0x000905c0 }, |
{ 0x01200010, 0x20003e2c, 0x0245006e, 0x00000000 }, |
{ 0x00310009, 0x244c45ad, 0x02000564, 0x0045006e }, |
{ 0x00210001, 0x244c01ed, 0x02000000, 0x00000000 }, |
{ 0x0031000c, 0x244c3dad, 0x0245044c, 0x00010001 }, |
{ 0x00200009, 0x256835ad, 0x0045044c, 0x00000566 }, |
{ 0x00210040, 0x256835ad, 0x02450568, 0x00000566 }, |
{ 0x00200040, 0x256c362d, 0x0045006e, 0x00000566 }, |
{ 0x00400040, 0x240035ac, 0x00ab05a2, 0x00ab05a6 }, |
{ 0x00400040, 0x2400358c, 0x00690400, 0x00000566 }, |
{ 0x0040000c, 0x2580358d, 0x00690400, 0x00000566 }, |
{ 0x00800041, 0x2400362c, 0x00d20640, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d20660, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d20780, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207a0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x464035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x466035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d20680, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d206a0, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d207c0, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207e0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x468035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x46a035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d206c0, 0x000705a8 }, |
{ 0x00800041, 0x2420362c, 0x00d206e0, 0x000705a8 }, |
{ 0x00800048, 0x2400362c, 0x00d20480, 0x000705ac }, |
{ 0x00800048, 0x2420362c, 0x00d204a0, 0x000705ac }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x0000056a }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x0000056a }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056e }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056e }, |
{ 0x80800040, 0x46c035b1, 0x00b104c0, 0x00050582 }, |
{ 0x80800040, 0x46e035b1, 0x00b104e0, 0x00050582 }, |
{ 0x01800005, 0x20003d2c, 0x02000020, 0x00020002 }, |
{ 0x80800040, 0xd00045b1, 0x00b19000, 0x00d20640 }, |
{ 0x80800040, 0xd02045b1, 0x00b19020, 0x00d20660 }, |
{ 0x80800040, 0xd04045b1, 0x00b19040, 0x00d20680 }, |
{ 0x80800040, 0xd06045b1, 0x00b19060, 0x00d206a0 }, |
{ 0x00000040, 0x22083d8c, 0x00000208, 0x00800080 }, |
{ 0x80400040, 0xd40045b1, 0x00699400, 0x00ab06c0 }, |
{ 0x80400040, 0xd48045b1, 0x00699480, 0x00ab06c2 }, |
{ 0x80400040, 0xd42045b1, 0x00699420, 0x00ab06e0 }, |
{ 0x80400040, 0xd4a045b1, 0x006994a0, 0x00ab06e2 }, |
{ 0x80400040, 0xd41045b1, 0x00699410, 0x00ab06d0 }, |
{ 0x80400040, 0xd49045b1, 0x00699490, 0x00ab06d2 }, |
{ 0x80400040, 0xd43045b1, 0x00699430, 0x00ab06f0 }, |
{ 0x80400040, 0xd4b045b1, 0x006994b0, 0x00ab06f2 }, |
{ 0x00000040, 0x220a3d8c, 0x0000020a, 0x00080008 }, |
{ 0x00110040, 0x220a3d8c, 0x0200020a, 0x00300030 }, |
{ 0x01000010, 0x20003d2c, 0x02000020, 0x00060006 }, |
{ 0x00000040, 0x20203d29, 0x00000020, 0x00020002 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x00100001 }, |
{ 0x00000040, 0x220c358c, 0x0000020c, 0x0000003a }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffc36 }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x220201ec, 0x00000000, 0x01c001c0 }, |
{ 0x00800401, 0x20400236, 0x01ee8000, 0x00000000 }, |
{ 0x00800801, 0x20500236, 0x01ee8010, 0x00000000 }, |
{ 0x00800401, 0x20600236, 0x01ee8020, 0x00000000 }, |
{ 0x00800801, 0x20700236, 0x01ee8030, 0x00000000 }, |
{ 0x00800401, 0x20800236, 0x01ee8040, 0x00000000 }, |
{ 0x00800801, 0x20900236, 0x01ee8050, 0x00000000 }, |
{ 0x00800401, 0x20a00236, 0x01ee8060, 0x00000000 }, |
{ 0x00800801, 0x20b00236, 0x01ee8070, 0x00000000 }, |
{ 0x00800401, 0x20c00236, 0x01ee8100, 0x00000000 }, |
{ 0x00800801, 0x20d00236, 0x01ee8110, 0x00000000 }, |
{ 0x00800401, 0x20e00236, 0x01ee8120, 0x00000000 }, |
{ 0x00800801, 0x20f00236, 0x01ee8130, 0x00000000 }, |
{ 0x00800401, 0x21000236, 0x01ee8140, 0x00000000 }, |
{ 0x00800801, 0x21100236, 0x01ee8150, 0x00000000 }, |
{ 0x00800401, 0x21200236, 0x01ee8160, 0x00000000 }, |
{ 0x00800801, 0x21300236, 0x01ee8170, 0x00000000 }, |
{ 0x00200401, 0x204001a5, 0x00450064, 0x00000000 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x000f000f }, |
{ 0x01600031, 0x21401c21, 0x508d0040, 0x1218a000 }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x03400340 }, |
{ 0x00800401, 0x41600236, 0x00d28000, 0x00000000 }, |
{ 0x00800801, 0x41610236, 0x00d28080, 0x00000000 }, |
{ 0x00800401, 0x41800236, 0x00d28020, 0x00000000 }, |
{ 0x00800801, 0x41810236, 0x00d280a0, 0x00000000 }, |
{ 0x00800401, 0x41a00236, 0x00d28040, 0x00000000 }, |
{ 0x00800801, 0x41a10236, 0x00d280c0, 0x00000000 }, |
{ 0x00800401, 0x41c00236, 0x00d28060, 0x00000000 }, |
{ 0x00800801, 0x41c10236, 0x00d280e0, 0x00000000 }, |
{ 0x0000040c, 0x20443ca5, 0x00000044, 0x00010001 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x0007000f }, |
{ 0x0a600031, 0x21601c21, 0x508d0040, 0x0a18a001 }, |
{ 0x00000001, 0x21400021, 0x00000140, 0x00000000 }, |
{ 0x00000001, 0x21600021, 0x00000160, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x00600001, 0x20400021, 0x008d0000, 0x00000000 }, |
{ 0x00000005, 0x20203e2d, 0x00000061, 0x001f001f }, |
{ 0x00200009, 0x20643e2d, 0x00450064, 0x00040004 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00000000 }, |
{ 0x01000010, 0x20003dac, 0x00000020, 0x00160016 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x01200010, 0x20003e2c, 0x0200006c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000024 }, |
{ 0x00800009, 0x25403dad, 0x00050064, 0x00020002 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00180018 }, |
{ 0x00200040, 0x45483dad, 0x00660548, 0x00100010 }, |
{ 0x00200040, 0x45523dad, 0x00660552, 0x00100010 }, |
{ 0x00400040, 0x25583dad, 0x00690558, 0x00100010 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0x00200020 }, |
{ 0x00800040, 0x20a035ad, 0x00b100a0, 0x00b10540 }, |
{ 0x00600040, 0x45423dad, 0x00ae0542, 0x00200020 }, |
{ 0x00800040, 0x20e035ad, 0x00b100e0, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0xffe0ffe0 }, |
{ 0x00800040, 0x20c035ad, 0x00b100c0, 0x00b10540 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x06600010, 0x20003dac, 0x02000020, 0x00030003 }, |
{ 0x00000001, 0x206c0171, 0x00000000, 0x00000000 }, |
{ 0x00610001, 0x208000a5, 0x02050080, 0x00000000 }, |
{ 0x00610001, 0x212000a5, 0x02090100, 0x00000000 }, |
{ 0x00410001, 0x211000a5, 0x02690100, 0x00000000 }, |
{ 0x00200009, 0x25403dad, 0x00450064, 0x00020002 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00050540 }, |
{ 0x00200040, 0x40883dad, 0x00660088, 0x00200020 }, |
{ 0x00200040, 0x40923dad, 0x00660092, 0x00200020 }, |
{ 0x00400040, 0x20983dad, 0x00690098, 0x00200020 }, |
{ 0x00200401, 0x22080060, 0x00000000, 0x03400140 }, |
{ 0x00000c01, 0x220c0060, 0x00000000, 0x04400080 }, |
{ 0x00000801, 0x22040060, 0x00000000, 0x01000070 }, |
{ 0x00000005, 0x203e2e29, 0x00000063, 0x00010001 }, |
{ 0x00000001, 0x20200169, 0x00000000, 0x00000000 }, |
{ 0x0000000c, 0x2458262d, 0x0000006d, 0x00000020 }, |
{ 0x00000001, 0x210e0169, 0x00000000, 0x00010001 }, |
{ 0x00000005, 0x24583dad, 0x00000458, 0x00030003 }, |
{ 0x01000010, 0x200035ac, 0x0000010e, 0x00000458 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000316 }, |
{ 0x01000010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00010401, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00010805, 0x245a3e2d, 0x02008800, 0x007f007f }, |
{ 0x00110401, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00110805, 0x245a3e2d, 0x02008804, 0x007f007f }, |
{ 0x00010005, 0x245c3e2d, 0x02008800, 0x00800080 }, |
{ 0x00110005, 0x245c3e2d, 0x02008804, 0x00800080 }, |
{ 0x00000009, 0x245c3dad, 0x0000045c, 0x00010001 }, |
{ 0x0000000c, 0x211e362d, 0x0000006c, 0x00000020 }, |
{ 0x00000040, 0x240035ac, 0x0000003e, 0x0000045c }, |
{ 0x01000010, 0x20003d8c, 0x00210400, 0x00010001 }, |
{ 0x01000010, 0x20003d8c, 0x02210400, 0x01000100 }, |
{ 0x00000001, 0x203c01ed, 0x00000000, 0x00000000 }, |
{ 0x00010001, 0x203c01ed, 0x00000000, 0x00020002 }, |
{ 0x00010001, 0x203c01ed, 0x02000000, 0xfffefffe }, |
{ 0x00000040, 0x20780d21, 0x0000045a, 0x0208e602 }, |
{ 0x00000040, 0x20782421, 0x00000078, 0x0000045c }, |
{ 0x02000005, 0x20003dac, 0x0200011e, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000001c0 }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00700000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c000c }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x0007000c }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00110040, 0x20441da5, 0x02000442, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c0007 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00070007 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000040, 0xb80235ad, 0x00009802, 0x0000003c }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x01600006, 0x20003dac, 0x0000044a, 0x00000000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00010040, 0x22000c20, 0x00000078, 0x00200010 }, |
{ 0x00110040, 0x22000c20, 0x00000078, 0x00300010 }, |
{ 0x00010001, 0x20480061, 0x00000000, 0x00030009 }, |
{ 0x00110001, 0x20480061, 0x00000000, 0x00040009 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001a }, |
{ 0x00600001, 0x26220231, 0x008d05c0, 0x00000000 }, |
{ 0x00600401, 0x26120231, 0x008d05b8, 0x00000000 }, |
{ 0x00600801, 0x26020231, 0x008d05b0, 0x00000000 }, |
{ 0x00600401, 0x25f20231, 0x008d05a8, 0x00000000 }, |
{ 0x00600801, 0x25e20231, 0x008d05a0, 0x00000000 }, |
{ 0x00600401, 0x25d20231, 0x008d0598, 0x00000000 }, |
{ 0x00600801, 0x25c20231, 0x008d0590, 0x00000000 }, |
{ 0x00600401, 0x25b20231, 0x008d0588, 0x00000000 }, |
{ 0x00600801, 0x25a20231, 0x008d0580, 0x00000000 }, |
{ 0x00600401, 0x25920231, 0x008d0578, 0x00000000 }, |
{ 0x00600801, 0x25820231, 0x008d0570, 0x00000000 }, |
{ 0x00600001, 0x25720231, 0x008d0568, 0x00000000 }, |
{ 0x00600001, 0x25620231, 0x008d0560, 0x00000000 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00810001, 0xbc000229, 0x02ad8000, 0x00000000 }, |
{ 0x00810001, 0xbc200229, 0x02ad8020, 0x00000000 }, |
{ 0x00810001, 0xbc400229, 0x02ad8040, 0x00000000 }, |
{ 0x00810001, 0xbc600229, 0x02ad8060, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000012a }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000066 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000064 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04a00480 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00a02040, 0x2400462c, 0x00ad8000, 0x00ad8005 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8001, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8002, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8003, 0x00140014 }, |
{ 0x00a02048, 0xb8003e2d, 0x00ad8004, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8040, 0x00ad8045 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8041, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8042, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8043, 0x00140014 }, |
{ 0x00a02048, 0xb8403e2d, 0x00ad8044, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8080, 0x00ad8085 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8081, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8082, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8083, 0x00140014 }, |
{ 0x00a02048, 0xb8803e2d, 0x00ad8084, 0xfffbfffb }, |
{ 0x00600040, 0x2400462c, 0x008d80c0, 0x008d80c5 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c1, 0xfffbfffb }, |
{ 0x00600048, 0x24003e2c, 0x008d80c2, 0x00140014 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c3, 0x00140014 }, |
{ 0x00600048, 0xb8c03e2d, 0x008d80c4, 0xfffbfffb }, |
{ 0x00000401, 0x22000060, 0x00000000, 0x04a00480 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04a00490 }, |
{ 0x00010802, 0x220c2d28, 0x00000454, 0x04800480 }, |
{ 0x00a02040, 0x24003dac, 0x00b18000, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8800, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8820, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18020, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8820, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8840, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18040, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x000a000a }, |
{ 0x00a02040, 0x24003dac, 0x00b18040, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18060, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8860, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8880, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18080, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8880, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed88a0, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x000000b4 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000004c }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000004a }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010002, 0x220c2d28, 0x02000454, 0x04800480 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8000, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8001, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8021, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8002, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8022, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8003, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8023, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8004, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8024, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8005, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8025, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8040, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8060, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8041, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8061, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8042, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8062, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8043, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8063, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8044, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8064, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8045, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8065, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000042 }, |
{ 0x00200401, 0x22000128, 0x0066044c, 0x00000000 }, |
{ 0x00200c01, 0x22040128, 0x0045044e, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x03400010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220c0168, 0x02000000, 0x04800480 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad83e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8be0, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8800, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8800, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8820, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8040, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8840, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8860, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8060, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8860, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8880, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001c }, |
{ 0x00200401, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x01200010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01200010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00210040, 0x22002d08, 0x00450200, 0x00010001 }, |
{ 0x00210040, 0x22002d08, 0x02450200, 0x00100010 }, |
{ 0x00800001, 0xb8000229, 0x01ed8000, 0x00000000 }, |
{ 0x00800001, 0xb8200229, 0x01ed8020, 0x00000000 }, |
{ 0x00800001, 0xb8400229, 0x01ed8040, 0x00000000 }, |
{ 0x00800001, 0xb8600229, 0x01ed8060, 0x00000000 }, |
{ 0x80800042, 0xd8004631, 0x00d29800, 0x00d20480 }, |
{ 0x80800042, 0xd8204631, 0x00d29820, 0x00d204a0 }, |
{ 0x80800042, 0xd8404631, 0x00d29840, 0x00d204c0 }, |
{ 0x80800042, 0xd8604631, 0x00d29860, 0x00d204e0 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000c01, 0x220201e8, 0x00000000, 0x07100710 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00200040, 0x244c3d09, 0x00450200, 0x00100010 }, |
{ 0x00800041, 0x24002628, 0x00ad8000, 0x00000540 }, |
{ 0x00800041, 0x24202628, 0x00ad8020, 0x00000540 }, |
{ 0x00800048, 0x24002628, 0x00ad8002, 0x00000542 }, |
{ 0x00800048, 0x24202628, 0x00ad8022, 0x00000542 }, |
{ 0x00200001, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00800048, 0x24002628, 0x01ed8000, 0x00000544 }, |
{ 0x00800048, 0x24202628, 0x01ed8020, 0x00000544 }, |
{ 0x00800048, 0xbc002629, 0x01ed8002, 0x00000546 }, |
{ 0x00801048, 0xbc202629, 0x01ed8022, 0x00000546 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000128 }, |
{ 0x00000001, 0x20220169, 0x00000000, 0x00040004 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00500000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x00080008 }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00030008 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000040, 0xb80235ad, 0x00009802, 0x0000003c }, |
{ 0x00000040, 0x22000c20, 0x00000078, 0x00100010 }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00000001, 0x20480061, 0x00000000, 0x00020005 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00410001, 0xbc000229, 0x02698000, 0x00000000 }, |
{ 0x00410001, 0xbc100229, 0x02698010, 0x00000000 }, |
{ 0x00410001, 0xbc200229, 0x02698020, 0x00000000 }, |
{ 0x00410001, 0xbc300229, 0x02698030, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000be }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000044 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000042 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04d004c0 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00802040, 0x2400462c, 0x00a98000, 0x00a98005 }, |
{ 0x00802048, 0x24003e2c, 0x00a98001, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98002, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98003, 0x00140014 }, |
{ 0x00802048, 0xb8003e2d, 0x00a98004, 0xfffbfffb }, |
{ 0x00802040, 0x2400462c, 0x00a98040, 0x00a98045 }, |
{ 0x00802048, 0x24003e2c, 0x00a98041, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98042, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98043, 0x00140014 }, |
{ 0x00802048, 0xb8203e2d, 0x00a98044, 0xfffbfffb }, |
{ 0x00400040, 0x2400462c, 0x00698080, 0x00698085 }, |
{ 0x00400048, 0x24003e2c, 0x00698081, 0xfffbfffb }, |
{ 0x00400048, 0x24003e2c, 0x00698082, 0x00140014 }, |
{ 0x00400048, 0x24003e2c, 0x00698083, 0x00140014 }, |
{ 0x00400048, 0xb8403e2d, 0x00698084, 0xfffbfffb }, |
{ 0x00000401, 0x220c0060, 0x00000000, 0x04e004d0 }, |
{ 0x00000c01, 0x22000060, 0x00000000, 0x04d004c8 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04e004d8 }, |
{ 0x00000801, 0x22080060, 0x00000000, 0x04f004e8 }, |
{ 0x00800040, 0x24003dac, 0x00b104c0, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x00b104e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed9800, 0x00140014 }, |
{ 0x00010001, 0x220c0168, 0x00000000, 0x05400540 }, |
{ 0x00110001, 0x220c0168, 0x00000000, 0x04c004c0 }, |
{ 0x00800048, 0x24003dac, 0x01e98000, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01e98020, 0x00010001 }, |
{ 0x00800048, 0x24003dac, 0x01e98800, 0x00140014 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000060 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000022 }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010001, 0x220e0168, 0x02000000, 0x05400540 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x00800040, 0x24003e2c, 0x01e98000, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98001, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98002, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98003, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98004, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98005, 0x00010001 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x03600010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x00400401, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x00400840, 0x22083d2c, 0x0069044c, 0x00100010 }, |
{ 0x00610040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00800040, 0x24003e2c, 0x01e983e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e993e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e99000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e99020, 0x00010001 }, |
{ 0x00000001, 0x220e0168, 0x00000000, 0x05400540 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x00400001, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x01400010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01400010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00010001 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00100010 }, |
{ 0x00800001, 0x25400229, 0x01e98000, 0x00000000 }, |
{ 0x80800042, 0x45404631, 0x00d20540, 0x00d204c0 }, |
{ 0x00000001, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x00400001, 0xd8000231, 0x008a0540, 0x00000000 }, |
{ 0x00400001, 0xd8100231, 0x008a0548, 0x00000000 }, |
{ 0x00400001, 0xd8200231, 0x008a0550, 0x00000000 }, |
{ 0x00400001, 0xd8300231, 0x008a0558, 0x00000000 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00600041, 0x24002628, 0x00898000, 0x00000540 }, |
{ 0x00600048, 0x24002628, 0x00898002, 0x00000542 }, |
{ 0x00600048, 0x24002628, 0x00898008, 0x00000544 }, |
{ 0x00600048, 0x2540262d, 0x0089800a, 0x00000546 }, |
{ 0x00400401, 0xbc0001a9, 0x00690540, 0x00000000 }, |
{ 0x00400801, 0xbc1001a9, 0x00690548, 0x00000000 }, |
{ 0x01000010, 0x20003d2c, 0x00000022, 0x00030003 }, |
{ 0x01000040, 0x20223d29, 0x02000022, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00080008 }, |
{ 0x00110040, 0x24540c21, 0x00000454, 0x00080008 }, |
{ 0x00010040, 0x24540c21, 0x00000454, 0x00180038 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffee4 }, |
{ 0x01800010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0xffe0ffe0 }, |
{ 0x00010001, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00110001, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00000001, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00800040, 0x24003dac, 0x00b19c00, 0x00200020 }, |
{ 0x00800040, 0x24203dac, 0x00b19c20, 0x00200020 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00060006 }, |
{ 0x8080000c, 0xdc203d91, 0x00b10420, 0x00060006 }, |
{ 0x02000040, 0x210e3d29, 0x0200010e, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00040004 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffce0 }, |
{ 0x01000005, 0x25643e2d, 0x00000060, 0x00c000c0 }, |
{ 0x01000010, 0x20003dac, 0x02000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00a02001, 0x46400231, 0x00d20780, 0x00000000 }, |
{ 0x00a02001, 0x46800231, 0x00d207c0, 0x00000000 }, |
{ 0x00a02001, 0x46c00231, 0x00d20480, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000007e }, |
{ 0x80a02042, 0x46404631, 0x00d20640, 0x00d20780 }, |
{ 0x80a02042, 0x46804631, 0x00d20680, 0x00d207c0 }, |
{ 0x80a02042, 0x46c04631, 0x00d206c0, 0x00d20480 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000076 }, |
{ 0x01000010, 0x20003dac, 0x02000564, 0x00800080 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xffffffe4 }, |
{ 0x00200401, 0x256801ed, 0x00000000, 0x00200020 }, |
{ 0x00200801, 0x256c01ed, 0x00000000, 0x00060006 }, |
{ 0x00400001, 0x258001ed, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x45a001ad, 0x00058c00, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000028 }, |
{ 0x02600005, 0x20006e28, 0x02008c0c, 0x88848421 }, |
{ 0x0220000c, 0x25663dad, 0x00000458, 0x00010001 }, |
{ 0x0000000c, 0x25643dad, 0x00000564, 0x00060006 }, |
{ 0x00310001, 0x25c401ad, 0x00000458, 0x00000000 }, |
{ 0x00210001, 0x25c00061, 0x00000000, 0x00010001 }, |
{ 0x00310040, 0x25c03dad, 0x004545c4, 0x00010001 }, |
{ 0x00610001, 0x25a00061, 0x02000000, 0x00000080 }, |
{ 0x00710001, 0x45a002ad, 0x02ae8c00, 0x00000000 }, |
{ 0x00710001, 0x45a202ad, 0x02ae8c01, 0x00000000 }, |
{ 0x00800041, 0x25a035ad, 0x00b105a0, 0x000905c0 }, |
{ 0x01200010, 0x20003e2c, 0x0245006e, 0x00000000 }, |
{ 0x00310009, 0x244c45ad, 0x02000564, 0x0045006e }, |
{ 0x00210001, 0x244c01ed, 0x02000000, 0x00000000 }, |
{ 0x0031000c, 0x244c3dad, 0x0245044c, 0x00010001 }, |
{ 0x00200009, 0x256835ad, 0x0045044c, 0x00000566 }, |
{ 0x00210040, 0x256835ad, 0x02450568, 0x00000566 }, |
{ 0x00200040, 0x256c362d, 0x0045006e, 0x00000566 }, |
{ 0x00400040, 0x240035ac, 0x00ab05a2, 0x00ab05a6 }, |
{ 0x00400040, 0x2400358c, 0x00690400, 0x00000566 }, |
{ 0x0040000c, 0x2580358d, 0x00690400, 0x00000566 }, |
{ 0x00800041, 0x2400362c, 0x00d20640, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d20660, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d20780, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207a0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x464035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x466035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d20680, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d206a0, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d207c0, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207e0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x468035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x46a035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d206c0, 0x000705a8 }, |
{ 0x00800041, 0x2420362c, 0x00d206e0, 0x000705a8 }, |
{ 0x00800048, 0x2400362c, 0x00d20480, 0x000705ac }, |
{ 0x00800048, 0x2420362c, 0x00d204a0, 0x000705ac }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x0000056a }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x0000056a }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056e }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056e }, |
{ 0x80800040, 0x46c035b1, 0x00b104c0, 0x00050582 }, |
{ 0x80800040, 0x46e035b1, 0x00b104e0, 0x00050582 }, |
{ 0x01800005, 0x20003d2c, 0x02000020, 0x00020002 }, |
{ 0x80800040, 0xd00045b1, 0x00b19000, 0x00d20640 }, |
{ 0x80800040, 0xd02045b1, 0x00b19020, 0x00d20660 }, |
{ 0x80800040, 0xd04045b1, 0x00b19040, 0x00d20680 }, |
{ 0x80800040, 0xd06045b1, 0x00b19060, 0x00d206a0 }, |
{ 0x00000040, 0x22083d8c, 0x00000208, 0x00800080 }, |
{ 0x80400040, 0xd40045b1, 0x00699400, 0x00ab06c0 }, |
{ 0x80400040, 0xd48045b1, 0x00699480, 0x00ab06c2 }, |
{ 0x80400040, 0xd42045b1, 0x00699420, 0x00ab06e0 }, |
{ 0x80400040, 0xd4a045b1, 0x006994a0, 0x00ab06e2 }, |
{ 0x80400040, 0xd41045b1, 0x00699410, 0x00ab06d0 }, |
{ 0x80400040, 0xd49045b1, 0x00699490, 0x00ab06d2 }, |
{ 0x80400040, 0xd43045b1, 0x00699430, 0x00ab06f0 }, |
{ 0x80400040, 0xd4b045b1, 0x006994b0, 0x00ab06f2 }, |
{ 0x00000040, 0x220a3d8c, 0x0000020a, 0x00080008 }, |
{ 0x00110040, 0x220a3d8c, 0x0200020a, 0x00300030 }, |
{ 0x01000010, 0x20003d2c, 0x02000020, 0x00060006 }, |
{ 0x00000040, 0x20203d29, 0x00000020, 0x00020002 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x00100001 }, |
{ 0x00000040, 0x220c358c, 0x0000020c, 0x0000003a }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffc1e }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x220201ec, 0x00000000, 0x01c001c0 }, |
{ 0x00800401, 0x20400236, 0x01ee8000, 0x00000000 }, |
{ 0x00800801, 0x20500236, 0x01ee8010, 0x00000000 }, |
{ 0x00800401, 0x20600236, 0x01ee8020, 0x00000000 }, |
{ 0x00800801, 0x20700236, 0x01ee8030, 0x00000000 }, |
{ 0x00800401, 0x20800236, 0x01ee8040, 0x00000000 }, |
{ 0x00800801, 0x20900236, 0x01ee8050, 0x00000000 }, |
{ 0x00800401, 0x20a00236, 0x01ee8060, 0x00000000 }, |
{ 0x00800801, 0x20b00236, 0x01ee8070, 0x00000000 }, |
{ 0x00800401, 0x20c00236, 0x01ee8100, 0x00000000 }, |
{ 0x00800801, 0x20d00236, 0x01ee8110, 0x00000000 }, |
{ 0x00800401, 0x20e00236, 0x01ee8120, 0x00000000 }, |
{ 0x00800801, 0x20f00236, 0x01ee8130, 0x00000000 }, |
{ 0x00800401, 0x21000236, 0x01ee8140, 0x00000000 }, |
{ 0x00800801, 0x21100236, 0x01ee8150, 0x00000000 }, |
{ 0x00800401, 0x21200236, 0x01ee8160, 0x00000000 }, |
{ 0x00800801, 0x21300236, 0x01ee8170, 0x00000000 }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x1218a600 }, |
{ 0x00200401, 0x204001a5, 0x00450064, 0x00000000 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x000f000f }, |
{ 0x01600031, 0x21400021, 0x508d0040, 0x00000200 }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x03400340 }, |
{ 0x00800401, 0x41600236, 0x00d28000, 0x00000000 }, |
{ 0x00800801, 0x41610236, 0x00d28080, 0x00000000 }, |
{ 0x00800401, 0x41800236, 0x00d28020, 0x00000000 }, |
{ 0x00800801, 0x41810236, 0x00d280a0, 0x00000000 }, |
{ 0x00800401, 0x41a00236, 0x00d28040, 0x00000000 }, |
{ 0x00800801, 0x41a10236, 0x00d280c0, 0x00000000 }, |
{ 0x00800401, 0x41c00236, 0x00d28060, 0x00000000 }, |
{ 0x00800801, 0x41c10236, 0x00d280e0, 0x00000000 }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x0a18a601 }, |
{ 0x0000040c, 0x20443ca5, 0x00000044, 0x00010001 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x0007000f }, |
{ 0x0a600031, 0x21600021, 0x508d0040, 0x00000200 }, |
{ 0x00000001, 0x21400021, 0x00000140, 0x00000000 }, |
{ 0x00000001, 0x21600021, 0x00000160, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0000, 0x00000000 }, |
{ 0x00000005, 0x20203e2d, 0x00000061, 0x001f001f }, |
{ 0x00200009, 0x20643e2d, 0x00450064, 0x00040004 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00000000 }, |
{ 0x01000010, 0x20003dac, 0x00000020, 0x00160016 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x01200010, 0x20003e2c, 0x0200006c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000024 }, |
{ 0x00800009, 0x25403dad, 0x00050064, 0x00020002 }, |
{ 0x00000001, 0x203a01ed, 0x00000000, 0x00180018 }, |
{ 0x00200040, 0x45483dad, 0x00660548, 0x00100010 }, |
{ 0x00200040, 0x45523dad, 0x00660552, 0x00100010 }, |
{ 0x00400040, 0x25583dad, 0x00690558, 0x00100010 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0x00200020 }, |
{ 0x00800040, 0x20a035ad, 0x00b100a0, 0x00b10540 }, |
{ 0x00600040, 0x45423dad, 0x00ae0542, 0x00200020 }, |
{ 0x00800040, 0x20e035ad, 0x00b100e0, 0x00b10540 }, |
{ 0x00600040, 0x45403dad, 0x00ae0540, 0xffe0ffe0 }, |
{ 0x00800040, 0x20c035ad, 0x00b100c0, 0x00b10540 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x06600010, 0x20003dac, 0x02000020, 0x00030003 }, |
{ 0x00000001, 0x206c0171, 0x00000000, 0x00000000 }, |
{ 0x00610001, 0x208000a5, 0x02050080, 0x00000000 }, |
{ 0x00610001, 0x212000a5, 0x02090100, 0x00000000 }, |
{ 0x00410001, 0x211000a5, 0x02690100, 0x00000000 }, |
{ 0x00200009, 0x25403dad, 0x00450064, 0x00020002 }, |
{ 0x00800040, 0x208035ad, 0x00b10080, 0x00050540 }, |
{ 0x00200040, 0x40883dad, 0x00660088, 0x00200020 }, |
{ 0x00200040, 0x40923dad, 0x00660092, 0x00200020 }, |
{ 0x00400040, 0x20983dad, 0x00690098, 0x00200020 }, |
{ 0x00200401, 0x22080060, 0x00000000, 0x03400140 }, |
{ 0x00000c01, 0x220c0060, 0x00000000, 0x04400080 }, |
{ 0x00000801, 0x22040060, 0x00000000, 0x01000070 }, |
{ 0x02000005, 0x20002e28, 0x00000061, 0x00400040 }, |
{ 0x00010005, 0x203e2e29, 0x00000063, 0x00010001 }, |
{ 0x00110001, 0x203e0169, 0x00000000, 0x00030003 }, |
{ 0x00000001, 0x20200169, 0x00000000, 0x00000000 }, |
{ 0x0000000c, 0x2458262d, 0x0000006d, 0x00000020 }, |
{ 0x00000001, 0x210e0169, 0x00000000, 0x00010001 }, |
{ 0x00000005, 0x24583dad, 0x00000458, 0x00030003 }, |
{ 0x01000010, 0x200035ac, 0x0000010e, 0x00000458 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000031a }, |
{ 0x01000010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00010401, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00010805, 0x245a3e2d, 0x02008800, 0x007f007f }, |
{ 0x00110401, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00110805, 0x245a3e2d, 0x02008804, 0x007f007f }, |
{ 0x00010005, 0x245c3e2d, 0x02008800, 0x00800080 }, |
{ 0x00110005, 0x245c3e2d, 0x02008804, 0x00800080 }, |
{ 0x00000009, 0x245c3dad, 0x0000045c, 0x00010001 }, |
{ 0x0000000c, 0x211e362d, 0x0000006c, 0x00000020 }, |
{ 0x00000040, 0x240035ac, 0x0000003e, 0x0000045c }, |
{ 0x01000010, 0x20003d8c, 0x00210400, 0x00010001 }, |
{ 0x01000010, 0x20003d8c, 0x02210400, 0x01000100 }, |
{ 0x00000001, 0x203c01ed, 0x00000000, 0x00000000 }, |
{ 0x00010001, 0x203c01ed, 0x00000000, 0x00020002 }, |
{ 0x00010001, 0x203c01ed, 0x02000000, 0xfffefffe }, |
{ 0x02000005, 0x20002e28, 0x00000061, 0x00400040 }, |
{ 0x00010040, 0x244c0d21, 0x0000045a, 0x0208e602 }, |
{ 0x00110040, 0x20780d21, 0x0000045a, 0x0208a002 }, |
{ 0x00010040, 0x20782421, 0x0000044c, 0x0000045c }, |
{ 0x02000005, 0x20003dac, 0x0200011e, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000001c0 }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00700000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c000c }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x0007000c }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00400000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00110040, 0x20441da5, 0x02000442, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x000c0007 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00070007 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000040, 0xb80235ad, 0x00009802, 0x0000003c }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x01600006, 0x20003dac, 0x0000044a, 0x00000000 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00010040, 0x22000c20, 0x00000078, 0x00200010 }, |
{ 0x00110040, 0x22000c20, 0x00000078, 0x00300010 }, |
{ 0x00010001, 0x20480061, 0x00000000, 0x00030009 }, |
{ 0x00110001, 0x20480061, 0x00000000, 0x00040009 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x01000005, 0x20003dac, 0x00009800, 0x00030003 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000001a }, |
{ 0x00600001, 0x26220231, 0x008d05c0, 0x00000000 }, |
{ 0x00600401, 0x26120231, 0x008d05b8, 0x00000000 }, |
{ 0x00600801, 0x26020231, 0x008d05b0, 0x00000000 }, |
{ 0x00600401, 0x25f20231, 0x008d05a8, 0x00000000 }, |
{ 0x00600801, 0x25e20231, 0x008d05a0, 0x00000000 }, |
{ 0x00600401, 0x25d20231, 0x008d0598, 0x00000000 }, |
{ 0x00600801, 0x25c20231, 0x008d0590, 0x00000000 }, |
{ 0x00600401, 0x25b20231, 0x008d0588, 0x00000000 }, |
{ 0x00600801, 0x25a20231, 0x008d0580, 0x00000000 }, |
{ 0x00600401, 0x25920231, 0x008d0578, 0x00000000 }, |
{ 0x00600801, 0x25820231, 0x008d0570, 0x00000000 }, |
{ 0x00600001, 0x25720231, 0x008d0568, 0x00000000 }, |
{ 0x00600001, 0x25620231, 0x008d0560, 0x00000000 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00810001, 0xbc000229, 0x02ad8000, 0x00000000 }, |
{ 0x00810001, 0xbc200229, 0x02ad8020, 0x00000000 }, |
{ 0x00810001, 0xbc400229, 0x02ad8040, 0x00000000 }, |
{ 0x00810001, 0xbc600229, 0x02ad8060, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000012a }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000066 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000064 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04a00480 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00a02040, 0x2400462c, 0x00ad8000, 0x00ad8005 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8001, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8002, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8003, 0x00140014 }, |
{ 0x00a02048, 0xb8003e2d, 0x00ad8004, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8040, 0x00ad8045 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8041, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8042, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8043, 0x00140014 }, |
{ 0x00a02048, 0xb8403e2d, 0x00ad8044, 0xfffbfffb }, |
{ 0x00a02040, 0x2400462c, 0x00ad8080, 0x00ad8085 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8081, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8082, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8083, 0x00140014 }, |
{ 0x00a02048, 0xb8803e2d, 0x00ad8084, 0xfffbfffb }, |
{ 0x00600040, 0x2400462c, 0x008d80c0, 0x008d80c5 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c1, 0xfffbfffb }, |
{ 0x00600048, 0x24003e2c, 0x008d80c2, 0x00140014 }, |
{ 0x00600048, 0x24003e2c, 0x008d80c3, 0x00140014 }, |
{ 0x00600048, 0xb8c03e2d, 0x008d80c4, 0xfffbfffb }, |
{ 0x00000401, 0x22000060, 0x00000000, 0x04a00480 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04a00490 }, |
{ 0x00010802, 0x220c2d28, 0x00000454, 0x04800480 }, |
{ 0x00a02040, 0x24003dac, 0x00b18000, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8800, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8820, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18020, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8820, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8840, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18040, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x000a000a }, |
{ 0x00a02040, 0x24003dac, 0x00b18040, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x01ed8840, 0xfffbfffb }, |
{ 0x00800048, 0x24203dac, 0x01ed8860, 0xfffbfffb }, |
{ 0x00a02048, 0x24003dac, 0x00b18060, 0x00140014 }, |
{ 0x00800048, 0x24003dac, 0x01ed8860, 0x00140014 }, |
{ 0x00800048, 0x24203dac, 0x01ed8880, 0x00140014 }, |
{ 0x00a02048, 0x24003dac, 0x00b18080, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed8880, 0x00010001 }, |
{ 0x00800048, 0x24203dac, 0x01ed88a0, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x000a000a }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x000000b4 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000004c }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000004a }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010002, 0x220c2d28, 0x02000454, 0x04800480 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8000, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8001, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8021, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8002, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8022, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8003, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8023, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8004, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8024, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8005, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8025, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00800040, 0x24003e2c, 0x01ed8040, 0x00100010 }, |
{ 0x00800040, 0x24203e2c, 0x01ed8060, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8041, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8061, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8042, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8062, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8043, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8063, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8044, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8064, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8045, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8065, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000042 }, |
{ 0x00200401, 0x22000128, 0x0066044c, 0x00000000 }, |
{ 0x00200c01, 0x22040128, 0x0045044e, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x03400010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220c0168, 0x02000000, 0x04800480 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad83e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8be0, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8800, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8800, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8820, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0x00010001 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8203d91, 0x00b10420, 0x00050005 }, |
{ 0x00a02040, 0x24003e2c, 0x00ad8020, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8820, 0xfffbfffb }, |
{ 0x00800048, 0x24203e2c, 0x01ed8840, 0xfffbfffb }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8040, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01ed8840, 0x00140014 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8860, 0x00140014 }, |
{ 0x00a02048, 0x24003e2c, 0x00ad8060, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01ed8860, 0x00010001 }, |
{ 0x00800048, 0x24203e2c, 0x01ed8880, 0x00010001 }, |
{ 0x8080000c, 0xd8403d91, 0x00b10400, 0x00050005 }, |
{ 0x8080100c, 0xd8603d91, 0x00b10420, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001c }, |
{ 0x00200401, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00000801, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x01200010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01200010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00210040, 0x22002d08, 0x00450200, 0x00010001 }, |
{ 0x00210040, 0x22002d08, 0x02450200, 0x00100010 }, |
{ 0x00800001, 0xb8000229, 0x01ed8000, 0x00000000 }, |
{ 0x00800001, 0xb8200229, 0x01ed8020, 0x00000000 }, |
{ 0x00800001, 0xb8400229, 0x01ed8040, 0x00000000 }, |
{ 0x00800001, 0xb8600229, 0x01ed8060, 0x00000000 }, |
{ 0x80800042, 0xd8004631, 0x00d29800, 0x00d20480 }, |
{ 0x80800042, 0xd8204631, 0x00d29820, 0x00d204a0 }, |
{ 0x80800042, 0xd8404631, 0x00d29840, 0x00d204c0 }, |
{ 0x80800042, 0xd8604631, 0x00d29860, 0x00d204e0 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000c01, 0x220201e8, 0x00000000, 0x07100710 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00200040, 0x244c3d09, 0x00450200, 0x00100010 }, |
{ 0x00800041, 0x24002628, 0x00ad8000, 0x00000540 }, |
{ 0x00800041, 0x24202628, 0x00ad8020, 0x00000540 }, |
{ 0x00800048, 0x24002628, 0x00ad8002, 0x00000542 }, |
{ 0x00800048, 0x24202628, 0x00ad8022, 0x00000542 }, |
{ 0x00200001, 0x22000128, 0x0045044c, 0x00000000 }, |
{ 0x00800048, 0x24002628, 0x01ed8000, 0x00000544 }, |
{ 0x00800048, 0x24202628, 0x01ed8020, 0x00000544 }, |
{ 0x00800048, 0xbc002629, 0x01ed8002, 0x00000546 }, |
{ 0x00801048, 0xbc202629, 0x01ed8022, 0x00000546 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000128 }, |
{ 0x00000001, 0x20220169, 0x00000000, 0x00040004 }, |
{ 0x00200005, 0x24443dad, 0x00459800, 0x00030003 }, |
{ 0x0020000c, 0x24403dad, 0x00459800, 0x00020002 }, |
{ 0x01600006, 0x20003dac, 0x02000446, 0x00000000 }, |
{ 0x00010040, 0x22000c20, 0x02000078, 0x00200000 }, |
{ 0x00110040, 0x22000c20, 0x02000078, 0x00500000 }, |
{ 0x00310040, 0x20401da5, 0x02450440, 0xfffffffe }, |
{ 0x00110001, 0x20480061, 0x02000000, 0x00080008 }, |
{ 0x00010040, 0x20401da5, 0x02000440, 0xfffffffe }, |
{ 0x00010001, 0x204401a5, 0x02000442, 0x00000000 }, |
{ 0x00010001, 0x20480061, 0x02000000, 0x00030008 }, |
{ 0x01600031, 0x25600021, 0x408d0040, 0x00000200 }, |
{ 0x00000040, 0xb80235ad, 0x00009802, 0x0000003c }, |
{ 0x00000040, 0x22000c20, 0x00000078, 0x00100010 }, |
{ 0x0020040c, 0x24403dad, 0x00459800, 0x00030003 }, |
{ 0x00200805, 0x24483dad, 0x00459800, 0x00070007 }, |
{ 0x00200001, 0x204001a5, 0x00450440, 0x00000000 }, |
{ 0x00000009, 0x20403ca5, 0x00000040, 0x00010001 }, |
{ 0x00000001, 0x20480061, 0x00000000, 0x00020005 }, |
{ 0x02600031, 0x27000021, 0x408d0040, 0x00000200 }, |
{ 0x00110001, 0x220001ec, 0x02000000, 0x05820582 }, |
{ 0x00010001, 0x220001ec, 0x02000000, 0x05620562 }, |
{ 0x00000001, 0x220e0128, 0x00000454, 0x00000000 }, |
{ 0x01800006, 0x200035ac, 0x02000446, 0x00000444 }, |
{ 0x00410001, 0xbc000229, 0x02698000, 0x00000000 }, |
{ 0x00410001, 0xbc100229, 0x02698010, 0x00000000 }, |
{ 0x00410001, 0xbc200229, 0x02698020, 0x00000000 }, |
{ 0x00410001, 0xbc300229, 0x02698030, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000be }, |
{ 0x00600001, 0x2024018d, 0x008d0200, 0x00000000 }, |
{ 0x01000041, 0x245e35ad, 0x00000446, 0x00000444 }, |
{ 0x02000005, 0x20003db0, 0x0200045e, 0x00010001 }, |
{ 0x00000040, 0x22022d08, 0x00000200, 0x00100010 }, |
{ 0x00200040, 0x22042d08, 0x00450200, 0x00200020 }, |
{ 0x00400001, 0x244c0109, 0x00690200, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000044 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000042 }, |
{ 0x00000040, 0x22003d08, 0x00000200, 0xffdeffde }, |
{ 0x00000440, 0x22023d08, 0x00000202, 0xffeeffee }, |
{ 0x00000801, 0x220c0060, 0x00000000, 0x04d004c0 }, |
{ 0x01000010, 0x20003db0, 0x0000045e, 0x00040004 }, |
{ 0x00802040, 0x2400462c, 0x00a98000, 0x00a98005 }, |
{ 0x00802048, 0x24003e2c, 0x00a98001, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98002, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98003, 0x00140014 }, |
{ 0x00802048, 0xb8003e2d, 0x00a98004, 0xfffbfffb }, |
{ 0x00802040, 0x2400462c, 0x00a98040, 0x00a98045 }, |
{ 0x00802048, 0x24003e2c, 0x00a98041, 0xfffbfffb }, |
{ 0x00802048, 0x24003e2c, 0x00a98042, 0x00140014 }, |
{ 0x00802048, 0x24003e2c, 0x00a98043, 0x00140014 }, |
{ 0x00802048, 0xb8203e2d, 0x00a98044, 0xfffbfffb }, |
{ 0x00400040, 0x2400462c, 0x00698080, 0x00698085 }, |
{ 0x00400048, 0x24003e2c, 0x00698081, 0xfffbfffb }, |
{ 0x00400048, 0x24003e2c, 0x00698082, 0x00140014 }, |
{ 0x00400048, 0x24003e2c, 0x00698083, 0x00140014 }, |
{ 0x00400048, 0xb8403e2d, 0x00698084, 0xfffbfffb }, |
{ 0x00000401, 0x220c0060, 0x00000000, 0x04e004d0 }, |
{ 0x00000c01, 0x22000060, 0x00000000, 0x04d004c8 }, |
{ 0x00000c01, 0x22040060, 0x00000000, 0x04e004d8 }, |
{ 0x00000801, 0x22080060, 0x00000000, 0x04f004e8 }, |
{ 0x00800040, 0x24003dac, 0x00b104c0, 0x02000200 }, |
{ 0x00800048, 0x24003dac, 0x00b104e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01ed9800, 0x00140014 }, |
{ 0x00010001, 0x220c0168, 0x00000000, 0x05400540 }, |
{ 0x00110001, 0x220c0168, 0x00000000, 0x04c004c0 }, |
{ 0x00800048, 0x24003dac, 0x01e98000, 0xfffbfffb }, |
{ 0x00800048, 0x24003dac, 0x01e98020, 0x00010001 }, |
{ 0x00800048, 0x24003dac, 0x01e98800, 0x00140014 }, |
{ 0x8080000c, 0xd8003d91, 0x00b10400, 0x000a000a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000060 }, |
{ 0x01000010, 0x20003db0, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000022 }, |
{ 0x00400040, 0x22003d28, 0x0069044c, 0xfffefffe }, |
{ 0x03400010, 0x20003dac, 0x00000446, 0x00020002 }, |
{ 0x01000010, 0x20003db0, 0x02000444, 0x00020002 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00100010 }, |
{ 0x01000010, 0x20003dac, 0x00000446, 0x00000000 }, |
{ 0x00010001, 0x220e0168, 0x02000000, 0x05400540 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x00800040, 0x24003e2c, 0x01e98000, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98001, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98002, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98003, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98004, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e98005, 0x00010001 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x01000010, 0x20003db0, 0x00000446, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x03600010, 0x20003dac, 0x02000444, 0x00020002 }, |
{ 0x00400401, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x00400840, 0x22083d2c, 0x0069044c, 0x00100010 }, |
{ 0x00610040, 0x22002d08, 0x02690200, 0x00010001 }, |
{ 0x01000010, 0x20003dac, 0x00000444, 0x00000000 }, |
{ 0x01000010, 0x20003db0, 0x02000446, 0x00020002 }, |
{ 0x00800040, 0x24003e2c, 0x01e983e0, 0x00100010 }, |
{ 0x00800048, 0x24003e2c, 0x01e98000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e98020, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e993e0, 0xfffbfffb }, |
{ 0x00800048, 0x24003e2c, 0x01e99000, 0x00140014 }, |
{ 0x00800048, 0x24003e2c, 0x01e99020, 0x00010001 }, |
{ 0x00000001, 0x220e0168, 0x00000000, 0x05400540 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00110001, 0x220e0168, 0x02000000, 0x04c004c0 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00050005 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x00400001, 0x22000128, 0x0069044c, 0x00000000 }, |
{ 0x01400010, 0x20003dac, 0x00000444, 0x00030003 }, |
{ 0x01400010, 0x20003dac, 0x02000446, 0x00030003 }, |
{ 0x00410040, 0x22002d08, 0x00690200, 0x00010001 }, |
{ 0x00410040, 0x22002d08, 0x02690200, 0x00100010 }, |
{ 0x00800001, 0x25400229, 0x01e98000, 0x00000000 }, |
{ 0x80800042, 0x45404631, 0x00d20540, 0x00d204c0 }, |
{ 0x00000001, 0x220c0128, 0x00000454, 0x00000000 }, |
{ 0x00400001, 0xd8000231, 0x008a0540, 0x00000000 }, |
{ 0x00400001, 0xd8100231, 0x008a0548, 0x00000000 }, |
{ 0x00400001, 0xd8200231, 0x008a0550, 0x00000000 }, |
{ 0x00400001, 0xd8300231, 0x008a0558, 0x00000000 }, |
{ 0x00600001, 0x220001ac, 0x008d0024, 0x00000000 }, |
{ 0x00200040, 0x244c3dad, 0x00450448, 0xfff8fff8 }, |
{ 0x00000401, 0x220001ec, 0x00000000, 0x07000700 }, |
{ 0x00000801, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00000441, 0x254635ad, 0x00000448, 0x0000044a }, |
{ 0x00000c41, 0x254025ad, 0x0000444c, 0x0000444e }, |
{ 0x00000c41, 0x254225ad, 0x00000448, 0x0000444e }, |
{ 0x00000841, 0x254435ad, 0x0000444c, 0x0000044a }, |
{ 0x00600041, 0x24002628, 0x00898000, 0x00000540 }, |
{ 0x00600048, 0x24002628, 0x00898002, 0x00000542 }, |
{ 0x00600048, 0x24002628, 0x00898008, 0x00000544 }, |
{ 0x00600048, 0x2540262d, 0x0089800a, 0x00000546 }, |
{ 0x00400401, 0xbc0001a9, 0x00690540, 0x00000000 }, |
{ 0x00400801, 0xbc1001a9, 0x00690548, 0x00000000 }, |
{ 0x01000010, 0x20003d2c, 0x00000022, 0x00030003 }, |
{ 0x01000040, 0x20223d29, 0x02000022, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00080008 }, |
{ 0x00110040, 0x24540c21, 0x00000454, 0x00080008 }, |
{ 0x00010040, 0x24540c21, 0x00000454, 0x00180038 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffee4 }, |
{ 0x01800010, 0x20003dac, 0x0200010e, 0x00010001 }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0xffe0ffe0 }, |
{ 0x00010001, 0x24540061, 0x02000000, 0x06c00640 }, |
{ 0x00110001, 0x24540061, 0x02000000, 0x04800780 }, |
{ 0x00000001, 0x220e0128, 0x00000456, 0x00000000 }, |
{ 0x00800040, 0x24003dac, 0x00b19c00, 0x00200020 }, |
{ 0x00800040, 0x24203dac, 0x00b19c20, 0x00200020 }, |
{ 0x8080000c, 0xdc003d91, 0x00b10400, 0x00060006 }, |
{ 0x8080000c, 0xdc203d91, 0x00b10420, 0x00060006 }, |
{ 0x02000040, 0x210e3d29, 0x0200010e, 0xffffffff }, |
{ 0x00000040, 0x220c3d8c, 0x0000020c, 0x00040004 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffcdc }, |
{ 0x01000005, 0x25643e2d, 0x00000060, 0x00c000c0 }, |
{ 0x01000010, 0x20003dac, 0x02000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00a02001, 0x46400231, 0x00d20780, 0x00000000 }, |
{ 0x00a02001, 0x46800231, 0x00d207c0, 0x00000000 }, |
{ 0x00a02001, 0x46c00231, 0x00d20480, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000007e }, |
{ 0x80a02042, 0x46404631, 0x00d20640, 0x00d20780 }, |
{ 0x80a02042, 0x46804631, 0x00d20680, 0x00d207c0 }, |
{ 0x80a02042, 0x46c04631, 0x00d206c0, 0x00d20480 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000076 }, |
{ 0x01000010, 0x20003dac, 0x02000564, 0x00800080 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000000e }, |
{ 0x01000010, 0x20003dac, 0x00000458, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xffffffe4 }, |
{ 0x00200401, 0x256801ed, 0x00000000, 0x00200020 }, |
{ 0x00200801, 0x256c01ed, 0x00000000, 0x00060006 }, |
{ 0x00400001, 0x258001ed, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x45a001ad, 0x00058c00, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000028 }, |
{ 0x02600005, 0x20006e28, 0x02008c0c, 0x88848421 }, |
{ 0x0220000c, 0x25663dad, 0x00000458, 0x00010001 }, |
{ 0x0000000c, 0x25643dad, 0x00000564, 0x00060006 }, |
{ 0x00310001, 0x25c401ad, 0x00000458, 0x00000000 }, |
{ 0x00210001, 0x25c00061, 0x00000000, 0x00010001 }, |
{ 0x00310040, 0x25c03dad, 0x004545c4, 0x00010001 }, |
{ 0x00610001, 0x25a00061, 0x02000000, 0x00000080 }, |
{ 0x00710001, 0x45a002ad, 0x02ae8c00, 0x00000000 }, |
{ 0x00710001, 0x45a202ad, 0x02ae8c01, 0x00000000 }, |
{ 0x00800041, 0x25a035ad, 0x00b105a0, 0x000905c0 }, |
{ 0x01200010, 0x20003e2c, 0x0245006e, 0x00000000 }, |
{ 0x00310009, 0x244c45ad, 0x02000564, 0x0045006e }, |
{ 0x00210001, 0x244c01ed, 0x02000000, 0x00000000 }, |
{ 0x0031000c, 0x244c3dad, 0x0245044c, 0x00010001 }, |
{ 0x00200009, 0x256835ad, 0x0045044c, 0x00000566 }, |
{ 0x00210040, 0x256835ad, 0x02450568, 0x00000566 }, |
{ 0x00200040, 0x256c362d, 0x0045006e, 0x00000566 }, |
{ 0x00400040, 0x240035ac, 0x00ab05a2, 0x00ab05a6 }, |
{ 0x00400040, 0x2400358c, 0x00690400, 0x00000566 }, |
{ 0x0040000c, 0x2580358d, 0x00690400, 0x00000566 }, |
{ 0x00800041, 0x2400362c, 0x00d20640, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d20660, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d20780, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207a0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x464035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x466035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d20680, 0x000005a0 }, |
{ 0x00800041, 0x2420362c, 0x00d206a0, 0x000005a0 }, |
{ 0x00800048, 0x2400362c, 0x00d207c0, 0x000005a4 }, |
{ 0x00800048, 0x2420362c, 0x00d207e0, 0x000005a4 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00000568 }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x00000568 }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056c }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056c }, |
{ 0x80800040, 0x468035b1, 0x00b104c0, 0x00000580 }, |
{ 0x80800040, 0x46a035b1, 0x00b104e0, 0x00000580 }, |
{ 0x00800041, 0x2400362c, 0x00d206c0, 0x000705a8 }, |
{ 0x00800041, 0x2420362c, 0x00d206e0, 0x000705a8 }, |
{ 0x00800048, 0x2400362c, 0x00d20480, 0x000705ac }, |
{ 0x00800048, 0x2420362c, 0x00d204a0, 0x000705ac }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x0000056a }, |
{ 0x00800040, 0x2420358c, 0x00b10420, 0x0000056a }, |
{ 0x0080000c, 0x24c0358d, 0x00b10400, 0x0000056e }, |
{ 0x0080000c, 0x24e0358d, 0x00b10420, 0x0000056e }, |
{ 0x80800040, 0x46c035b1, 0x00b104c0, 0x00050582 }, |
{ 0x80800040, 0x46e035b1, 0x00b104e0, 0x00050582 }, |
{ 0x01800005, 0x20003d2c, 0x02000020, 0x00020002 }, |
{ 0x80800040, 0xd00045b1, 0x00b19000, 0x00d20640 }, |
{ 0x80800040, 0xd02045b1, 0x00b19020, 0x00d20660 }, |
{ 0x80800040, 0xd04045b1, 0x00b19040, 0x00d20680 }, |
{ 0x80800040, 0xd06045b1, 0x00b19060, 0x00d206a0 }, |
{ 0x00000040, 0x22083d8c, 0x00000208, 0x00800080 }, |
{ 0x80400040, 0xd40045b1, 0x00699400, 0x00ab06c0 }, |
{ 0x80400040, 0xd48045b1, 0x00699480, 0x00ab06c2 }, |
{ 0x80400040, 0xd42045b1, 0x00699420, 0x00ab06e0 }, |
{ 0x80400040, 0xd4a045b1, 0x006994a0, 0x00ab06e2 }, |
{ 0x80400040, 0xd41045b1, 0x00699410, 0x00ab06d0 }, |
{ 0x80400040, 0xd49045b1, 0x00699490, 0x00ab06d2 }, |
{ 0x80400040, 0xd43045b1, 0x00699430, 0x00ab06f0 }, |
{ 0x80400040, 0xd4b045b1, 0x006994b0, 0x00ab06f2 }, |
{ 0x00000040, 0x220a3d8c, 0x0000020a, 0x00080008 }, |
{ 0x00110040, 0x220a3d8c, 0x0200020a, 0x00300030 }, |
{ 0x01000010, 0x20003d2c, 0x02000020, 0x00060006 }, |
{ 0x00000040, 0x20203d29, 0x00000020, 0x00020002 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x00100001 }, |
{ 0x00000040, 0x220c358c, 0x0000020c, 0x0000003a }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xfffffc1a }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x220201ec, 0x00000000, 0x01c001c0 }, |
{ 0x00800401, 0x20400236, 0x01ee8000, 0x00000000 }, |
{ 0x00800801, 0x20500236, 0x01ee8010, 0x00000000 }, |
{ 0x00800401, 0x20600236, 0x01ee8020, 0x00000000 }, |
{ 0x00800801, 0x20700236, 0x01ee8030, 0x00000000 }, |
{ 0x00800401, 0x20800236, 0x01ee8040, 0x00000000 }, |
{ 0x00800801, 0x20900236, 0x01ee8050, 0x00000000 }, |
{ 0x00800401, 0x20a00236, 0x01ee8060, 0x00000000 }, |
{ 0x00800801, 0x20b00236, 0x01ee8070, 0x00000000 }, |
{ 0x00800401, 0x20c00236, 0x01ee8100, 0x00000000 }, |
{ 0x00800801, 0x20d00236, 0x01ee8110, 0x00000000 }, |
{ 0x00800401, 0x20e00236, 0x01ee8120, 0x00000000 }, |
{ 0x00800801, 0x20f00236, 0x01ee8130, 0x00000000 }, |
{ 0x00800401, 0x21000236, 0x01ee8140, 0x00000000 }, |
{ 0x00800801, 0x21100236, 0x01ee8150, 0x00000000 }, |
{ 0x00800401, 0x21200236, 0x01ee8160, 0x00000000 }, |
{ 0x00800801, 0x21300236, 0x01ee8170, 0x00000000 }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x1218a000 }, |
{ 0x00200401, 0x204001a5, 0x00450064, 0x00000000 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x000f000f }, |
{ 0x01600031, 0x21400021, 0x508d0040, 0x00000200 }, |
{ 0x00000001, 0x220001ec, 0x00000000, 0x03400340 }, |
{ 0x00800401, 0x41600236, 0x00d28000, 0x00000000 }, |
{ 0x00800801, 0x41610236, 0x00d28080, 0x00000000 }, |
{ 0x00800401, 0x41800236, 0x00d28020, 0x00000000 }, |
{ 0x00800801, 0x41810236, 0x00d280a0, 0x00000000 }, |
{ 0x00800401, 0x41a00236, 0x00d28040, 0x00000000 }, |
{ 0x00800801, 0x41a10236, 0x00d280c0, 0x00000000 }, |
{ 0x00800401, 0x41c00236, 0x00d28060, 0x00000000 }, |
{ 0x00800801, 0x41c10236, 0x00d280e0, 0x00000000 }, |
{ 0x00000040, 0x22000d20, 0x00000062, 0x0a18a001 }, |
{ 0x0000040c, 0x20443ca5, 0x00000044, 0x00010001 }, |
{ 0x00000801, 0x20480061, 0x00000000, 0x0007000f }, |
{ 0x0a600031, 0x21600021, 0x508d0040, 0x00000200 }, |
{ 0x00000001, 0x21400021, 0x00000140, 0x00000000 }, |
{ 0x00000001, 0x21600021, 0x00000160, 0x00000000 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x01000005, 0x20602d29, 0x02000042, 0x00070007 }, |
{ 0x01000005, 0x20422d29, 0x00000042, 0xfff8fff8 }, |
{ 0x00000001, 0x202001e9, 0x00000000, 0x100c100c }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00000009, 0x27e82d21, 0x00000040, 0x00060006 }, |
{ 0x00600001, 0x20a00022, 0x008d0000, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000100 }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x01800031, 0x20801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20400022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20480c22, 0x000007e8, 0x00000080 }, |
{ 0x02800031, 0x21001d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20600022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20680c22, 0x000007e8, 0x00000100 }, |
{ 0x03800031, 0x21801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20800022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20880c22, 0x000007e8, 0x00000180 }, |
{ 0x04800031, 0x22001d09, 0x408d0000, 0x02488400 }, |
{ 0x02600005, 0x20000c20, 0x02000090, 0x00002000 }, |
{ 0x00000006, 0x20880c21, 0x00000088, 0x00200000 }, |
{ 0x00200009, 0x20845529, 0x0000009c, 0x00450020 }, |
{ 0x00200001, 0x40840231, 0x00450094, 0x00000000 }, |
{ 0x00310001, 0x20840229, 0x02450094, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000095, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000094 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0080, 0x00000000 }, |
{ 0x00802001, 0x20800061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x020000d0, 0x00002000 }, |
{ 0x00000006, 0x20c80c21, 0x000000c8, 0x00200000 }, |
{ 0x00200009, 0x20c45529, 0x000000dc, 0x00450020 }, |
{ 0x00200001, 0x40c40231, 0x004500d4, 0x00000000 }, |
{ 0x00310001, 0x20c40229, 0x024500d4, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x000000d5, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x000000d4 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x02000110, 0x00002000 }, |
{ 0x00000006, 0x21080c21, 0x00000108, 0x00200000 }, |
{ 0x00200009, 0x21045529, 0x0000011c, 0x00450020 }, |
{ 0x00200001, 0x41040231, 0x00450114, 0x00000000 }, |
{ 0x00310001, 0x21040229, 0x02450114, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000115, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000114 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x02000150, 0x00002000 }, |
{ 0x00000006, 0x21480c21, 0x00000148, 0x00200000 }, |
{ 0x00200009, 0x21445529, 0x0000015c, 0x00450020 }, |
{ 0x00200001, 0x41440231, 0x00450154, 0x00000000 }, |
{ 0x00310001, 0x21440229, 0x02450154, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000155, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000154 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0140, 0x00000000 }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x02000190, 0x00002000 }, |
{ 0x00000006, 0x21880c21, 0x00000188, 0x00200000 }, |
{ 0x00200009, 0x21845529, 0x0000019c, 0x00450020 }, |
{ 0x00200001, 0x41840231, 0x00450194, 0x00000000 }, |
{ 0x00310001, 0x21840229, 0x02450194, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000195, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000194 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0180, 0x00000000 }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x020001d0, 0x00002000 }, |
{ 0x00000006, 0x21c80c21, 0x000001c8, 0x00200000 }, |
{ 0x00200009, 0x21c45529, 0x000001dc, 0x00450020 }, |
{ 0x00200001, 0x41c40231, 0x004501d4, 0x00000000 }, |
{ 0x00310001, 0x21c40229, 0x024501d4, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x000001d5, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x000001d4 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d01c0, 0x00000000 }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x02000210, 0x00002000 }, |
{ 0x00000006, 0x22080c21, 0x00000208, 0x00200000 }, |
{ 0x00200009, 0x22045529, 0x0000021c, 0x00450020 }, |
{ 0x00200001, 0x42040231, 0x00450214, 0x00000000 }, |
{ 0x00310001, 0x22040229, 0x02450214, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000215, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000214 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0200, 0x00000000 }, |
{ 0x00802001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x02600005, 0x20000c20, 0x02000250, 0x00002000 }, |
{ 0x00000006, 0x22480c21, 0x00000248, 0x00200000 }, |
{ 0x00200009, 0x22445529, 0x0000025c, 0x00450020 }, |
{ 0x00200001, 0x42440231, 0x00450254, 0x00000000 }, |
{ 0x00310001, 0x22440229, 0x02450254, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00000255, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00000254 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0240, 0x00000000 }, |
{ 0x00802001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x01000040, 0x20423dad, 0x00000042, 0xfff8fff8 }, |
{ 0x00600001, 0x21600022, 0x008d07e0, 0x00000000 }, |
{ 0x00802001, 0x21800022, 0x008d0080, 0x00000000 }, |
{ 0x00802001, 0x21c00022, 0x008d00c0, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20280c22, 0x000007e8, 0x00000080 }, |
{ 0x00802001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0140, 0x00000000 }, |
{ 0x01800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x21680c22, 0x000007e8, 0x00000100 }, |
{ 0x00802001, 0x21800022, 0x008d0180, 0x00000000 }, |
{ 0x00802001, 0x21c00022, 0x008d01c0, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x20280c22, 0x000007e8, 0x00000180 }, |
{ 0x00802001, 0x20400022, 0x008d0200, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0240, 0x00000000 }, |
{ 0x01800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x27e80c21, 0x000007e8, 0x00000200 }, |
{ 0x01000010, 0x20002da0, 0x02000060, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xffffff00 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000040 }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x01800031, 0x20801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20400022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20480c22, 0x000007e8, 0x00000080 }, |
{ 0x02800031, 0x21001d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20600022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20680c22, 0x000007e8, 0x00000100 }, |
{ 0x03800031, 0x21801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20800022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20880c22, 0x000007e8, 0x00000180 }, |
{ 0x04800031, 0x22001d09, 0x408d0000, 0x02488400 }, |
{ 0x00000001, 0x220400e0, 0x00000000, 0x00a00080 }, |
{ 0x00600001, 0x20a00022, 0x008d0000, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02008810, 0x00002000 }, |
{ 0x01000040, 0x20603dad, 0x00000060, 0xffffffff }, |
{ 0x00000006, 0xa8080c21, 0x00008808, 0x00200000 }, |
{ 0x00200009, 0xa8045529, 0x0000881c, 0x00450020 }, |
{ 0x00200001, 0xc8040231, 0x00458814, 0x00000000 }, |
{ 0x00310001, 0xa8040229, 0x02458814, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000c }, |
{ 0x00800041, 0x24002628, 0x00008815, 0x00000044 }, |
{ 0x00800040, 0x24004508, 0x008d0400, 0x00008814 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d8800, 0x00000000 }, |
{ 0x00802001, 0xa8000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00600001, 0x21600022, 0x008d07e0, 0x00000000 }, |
{ 0x00802001, 0x21800022, 0x008d8800, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000040, 0x27e80c21, 0x000007e8, 0x00000040 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xffffffda }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x01000005, 0x20602d29, 0x02000042, 0x00070007 }, |
{ 0x01000005, 0x20422d29, 0x00000042, 0xfff8fff8 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00000009, 0x27e82d21, 0x00000040, 0x00060006 }, |
{ 0x00600001, 0x20a00022, 0x008d0000, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000260 }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x01800031, 0x20801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20400022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20480c22, 0x000007e8, 0x00000080 }, |
{ 0x02800031, 0x21001d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20600022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20680c22, 0x000007e8, 0x00000100 }, |
{ 0x03800031, 0x21801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20800022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20880c22, 0x000007e8, 0x00000180 }, |
{ 0x04800031, 0x22001d09, 0x408d0000, 0x02488400 }, |
{ 0x00200001, 0x20640229, 0x00450094, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000090, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000090, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000095, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000095, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000090, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x20881c21, 0x00000088, 0x00200000 }, |
{ 0x00200001, 0x20840129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0080, 0x00000000 }, |
{ 0x00802001, 0x20800061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000090, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000009c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000009c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200009c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000090, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200009c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200009c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x20843d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x20862d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x40840231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x004500d4, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x020000d0, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x000000d0, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x000000d5, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x000000d5, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x000000d0, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x20c81c21, 0x000000c8, 0x00200000 }, |
{ 0x00200001, 0x20c40129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x000000d0, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x000000dc, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x000000dc, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x020000dc, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x020000d0, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x020000dc, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x020000dc, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x20c43d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x20c62d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x40c40231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00450114, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000110, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000110, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000115, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000115, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000110, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x21081c21, 0x00000108, 0x00200000 }, |
{ 0x00200001, 0x21040129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000110, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000011c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000011c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200011c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000110, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200011c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200011c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x21043d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x21062d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x41040231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00450154, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000150, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000150, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000155, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000155, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000150, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x21481c21, 0x00000148, 0x00200000 }, |
{ 0x00200001, 0x21440129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0140, 0x00000000 }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000150, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000015c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000015c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200015c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000150, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200015c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200015c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x21443d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x21462d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x41440231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00450194, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000190, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000190, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000195, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000195, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000190, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x21881c21, 0x00000188, 0x00200000 }, |
{ 0x00200001, 0x21840129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0180, 0x00000000 }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000190, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000019c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000019c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200019c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000190, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200019c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200019c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x21843d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x21862d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x41840231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x004501d4, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x020001d0, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x000001d0, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x000001d5, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x000001d5, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x000001d0, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x21c81c21, 0x000001c8, 0x00200000 }, |
{ 0x00200001, 0x21c40129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d01c0, 0x00000000 }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x000001d0, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x000001dc, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x000001dc, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x020001dc, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x020001d0, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x020001dc, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x020001dc, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x21c43d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x21c62d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x41c40231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00450214, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000210, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000210, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000215, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000215, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000210, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x22081c21, 0x00000208, 0x00200000 }, |
{ 0x00200001, 0x22040129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0200, 0x00000000 }, |
{ 0x00802001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000210, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000021c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000021c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200021c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000210, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200021c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200021c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x22043d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x22062d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x42040231, 0x00660064, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00450254, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02000250, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00000250, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00000255, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00000255, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00000250, 0x00002000 }, |
{ 0x02600005, 0x20001d20, 0x02000066, 0x00000001 }, |
{ 0x00000006, 0x22481c21, 0x00000248, 0x00200000 }, |
{ 0x00200001, 0x22440129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d0240, 0x00000000 }, |
{ 0x00802001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x02600005, 0x20000c20, 0x00000250, 0x00004000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00000001, 0x20680129, 0x0000025c, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000025c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200025c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02000250, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200025c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200025c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x02000068, 0x000d0070 }, |
{ 0x00000009, 0x22443d09, 0x00000602, 0x000c000c }, |
{ 0x00000005, 0x22462d09, 0x00000602, 0xf000f000 }, |
{ 0x00200001, 0x42440231, 0x00660064, 0x00000000 }, |
{ 0x01000040, 0x20423dad, 0x00000042, 0xfff8fff8 }, |
{ 0x00600001, 0x21600022, 0x008d07e0, 0x00000000 }, |
{ 0x00802001, 0x21800022, 0x008d0080, 0x00000000 }, |
{ 0x00802001, 0x21c00022, 0x008d00c0, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20280c22, 0x000007e8, 0x00000080 }, |
{ 0x00802001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0140, 0x00000000 }, |
{ 0x01800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x21680c22, 0x000007e8, 0x00000100 }, |
{ 0x00802001, 0x21800022, 0x008d0180, 0x00000000 }, |
{ 0x00802001, 0x21c00022, 0x008d01c0, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x20280c22, 0x000007e8, 0x00000180 }, |
{ 0x00802001, 0x20400022, 0x008d0200, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0240, 0x00000000 }, |
{ 0x01800031, 0x20001d0c, 0x508d0000, 0x0a080400 }, |
{ 0x00000040, 0x27e80c21, 0x000007e8, 0x00000200 }, |
{ 0x01000010, 0x20002da0, 0x02000060, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffda0 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000006e }, |
{ 0x00600001, 0x20200022, 0x008d07e0, 0x00000000 }, |
{ 0x01800031, 0x20801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20400022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20480c22, 0x000007e8, 0x00000080 }, |
{ 0x02800031, 0x21001d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20600022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20680c22, 0x000007e8, 0x00000100 }, |
{ 0x03800031, 0x21801d09, 0x408d0000, 0x02488400 }, |
{ 0x00600001, 0x20800022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20880c22, 0x000007e8, 0x00000180 }, |
{ 0x04800031, 0x22001d09, 0x408d0000, 0x02488400 }, |
{ 0x00000001, 0x220400e0, 0x00000000, 0x00a00080 }, |
{ 0x00600001, 0x20a00022, 0x008d0000, 0x00000000 }, |
{ 0x00200001, 0x20640229, 0x00458814, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x02008810, 0x01000000 }, |
{ 0x02600005, 0x20000c20, 0x00008810, 0x00004000 }, |
{ 0x00600041, 0x24003e2c, 0x00008815, 0x00020002 }, |
{ 0x00110001, 0x2066018d, 0x02000400, 0x00000000 }, |
{ 0x00010040, 0x20663d8d, 0x02000400, 0x00010001 }, |
{ 0x00110001, 0x2066022d, 0x00008815, 0x00000000 }, |
{ 0x02600005, 0x20000c20, 0x00008810, 0x00002000 }, |
{ 0x01000040, 0x20603dad, 0x02000060, 0xffffffff }, |
{ 0x00000006, 0xa8080c21, 0x00008808, 0x00200000 }, |
{ 0x00200001, 0xa8040129, 0x00450064, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00800041, 0x24002528, 0x00000066, 0x00000044 }, |
{ 0x00800040, 0x24002508, 0x008d0400, 0x00000064 }, |
{ 0x00000009, 0x20a82d02, 0x00000404, 0x00060006 }, |
{ 0x00802001, 0x20c00022, 0x008d8800, 0x00000000 }, |
{ 0x00802001, 0xa8000061, 0x00000000, 0x00000000 }, |
{ 0x05800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x02600005, 0x20000d20, 0x02000066, 0x00000001 }, |
{ 0x02600005, 0x20000c20, 0x00008810, 0x00004000 }, |
{ 0x00000001, 0x20680129, 0x0000881c, 0x00000000 }, |
{ 0x00210002, 0x20700421, 0x02450038, 0x00450030 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x02600005, 0x20001d20, 0x0000881c, 0x00000010 }, |
{ 0x00210002, 0x20700421, 0x02450028, 0x00450020 }, |
{ 0x01600005, 0x20001d20, 0x0200881c, 0x00000001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x02610005, 0x20001c20, 0x02008810, 0x00008000 }, |
{ 0x02610005, 0x20001d20, 0x0200881c, 0x00000010 }, |
{ 0x00010006, 0x20681d29, 0x0200881c, 0x00000010 }, |
{ 0x02800005, 0x2000452c, 0x00000068, 0x000d0070 }, |
{ 0x01000040, 0x20603dad, 0x02000060, 0x00000000 }, |
{ 0x00000009, 0xa8043d09, 0x00000600, 0x000c000c }, |
{ 0x00000005, 0xa8062d09, 0x00000600, 0xf000f000 }, |
{ 0x00200001, 0xc8040231, 0x00660064, 0x00000000 }, |
{ 0x00600001, 0x21600022, 0x008d07e0, 0x00000000 }, |
{ 0x00802001, 0x21800022, 0x008d8800, 0x00000000 }, |
{ 0x0b800031, 0x20001d0c, 0x508d0000, 0x06080300 }, |
{ 0x00000040, 0x27e80c21, 0x000007e8, 0x00000040 }, |
{ 0x00000040, 0x22040c00, 0x00000204, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0xffffffac }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x01600031, 0x20001c20, 0x708d0000, 0x82000010 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00030003 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x01400140 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00200020 }, |
{ 0x00000001, 0x203801e2, 0x00000000, 0x00010001 }, |
{ 0x00800001, 0x204001ae, 0x00b10020, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x000002a0, 0x00010001 }, |
{ 0x00800031, 0x20000128, 0x608d07e0, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00020002 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc6 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffca }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00000041, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff4 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000006 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffff6 }, |
{ 0x05000010, 0x200035ac, 0x00000240, 0x00000026 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffffc }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00600009, 0x25c03dad, 0x00050034, 0x00040004 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x00000041, 0x20263d29, 0x00000036, 0x00040004 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x27e82c21, 0x000005e4, 0x00400040 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x00000178 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000176 }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x00200401, 0x27e001a1, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0288a001 }, |
{ 0x01600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02286003 }, |
{ 0x03600031, 0x20800021, 0x408d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x00000008, 0x25e83e2d, 0x00009080, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x00459080, 0x00000000 }, |
{ 0x00200c01, 0x25d80129, 0x00459050, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699060, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000134 }, |
{ 0x00000008, 0x25e83e2d, 0x00009084, 0x00020002 }, |
{ 0x00200401, 0x25d0022d, 0x00459084, 0x00000000 }, |
{ 0x00000801, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000401, 0x25d80129, 0x00009040, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699064, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000011e }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000401, 0x25d80129, 0x00009042, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699068, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000110 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000401, 0x25d80129, 0x00009044, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x0069906c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000102 }, |
{ 0x00200401, 0x27e001a1, 0x004505c4, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x00800401, 0x23400231, 0x00a90040, 0x00000000 }, |
{ 0x00800801, 0x23500231, 0x00a90044, 0x00000000 }, |
{ 0x00800401, 0x23600231, 0x00a90048, 0x00000000 }, |
{ 0x00800801, 0x23700231, 0x00a9004c, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x002b0340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x002b0350, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x002b0360, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x002b0370, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06082003 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00000008, 0x25e83e2d, 0x00009082, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00800080 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x00459082, 0x00000000 }, |
{ 0x00200c01, 0x25d80129, 0x00459054, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699070, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000096 }, |
{ 0x00000008, 0x25e83e2d, 0x00009084, 0x00020002 }, |
{ 0x00200401, 0x25d0022d, 0x00459084, 0x00000000 }, |
{ 0x00000801, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000401, 0x25d80129, 0x00009046, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699074, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000401, 0x25d80129, 0x00009048, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699078, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000072 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000401, 0x25d80129, 0x0000904a, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x0069907c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x00200401, 0x27e001a1, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x20c00022, 0x008d0140, 0x00000000 }, |
{ 0x00802001, 0x21000022, 0x008d0180, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x12082003 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00802001, 0x20400022, 0x008d0080, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0618a003 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x00800401, 0x23400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x23500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x23600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x23700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x23800231, 0x00cf0340, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00cf0341, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00cf0342, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00cf0343, 0x00000000 }, |
{ 0x00802001, 0x202000a2, 0x008d0380, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x06080020 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00000440, 0x27e03da1, 0x000005c0, 0x000c000c }, |
{ 0x00000c01, 0x27e401a1, 0x000005c2, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x02600031, 0x23401c25, 0x408d07e0, 0x02286003 }, |
{ 0x00800401, 0x23800231, 0x00cf0340, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00cf0341, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00cf0342, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00cf0343, 0x00000000 }, |
{ 0x00802001, 0x202000a2, 0x008d0380, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x06080020 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00800040, 0x2400462d, 0x00b19c00, 0x00b1d830 }, |
{ 0x00800040, 0x2340462d, 0x00b19820, 0x00b1d830 }, |
{ 0x00800040, 0x2360462d, 0x00b19c10, 0x00b1dc00 }, |
{ 0x05810010, 0x200035ac, 0x008d2400, 0x000005d0 }, |
{ 0x05810010, 0x200035ac, 0x008d2340, 0x000005d2 }, |
{ 0x05810010, 0x200035ac, 0x008d2360, 0x000005d2 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x000000ca }, |
{ 0x00800040, 0x2440462d, 0x00b19810, 0x00b1d830 }, |
{ 0x00800040, 0x2460462d, 0x00b19c20, 0x00b1dc00 }, |
{ 0x00800201, 0x24a00129, 0x00b19820, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x00000066 }, |
{ 0x05800010, 0x200035ac, 0x028d2400, 0x000005e8 }, |
{ 0x00800040, 0x2520462d, 0x00b19830, 0x00b19820 }, |
{ 0x00800040, 0x2540462d, 0x00b19c00, 0x00b19c10 }, |
{ 0x00000201, 0x26000108, 0x00000602, 0x00000000 }, |
{ 0x05810010, 0x200035ac, 0x028d2440, 0x000005d2 }, |
{ 0x05810010, 0x200035ac, 0x008d2460, 0x000005d2 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x00800040, 0x2560462d, 0x00b19810, 0x00b19800 }, |
{ 0x00800040, 0x238045ad, 0x008d0520, 0x00b19c00 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00040004 }, |
{ 0x00800040, 0x23a0458d, 0x00b10400, 0x00b19810 }, |
{ 0x00800048, 0x24003dac, 0x008d0560, 0x00020002 }, |
{ 0x80800008, 0x43c03d91, 0x00b10400, 0x00030003 }, |
{ 0x00800040, 0x24003dac, 0x00b103a0, 0xfffefffe }, |
{ 0x80800008, 0x43603d91, 0x00b10400, 0x00020002 }, |
{ 0x00800040, 0x2400362c, 0x00b19c10, 0x00b10380 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00b103a0 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00030003 }, |
{ 0x00800001, 0xb8100231, 0x00ae03c0, 0x00000000 }, |
{ 0x00800001, 0xb8200231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xb8300231, 0x00ae0340, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001000e }, |
{ 0x00800040, 0x2400362c, 0x00b19820, 0x008d0520 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b19c10 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00020002 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00020002 }, |
{ 0x00800001, 0xb8300231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x00800040, 0x2580462d, 0x00b19c20, 0x00b19c30 }, |
{ 0x00800040, 0x238045ad, 0x008d0540, 0x008d04b0 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00040004 }, |
{ 0x00800040, 0x23a0458d, 0x00b10400, 0x00b19c20 }, |
{ 0x00800048, 0x24003dac, 0x008d0580, 0x00020002 }, |
{ 0x80800008, 0x43c03d91, 0x00b10400, 0x00030003 }, |
{ 0x00800040, 0x24003dac, 0x00b103a0, 0xfffefffe }, |
{ 0x80800008, 0x43603d91, 0x00b10400, 0x00020002 }, |
{ 0x00800040, 0x2400362c, 0x008d04a0, 0x00b10380 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00b103a0 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00030003 }, |
{ 0x00800001, 0xbc200231, 0x00ae03c0, 0x00000000 }, |
{ 0x00800001, 0xbc100231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001000e }, |
{ 0x00800040, 0x2400362c, 0x008d04a0, 0x008d0540 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b19c10 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00020002 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00020002 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001005c }, |
{ 0x00800201, 0x23e0022d, 0x002805d4, 0x00000000 }, |
{ 0x00800201, 0x23c0022d, 0x002805d4, 0x00000000 }, |
{ 0x05800010, 0x200035ac, 0x008d2440, 0x000005d2 }, |
{ 0x05800010, 0x200035ac, 0x028d2460, 0x000005d2 }, |
{ 0x00800040, 0x24003e2c, 0x00b19820, 0x00040004 }, |
{ 0x00800048, 0x24003dac, 0x008d0400, 0x00040004 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b1dc10 }, |
{ 0x00800008, 0x23403d8d, 0x00b10400, 0x00030003 }, |
{ 0x00810040, 0x23e03dad, 0x008d03e0, 0x00010001 }, |
{ 0x00200201, 0x25ec018d, 0x00450600, 0x00000000 }, |
{ 0x00810040, 0x23e03dad, 0x028d03e0, 0x00010001 }, |
{ 0x03800010, 0x200035ac, 0x008d0340, 0x008d03e0 }, |
{ 0x05800010, 0x200035ac, 0x028d0340, 0x008d43e0 }, |
{ 0x00800042, 0x24c0462d, 0x00b19830, 0x00b19c00 }, |
{ 0x00810001, 0x234001ad, 0x008d03e0, 0x00000000 }, |
{ 0x00810001, 0x234001ad, 0x028d43e0, 0x00000000 }, |
{ 0x00200201, 0x260001ac, 0x004505ec, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19830, 0x008d0340 }, |
{ 0x80800040, 0x43403631, 0x00b19c00, 0x008d4340 }, |
{ 0x00800001, 0xb8300231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00800040, 0x2400362c, 0x00b19810, 0x008d04c0 }, |
{ 0x00800048, 0x24003e2c, 0x00b19820, 0xfffefffe }, |
{ 0x00800008, 0x23603d8d, 0x00b10400, 0x00010001 }, |
{ 0x03800010, 0x200035ac, 0x008d0360, 0x008d03c0 }, |
{ 0x05800010, 0x200035ac, 0x028d0360, 0x008d43c0 }, |
{ 0x00810001, 0x236001ad, 0x008d03c0, 0x00000000 }, |
{ 0x00810001, 0x236001ad, 0x028d43c0, 0x00000000 }, |
{ 0x00000201, 0x260201ac, 0x000005ee, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19820, 0x008d0360 }, |
{ 0x00800001, 0xb8200231, 0x00ae0360, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00800040, 0x2400362c, 0x00b19c20, 0x008d04c0 }, |
{ 0x00800048, 0x24003e2c, 0x00b19c10, 0xfffefffe }, |
{ 0x00800008, 0x23603d8d, 0x00b10400, 0x00010001 }, |
{ 0x03800010, 0x200035ac, 0x008d0360, 0x008d03c0 }, |
{ 0x05800010, 0x200035ac, 0x028d0360, 0x008d43c0 }, |
{ 0x00810001, 0x236001ad, 0x008d03c0, 0x00000000 }, |
{ 0x00810001, 0x236001ad, 0x028d43c0, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19c10, 0x008d0360 }, |
{ 0x00800001, 0xbc100231, 0x00ae0360, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007c0, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00030003 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000001, 0x206801ed, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00030003 }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc4 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffc8 }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00800001, 0x240001ac, 0x00000068, 0x00000000 }, |
{ 0x00000048, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff2 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00600401, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x26140061, 0x00000000, 0x01800000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000801, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00000040, 0x2078252d, 0x00000026, 0x00004280 }, |
{ 0x00400001, 0x26000231, 0x00000078, 0x00000000 }, |
{ 0x00600031, 0x26201c21, 0x308d0600, 0x02000002 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffffe8 }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000012 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00600009, 0x25c03dad, 0x00050034, 0x00040004 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x27e82c21, 0x000005e4, 0x00400040 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x01400140 }, |
{ 0x00000048, 0x20263dad, 0x00000036, 0x00040004 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x00800001, 0x2220022d, 0x000d002c, 0x00000000 }, |
{ 0x00600040, 0x22303dad, 0x008d0230, 0x00080008 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x00000126 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000124 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0248a002 }, |
{ 0x02600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02186004 }, |
{ 0x02600031, 0x20800021, 0x408d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x00800008, 0x2340352d, 0x00009050, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009052, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x004590c0, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a0, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000fc }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00410041 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00200401, 0x25d0022d, 0x004590c8, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b0, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000ee }, |
{ 0x00800008, 0x2340352d, 0x00009042, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00200401, 0x25d0022d, 0x004590c4, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a4, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000d8 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00200401, 0x25d0022d, 0x004590cc, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b4, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000ca }, |
{ 0x00000401, 0x27e001a1, 0x000005c4, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c6, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x00600401, 0x2340012d, 0x00890040, 0x00000000 }, |
{ 0x00600801, 0x2350012d, 0x00890048, 0x00000000 }, |
{ 0x00600001, 0x204001aa, 0x00270340, 0x00000000 }, |
{ 0x00600001, 0x205001aa, 0x00270350, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x04082004 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00800008, 0x2340352d, 0x00009054, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009056, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00800080 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x004590c2, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a8, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00810081 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00200401, 0x25d0022d, 0x004590ca, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b8, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000078 }, |
{ 0x00800008, 0x2340352d, 0x00009048, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00200401, 0x25d0022d, 0x004590c4, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990ac, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00200401, 0x25d0022d, 0x004590cc, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990bc, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000054 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0a082004 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00600001, 0x20400022, 0x008d0080, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0418a004 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x00600401, 0x2340012d, 0x008500cc, 0x00000000 }, |
{ 0x00600801, 0x2350012d, 0x0085010c, 0x00000000 }, |
{ 0x00800001, 0x236001ad, 0x002e0340, 0x00000000 }, |
{ 0x00600001, 0x202000a2, 0x008d0360, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x04080020 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00000440, 0x27e03da1, 0x000005c0, 0x000c000c }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x02600031, 0x23401c25, 0x408d07e0, 0x02186004 }, |
{ 0x00800001, 0x236001ad, 0x002e0340, 0x00000000 }, |
{ 0x00600001, 0x202000a2, 0x008d0360, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x04080020 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00600040, 0x2400462d, 0x00ae9c00, 0x00aed810 }, |
{ 0x00600040, 0x2340462d, 0x00ae9800, 0x00aed810 }, |
{ 0x00600040, 0x2360462d, 0x00ae9c10, 0x00aedc00 }, |
{ 0x05810010, 0x200035ac, 0x008d2400, 0x000005d0 }, |
{ 0x05810010, 0x200035ac, 0x008d2340, 0x000005d2 }, |
{ 0x05810010, 0x200035ac, 0x008d2360, 0x000005d2 }, |
{ 0x00618022, 0x34001c00, 0x00001400, 0x00000038 }, |
{ 0x00618022, 0x34001c00, 0x02001400, 0x00000016 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9c10, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x00ae9800, 0x00020002 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00ae9810 }, |
{ 0x80600008, 0x43403d91, 0x008d0400, 0x00020002 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9800, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x00ae9c10, 0x00020002 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00ae9c00 }, |
{ 0x80600008, 0x43603d91, 0x008d0400, 0x00020002 }, |
{ 0x00600001, 0xd8100231, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0xdc000231, 0x00ae0360, 0x00000000 }, |
{ 0x00608024, 0x34001c00, 0x00001400, 0x00010020 }, |
{ 0x00600201, 0x2400022c, 0x002405d4, 0x00000000 }, |
{ 0x00600040, 0x23e03d8d, 0x008d0400, 0x00010001 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9800, 0x00040004 }, |
{ 0x00600048, 0x24003dac, 0x008d0400, 0x00040004 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00aedc10 }, |
{ 0x00600008, 0x23403d8d, 0x008d0400, 0x00030003 }, |
{ 0x03600010, 0x200035ac, 0x008d0340, 0x008d03e0 }, |
{ 0x05600010, 0x200035ac, 0x028d0340, 0x008d43e0 }, |
{ 0x00610001, 0x234001ad, 0x008d03e0, 0x00000000 }, |
{ 0x00610001, 0x234001ad, 0x028d43e0, 0x00000000 }, |
{ 0x80600040, 0x43603631, 0x00ae9810, 0x008d0340 }, |
{ 0x80600040, 0x43403631, 0x00ae9c00, 0x008d4340 }, |
{ 0x00600001, 0xd8100231, 0x00ae0360, 0x00000000 }, |
{ 0x00600001, 0xdc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007c0, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00030003 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x01400140 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00200020 }, |
{ 0x00000001, 0x203801e2, 0x00000000, 0x00010001 }, |
{ 0x00800001, 0x204001ae, 0x00b10020, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x000002a0, 0x00010001 }, |
{ 0x00800031, 0x20000128, 0x608d07e0, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00020002 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc6 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffca }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00000041, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff4 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000006 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffff6 }, |
{ 0x05000010, 0x200035ac, 0x00000240, 0x00000026 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffffc }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00600009, 0x25c03dad, 0x00050034, 0x00040004 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x00000041, 0x20263d29, 0x00000036, 0x00040004 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x27e82c21, 0x000005e4, 0x00400040 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x0000018c }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000018a }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0288e701 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0288e601 }, |
{ 0x01600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02286703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02286603 }, |
{ 0x03600031, 0x20800021, 0x408d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x00000008, 0x25e83e2d, 0x00009080, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x00459080, 0x00000000 }, |
{ 0x00200c01, 0x25d80129, 0x00459050, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699060, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffb8c }, |
{ 0x00000008, 0x25e83e2d, 0x00009084, 0x00020002 }, |
{ 0x00200401, 0x25d0022d, 0x00459084, 0x00000000 }, |
{ 0x00000801, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000401, 0x25d80129, 0x00009040, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699064, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffb76 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000401, 0x25d80129, 0x00009042, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699068, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffb68 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000401, 0x25d80129, 0x00009044, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x0069906c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffb5a }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c4, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x00800401, 0x23400231, 0x00a90040, 0x00000000 }, |
{ 0x00800801, 0x23500231, 0x00a90044, 0x00000000 }, |
{ 0x00800401, 0x23600231, 0x00a90048, 0x00000000 }, |
{ 0x00800801, 0x23700231, 0x00a9004c, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x002b0340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x002b0350, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x002b0360, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x002b0370, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x06082703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x06082603 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00000008, 0x25e83e2d, 0x00009082, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00800080 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x00459082, 0x00000000 }, |
{ 0x00200c01, 0x25d80129, 0x00459054, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699070, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffaea }, |
{ 0x00000008, 0x25e83e2d, 0x00009084, 0x00020002 }, |
{ 0x00200401, 0x25d0022d, 0x00459084, 0x00000000 }, |
{ 0x00000801, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x25e83dad, 0x000005e8, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000401, 0x25d80129, 0x00009046, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699074, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffad4 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000401, 0x25d80129, 0x00009048, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x00699078, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffac6 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000401, 0x25d80129, 0x0000904a, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x0069907c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0xfffffab8 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x20c00022, 0x008d0140, 0x00000000 }, |
{ 0x00802001, 0x21000022, 0x008d0180, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x12082703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x12082603 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00802001, 0x20400022, 0x008d0080, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0618a703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0618a603 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x00800401, 0x23400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x23500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x23600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x23700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x23800231, 0x00cf0340, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00cf0341, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00cf0342, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00cf0343, 0x00000000 }, |
{ 0x00802001, 0x202000a2, 0x008d0380, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x06080020 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000440, 0x27e03da1, 0x000005c0, 0x000c000c }, |
{ 0x00000c01, 0x27e401a1, 0x000005c2, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02286003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x00010008 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02286703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02286603 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x23400025, 0x408d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00cf0340, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00cf0341, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00cf0342, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00cf0343, 0x00000000 }, |
{ 0x00802001, 0x202000a2, 0x008d0380, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x06080020 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00030003 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000001, 0x206801ed, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00030003 }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc4 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffc8 }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00800001, 0x240001ac, 0x00000068, 0x00000000 }, |
{ 0x00000048, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff2 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00600401, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x26140061, 0x00000000, 0x01800000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000801, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00000040, 0x2078252d, 0x00000026, 0x00004280 }, |
{ 0x00400001, 0x26000231, 0x00000078, 0x00000000 }, |
{ 0x00600031, 0x26201c21, 0x308d0600, 0x02000002 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffffe8 }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000012 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00600009, 0x25c03dad, 0x00050034, 0x00040004 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x27e82c21, 0x000005e4, 0x00400040 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x01400140 }, |
{ 0x00000048, 0x20263dad, 0x00000036, 0x00040004 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x00800001, 0x2220022d, 0x000d002c, 0x00000000 }, |
{ 0x00600040, 0x22303dad, 0x008d0230, 0x00080008 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x0000013a }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000138 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0248e702 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0248e602 }, |
{ 0x02600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02186704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02186604 }, |
{ 0x02600031, 0x20800021, 0x408d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x00800008, 0x2340352d, 0x00009050, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009052, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x004590c0, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a0, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffc0c }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00410041 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00200401, 0x25d0022d, 0x004590c8, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b0, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffbfe }, |
{ 0x00800008, 0x2340352d, 0x00009042, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00200401, 0x25d0022d, 0x004590c4, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a4, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffbe8 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00200401, 0x25d0022d, 0x004590cc, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b4, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffbda }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c4, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c6, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x00600401, 0x2340012d, 0x00890040, 0x00000000 }, |
{ 0x00600801, 0x2350012d, 0x00890048, 0x00000000 }, |
{ 0x00600001, 0x204001aa, 0x00270340, 0x00000000 }, |
{ 0x00600001, 0x205001aa, 0x00270350, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x04082704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x04082604 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00800008, 0x2340352d, 0x00009054, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009056, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00800080 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200401, 0x25d0022d, 0x004590c2, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990a8, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffb92 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00810081 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00200401, 0x25d0022d, 0x004590ca, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990b8, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffb84 }, |
{ 0x00800008, 0x2340352d, 0x00009048, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00200401, 0x25d0022d, 0x004590c4, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990ac, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffb6e }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00200401, 0x25d0022d, 0x004590cc, 0x00000000 }, |
{ 0x00400801, 0x25d40231, 0x006990bc, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffb60 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0a082704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0a082604 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00600001, 0x20400022, 0x008d0080, 0x00000000 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0418a704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0418a604 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x00600401, 0x2340012d, 0x008500cc, 0x00000000 }, |
{ 0x00600801, 0x2350012d, 0x0085010c, 0x00000000 }, |
{ 0x00800001, 0x236001ad, 0x002e0340, 0x00000000 }, |
{ 0x00600001, 0x202000a2, 0x008d0360, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x04080020 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000440, 0x27e03da1, 0x000005c0, 0x000c000c }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02186004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x00010008 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02186704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02186604 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x23400025, 0x408d07e0, 0x00000200 }, |
{ 0x00800001, 0x236001ad, 0x002e0340, 0x00000000 }, |
{ 0x00600001, 0x202000a2, 0x008d0360, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x00000026, 0x00010001 }, |
{ 0x00800031, 0x20001d28, 0x608d07e0, 0x04080020 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00010001 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00010001 }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x01400140 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00200020 }, |
{ 0x00000001, 0x203801e2, 0x00000000, 0x00010001 }, |
{ 0x00800001, 0x204001ae, 0x00b10020, 0x00000000 }, |
{ 0x00000008, 0x27e03d29, 0x000002a0, 0x00010001 }, |
{ 0x00800031, 0x20000128, 0x608d07e0, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x22a00169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00020002 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc6 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffca }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00000041, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff4 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000006 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffff6 }, |
{ 0x05000010, 0x200035ac, 0x00000240, 0x00000026 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffffc }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00400441, 0x45c03dad, 0x00000034, 0x00100010 }, |
{ 0x00400841, 0x45c23dad, 0x00000036, 0x00200020 }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x25e42c21, 0x000005e4, 0x00800080 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x00000005, 0x202a3dad, 0x0000002a, 0xfffdfffd }, |
{ 0x02000005, 0x20002d2c, 0x0200002a, 0x00020002 }, |
{ 0x00000001, 0x27e80021, 0x000005e4, 0x00000000 }, |
{ 0x00010040, 0x27e83c21, 0x020007e8, 0x00400040 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000005, 0x25ec2e29, 0x00009002, 0x000a000a }, |
{ 0x00000005, 0x25ea2e29, 0x00009002, 0x00060006 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x00000252 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000250 }, |
{ 0x01000010, 0x20003d2c, 0x000005ec, 0x00080008 }, |
{ 0x00000005, 0x25e03d8d, 0x00000600, 0x00010001 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a5, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0288a001 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0288e701 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0288e601 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c4, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02286003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02286703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02286603 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x23400025, 0x408d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x00800401, 0x20400231, 0x00cf0340, 0x00000000 }, |
{ 0x00800801, 0x20500231, 0x00cf0341, 0x00000000 }, |
{ 0x00800401, 0x20600231, 0x00cf0342, 0x00000000 }, |
{ 0x00800801, 0x20700231, 0x00cf0343, 0x00000000 }, |
{ 0x01600010, 0x20003d2c, 0x000005ea, 0x00040004 }, |
{ 0x01600010, 0x20003d2c, 0x020005ea, 0x00020002 }, |
{ 0x00800001, 0x21c00229, 0x00009080, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00009081, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289060, 0x00000000 }, |
{ 0x00610401, 0x41c00229, 0x00009080, 0x00000000 }, |
{ 0x00610801, 0x41c20229, 0x00009090, 0x00000000 }, |
{ 0x00610401, 0x41e00229, 0x00009081, 0x00000000 }, |
{ 0x00610801, 0x41e20229, 0x00009091, 0x00000000 }, |
{ 0x00610401, 0x42000229, 0x00249060, 0x00000000 }, |
{ 0x00610801, 0x42020229, 0x00249098, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x00610401, 0x21c00229, 0x02009080, 0x00000000 }, |
{ 0x00610801, 0x21d00229, 0x02009090, 0x00000000 }, |
{ 0x00610401, 0x21e00229, 0x02009081, 0x00000000 }, |
{ 0x00610801, 0x21f00229, 0x02009091, 0x00000000 }, |
{ 0x00610401, 0x22000229, 0x02249060, 0x00000000 }, |
{ 0x00610801, 0x22100229, 0x02249098, 0x00000000 }, |
{ 0x00800008, 0x25a03d29, 0x008d01c0, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200001, 0x25d80129, 0x00459050, 0x00000000 }, |
{ 0x00800040, 0x25a03d29, 0x00b105a0, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001b4 }, |
{ 0x00800008, 0x25a03e29, 0x00009084, 0x00020002 }, |
{ 0x00800001, 0x21c00229, 0x00009084, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00009085, 0x00000000 }, |
{ 0x00000001, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00800040, 0x25a03d29, 0x00b105a0, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x25d80129, 0x00009040, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289064, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000019c }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x25d80129, 0x00009042, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289068, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000018e }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000001, 0x25d80129, 0x00009044, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x0028906c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000180 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c4, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f0003 }, |
{ 0x00800401, 0x23400231, 0x00a90040, 0x00000000 }, |
{ 0x00800801, 0x23500231, 0x00a90044, 0x00000000 }, |
{ 0x00800401, 0x23600231, 0x00a90048, 0x00000000 }, |
{ 0x00800801, 0x23700231, 0x00a9004c, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x002b0340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x002b0350, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x002b0360, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x002b0370, 0x00000000 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06082003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x06082703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x06082603 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02286003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x01000005, 0x20003dac, 0x020005e0, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000006 }, |
{ 0x00000440, 0x27e43ca5, 0x000007e4, 0xfffcfffc }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x00200000 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000c }, |
{ 0x0000000c, 0x27e43da5, 0x000005c2, 0x00010001 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02286703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02286603 }, |
{ 0x00000040, 0x27e43ca5, 0x000007e4, 0xfffcfffc }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20400021, 0x408d07e0, 0x00000200 }, |
{ 0x00800401, 0x23800231, 0x00a900c0, 0x00000000 }, |
{ 0x00800801, 0x23900231, 0x00a90100, 0x00000000 }, |
{ 0x00800401, 0x23a00231, 0x00a90140, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00a90180, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00a900c4, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00a90104, 0x00000000 }, |
{ 0x00800401, 0x23e00231, 0x00a90144, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00a90184, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00a900c8, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00a90108, 0x00000000 }, |
{ 0x00800401, 0x24200231, 0x00a90148, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00a90188, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00a900cc, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00a9010c, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00a9014c, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00a9018c, 0x00000000 }, |
{ 0x00800401, 0x20c00231, 0x00cf0380, 0x00000000 }, |
{ 0x00800801, 0x20d00231, 0x00cf0381, 0x00000000 }, |
{ 0x00800401, 0x20e00231, 0x00cf0382, 0x00000000 }, |
{ 0x00800801, 0x20f00231, 0x00cf0383, 0x00000000 }, |
{ 0x00800401, 0x21000231, 0x00cf03c0, 0x00000000 }, |
{ 0x00800801, 0x21100231, 0x00cf03c1, 0x00000000 }, |
{ 0x00800401, 0x21200231, 0x00cf03c2, 0x00000000 }, |
{ 0x00800801, 0x21300231, 0x00cf03c3, 0x00000000 }, |
{ 0x00800401, 0x21400231, 0x00cf0400, 0x00000000 }, |
{ 0x00800801, 0x21500231, 0x00cf0401, 0x00000000 }, |
{ 0x00800401, 0x21600231, 0x00cf0402, 0x00000000 }, |
{ 0x00800801, 0x21700231, 0x00cf0403, 0x00000000 }, |
{ 0x00800401, 0x21800231, 0x00cf0440, 0x00000000 }, |
{ 0x00800801, 0x21900231, 0x00cf0441, 0x00000000 }, |
{ 0x00800401, 0x21a00231, 0x00cf0442, 0x00000000 }, |
{ 0x00800801, 0x21b00231, 0x00cf0443, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00000001, 0x260201ac, 0x000005e0, 0x00000000 }, |
{ 0x00800008, 0x25a03e29, 0x00009082, 0x00020002 }, |
{ 0x00200001, 0x25d80129, 0x00459054, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00009082, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00009083, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289070, 0x00000000 }, |
{ 0x00800040, 0x25a03d29, 0x00b105a0, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000050 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000000a }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000d4 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000044 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05000500 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05400540 }, |
{ 0x00800001, 0x25000129, 0x00ad0040, 0x00000000 }, |
{ 0x00800001, 0x25200129, 0x00ad0080, 0x00000000 }, |
{ 0x00800001, 0x25400129, 0x00ad00c0, 0x00000000 }, |
{ 0x00800001, 0x25600129, 0x00ad0100, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000c2 }, |
{ 0x00600001, 0x20600129, 0x008d0510, 0x00000000 }, |
{ 0x00600001, 0x20800129, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x20a00129, 0x008d0530, 0x00000000 }, |
{ 0x00600001, 0x20c00129, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x20e00129, 0x008d0550, 0x00000000 }, |
{ 0x00600001, 0x21000129, 0x008d0560, 0x00000000 }, |
{ 0x00800008, 0x25a03e29, 0x00009092, 0x00020002 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05000500 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05400540 }, |
{ 0x00800001, 0x25000129, 0x00ad0050, 0x00000000 }, |
{ 0x00800001, 0x25200129, 0x00ad0090, 0x00000000 }, |
{ 0x00800001, 0x25400129, 0x00ad00d0, 0x00000000 }, |
{ 0x00800001, 0x25600129, 0x00ad0110, 0x00000000 }, |
{ 0x00200001, 0x25d80129, 0x0045905c, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00009092, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00009093, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x0028909c, 0x00000000 }, |
{ 0x00800040, 0x25a03d29, 0x00b105a0, 0x00020002 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000009a }, |
{ 0x00600001, 0x20700129, 0x008d0510, 0x00000000 }, |
{ 0x00600001, 0x20900129, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x20b00129, 0x008d0530, 0x00000000 }, |
{ 0x00600001, 0x20d00129, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x20f00129, 0x008d0550, 0x00000000 }, |
{ 0x00600001, 0x21100129, 0x008d0560, 0x00000000 }, |
{ 0x00800008, 0x25a03e29, 0x00009084, 0x00020002 }, |
{ 0x00800001, 0x21c00229, 0x00009084, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00009085, 0x00000000 }, |
{ 0x00000001, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00800040, 0x25a03d29, 0x00b105a0, 0x00020002 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x25d80129, 0x00009046, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289074, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000076 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00100010 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01000100 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x25d80129, 0x00009048, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00289078, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000068 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00200020 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x01400140 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01800180 }, |
{ 0x00000001, 0x25d80129, 0x0000904a, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x0028907c, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x0000005a }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c0, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00802001, 0x20c00022, 0x008d0140, 0x00000000 }, |
{ 0x00802001, 0x21000022, 0x008d0180, 0x00000000 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x12082003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x12082703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x12082603 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x01800005, 0x20003dac, 0x020005e0, 0x00010001 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x00200401, 0x27e001a1, 0x004505c8, 0x00000000 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00812001, 0x20400022, 0x028d0040, 0x00000000 }, |
{ 0x00912001, 0x20400022, 0x028d0080, 0x00000000 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0618a003 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00100010 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000c }, |
{ 0x0000000c, 0x27e43da5, 0x000005c2, 0x00010001 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0618a703 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0618a603 }, |
{ 0x00000040, 0x27e43ca5, 0x000007e4, 0xfffcfffc }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003dac, 0x0000002a, 0x00020002 }, |
{ 0x00000006, 0x202a3dad, 0x0000002a, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffd94 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00800040, 0x2400462d, 0x00b19c00, 0x00b1d830 }, |
{ 0x00800040, 0x2340462d, 0x00b19820, 0x00b1d830 }, |
{ 0x00800040, 0x2360462d, 0x00b19c10, 0x00b1dc00 }, |
{ 0x05810010, 0x200025ac, 0x008d2400, 0x008d01c0 }, |
{ 0x05810010, 0x200025ac, 0x008d2340, 0x008d01e0 }, |
{ 0x05810010, 0x200025ac, 0x008d2360, 0x008d01e0 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x000000c8 }, |
{ 0x00800040, 0x2440462d, 0x00b19810, 0x00b1d830 }, |
{ 0x00800040, 0x2460462d, 0x00b19c20, 0x00b1dc00 }, |
{ 0x00800201, 0x24a00129, 0x00b19820, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x00000066 }, |
{ 0x05800010, 0x200025ac, 0x028d2400, 0x008d05a0 }, |
{ 0x00800040, 0x2520462d, 0x00b19830, 0x00b19820 }, |
{ 0x00800040, 0x2540462d, 0x00b19c00, 0x00b19c10 }, |
{ 0x00000201, 0x26000108, 0x00000602, 0x00000000 }, |
{ 0x05810010, 0x200025ac, 0x028d2440, 0x008d01e0 }, |
{ 0x05810010, 0x200025ac, 0x008d2460, 0x008d01e0 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x00800040, 0x2560462d, 0x00b19810, 0x00b19800 }, |
{ 0x00800040, 0x238045ad, 0x008d0520, 0x00b19c00 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00040004 }, |
{ 0x00800040, 0x23a0458d, 0x00b10400, 0x00b19810 }, |
{ 0x00800048, 0x24003dac, 0x008d0560, 0x00020002 }, |
{ 0x80800008, 0x43c03d91, 0x00b10400, 0x00030003 }, |
{ 0x00800040, 0x24003dac, 0x00b103a0, 0xfffefffe }, |
{ 0x80800008, 0x43603d91, 0x00b10400, 0x00020002 }, |
{ 0x00800040, 0x2400362c, 0x00b19c10, 0x00b10380 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00b103a0 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00030003 }, |
{ 0x00800001, 0xb8100231, 0x00ae03c0, 0x00000000 }, |
{ 0x00800001, 0xb8200231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xb8300231, 0x00ae0340, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001000e }, |
{ 0x00800040, 0x2400362c, 0x00b19820, 0x008d0520 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b19c10 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00020002 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00020002 }, |
{ 0x00800001, 0xb8300231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x00800040, 0x2580462d, 0x00b19c20, 0x00b19c30 }, |
{ 0x00800040, 0x238045ad, 0x008d0540, 0x008d04b0 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00040004 }, |
{ 0x00800040, 0x23a0458d, 0x00b10400, 0x00b19c20 }, |
{ 0x00800048, 0x24003dac, 0x008d0580, 0x00020002 }, |
{ 0x80800008, 0x43c03d91, 0x00b10400, 0x00030003 }, |
{ 0x00800040, 0x24003dac, 0x00b103a0, 0xfffefffe }, |
{ 0x80800008, 0x43603d91, 0x00b10400, 0x00020002 }, |
{ 0x00800040, 0x2400362c, 0x008d04a0, 0x00b10380 }, |
{ 0x00800040, 0x2400358c, 0x00b10400, 0x00b103a0 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00030003 }, |
{ 0x00800001, 0xbc200231, 0x00ae03c0, 0x00000000 }, |
{ 0x00800001, 0xbc100231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001000e }, |
{ 0x00800040, 0x2400362c, 0x008d04a0, 0x008d0540 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b19c10 }, |
{ 0x00800040, 0x24003d8c, 0x00b10400, 0x00020002 }, |
{ 0x80800008, 0x43403d91, 0x00b10400, 0x00020002 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00808024, 0x34001c00, 0x00001400, 0x0001005a }, |
{ 0x00800001, 0x23e0012d, 0x008d0200, 0x00000000 }, |
{ 0x05800010, 0x200025ac, 0x008d2440, 0x008d01e0 }, |
{ 0x05800010, 0x200025ac, 0x028d2460, 0x008d01e0 }, |
{ 0x00800040, 0x24003e2c, 0x00b19820, 0x00040004 }, |
{ 0x00800048, 0x24003dac, 0x008d0400, 0x00040004 }, |
{ 0x00800040, 0x2400458c, 0x00b10400, 0x00b1dc10 }, |
{ 0x00800008, 0x23403d8d, 0x00b10400, 0x00030003 }, |
{ 0x00810040, 0x23e03dad, 0x008d03e0, 0x00010001 }, |
{ 0x00200201, 0x25ec018d, 0x00450600, 0x00000000 }, |
{ 0x00810040, 0x23e03dad, 0x028d03e0, 0x00010001 }, |
{ 0x03800010, 0x200035ac, 0x008d0340, 0x008d03e0 }, |
{ 0x05800010, 0x200035ac, 0x028d0340, 0x008d43e0 }, |
{ 0x00800042, 0x24c0462d, 0x00b19830, 0x00b19c00 }, |
{ 0x00810001, 0x234001ad, 0x008d03e0, 0x00000000 }, |
{ 0x00810001, 0x234001ad, 0x028d43e0, 0x00000000 }, |
{ 0x00200201, 0x260001ac, 0x004505ec, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19830, 0x008d0340 }, |
{ 0x80800040, 0x43403631, 0x00b19c00, 0x008d4340 }, |
{ 0x00800001, 0xb8300231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0xbc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00800040, 0x2400362c, 0x00b19810, 0x008d04c0 }, |
{ 0x00800048, 0x24003e2c, 0x00b19820, 0xfffefffe }, |
{ 0x00800008, 0x23603d8d, 0x00b10400, 0x00010001 }, |
{ 0x03800010, 0x200025ac, 0x008d0360, 0x008d0200 }, |
{ 0x05800010, 0x200025ac, 0x028d0360, 0x008d4200 }, |
{ 0x00810001, 0x2360012d, 0x008d0200, 0x00000000 }, |
{ 0x00810001, 0x2360012d, 0x028d4200, 0x00000000 }, |
{ 0x00000201, 0x260201ac, 0x000005ee, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19820, 0x008d0360 }, |
{ 0x00800001, 0xb8200231, 0x00ae0360, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00818022, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00800040, 0x2400362c, 0x00b19c20, 0x008d04c0 }, |
{ 0x00800048, 0x24003e2c, 0x00b19c10, 0xfffefffe }, |
{ 0x00800008, 0x23603d8d, 0x00b10400, 0x00010001 }, |
{ 0x03800010, 0x200025ac, 0x008d0360, 0x008d0200 }, |
{ 0x05800010, 0x200025ac, 0x028d0360, 0x008d4200 }, |
{ 0x00810001, 0x2360012d, 0x008d0200, 0x00000000 }, |
{ 0x00810001, 0x2360012d, 0x028d4200, 0x00000000 }, |
{ 0x80800040, 0x43603631, 0x00b19c10, 0x008d0360 }, |
{ 0x00800001, 0xbc100231, 0x00ae0360, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007c0, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00a02001, 0x20400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x206601ed, 0x00000000, 0x00010001 }, |
{ 0x00000009, 0x20663dad, 0x00000066, 0x000a000a }, |
{ 0x00000001, 0x206801ed, 0x00000000, 0x01400140 }, |
{ 0x00000001, 0x22600169, 0x00000000, 0x00030003 }, |
{ 0x00000008, 0x22403dad, 0x00000026, 0x00010001 }, |
{ 0x00000041, 0x224235ad, 0x00000020, 0x00000022 }, |
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x203c0022, 0x00000018, 0x00000000 }, |
{ 0x00000001, 0x203f01f2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c00e2, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x202c010a, 0x00000e00, 0x00000000 }, |
{ 0x00600001, 0x20400021, 0x008d0020, 0x00000000 }, |
{ 0x00400001, 0x205401ed, 0x00000000, 0x00000000 }, |
{ 0x00200040, 0x20583dad, 0x00450020, 0xffffffff }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06080000 }, |
{ 0x00600001, 0x26000021, 0x008d0000, 0x00000000 }, |
{ 0x00000001, 0x26140061, 0x00000000, 0x00c00400 }, |
{ 0x00000001, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x07600031, 0x26201c21, 0x308d0600, 0x02000000 }, |
{ 0x00200401, 0x208000e5, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x208800e5, 0x00000000, 0xffffffc4 }, |
{ 0x00000801, 0x208c00e5, 0x00000000, 0xffffffc8 }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d07e0, 0x00000000 }, |
{ 0x00000040, 0x20283c22, 0x00000008, 0x00100010 }, |
{ 0x00000001, 0x206001ed, 0x00000000, 0x00020002 }, |
{ 0x00000001, 0x206201ad, 0x0000005a, 0x00000000 }, |
{ 0x00000001, 0x20a001ed, 0x00000000, 0x00000000 }, |
{ 0x00200001, 0x228001ed, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x20c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21000061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21400061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21800061, 0x00000000, 0x00ff00ff }, |
{ 0x00802001, 0x21c00061, 0x00000000, 0x00ff00ff }, |
{ 0x00000041, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x05000010, 0x200035ac, 0x02000280, 0x00000240 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000004 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x01000010, 0x20002d28, 0x000090c2, 0x00000000 }, |
{ 0x03000010, 0x200035ac, 0x02000054, 0x00000058 }, |
{ 0x00800001, 0x240001ac, 0x00000068, 0x00000000 }, |
{ 0x00000048, 0x22a03dad, 0x00000056, 0x00040004 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffff2 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00200001, 0xb0c00229, 0x00450054, 0x00000000 }, |
{ 0x00200040, 0x22803dad, 0x00450280, 0x00010001 }, |
{ 0x00000001, 0x20300022, 0x00000010, 0x00000000 }, |
{ 0x00000001, 0x20380122, 0x00000260, 0x00000000 }, |
{ 0x00800001, 0x204001ae, 0x00b10040, 0x00000000 }, |
{ 0x00000008, 0x20003d2a, 0x000002a0, 0x00010001 }, |
{ 0x00000040, 0x22602d29, 0x00000260, 0x00020002 }, |
{ 0x00800031, 0x20000008, 0x608d0000, 0x00000200 }, |
{ 0x00000006, 0x203025a2, 0x00000066, 0x000002a0 }, |
{ 0x01600031, 0x20001c00, 0x708d0000, 0x02000001 }, |
{ 0x04200010, 0x200035ac, 0x00450054, 0x00450060 }, |
{ 0x00010040, 0x20a03dad, 0x02000056, 0x00010001 }, |
{ 0x05200010, 0x200035ac, 0x02450280, 0x00450240 }, |
{ 0x00000001, 0x240001ec, 0x00000000, 0x00040004 }, |
{ 0x00000048, 0x22083dac, 0x00000056, 0x00040004 }, |
{ 0x00200040, 0x205455ad, 0x00450054, 0x00450034 }, |
{ 0x02000010, 0x20003d8c, 0x00000600, 0x00010001 }, |
{ 0x00000041, 0x220e3d8c, 0x00000602, 0x00040004 }, |
{ 0x00010041, 0x22083dac, 0x000000a0, 0x00040004 }, |
{ 0x00010401, 0x205601ad, 0x000000a0, 0x00000000 }, |
{ 0x00010840, 0x20543d2d, 0x000090c0, 0x00010001 }, |
{ 0x00000220, 0x34001400, 0x00001400, 0x00009c80 }, |
{ 0x01000010, 0x20003dac, 0x02000280, 0x00000000 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000014 }, |
{ 0x00000030, 0x32000084, 0x00001200, 0x00000000 }, |
{ 0x00000040, 0x22803dad, 0x00000280, 0xffffffff }, |
{ 0x00600401, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000c01, 0x26140061, 0x00000000, 0x01800000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000801, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00000040, 0x2078252d, 0x00000026, 0x00004280 }, |
{ 0x00400001, 0x26000231, 0x00000078, 0x00000000 }, |
{ 0x00600031, 0x26201c21, 0x308d0600, 0x02000002 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffffe8 }, |
{ 0x07600031, 0x20001c20, 0x30000000, 0x02000001 }, |
{ 0x01600031, 0x20001c24, 0x708d0000, 0x82000012 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0000, 0x00000000 }, |
{ 0x00400441, 0x45c03dad, 0x00000034, 0x00100010 }, |
{ 0x00400841, 0x45c23dad, 0x00000036, 0x00200020 }, |
{ 0x00200001, 0x260001ec, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x25e20129, 0x00000036, 0x00000000 }, |
{ 0x00000041, 0x25e435a1, 0x00000020, 0x00000036 }, |
{ 0x00000040, 0x25e43421, 0x000005e4, 0x00000034 }, |
{ 0x00000041, 0x25e42c21, 0x000005e4, 0x00800080 }, |
{ 0x00000040, 0x25c43dad, 0x000005c4, 0xfffcfffc }, |
{ 0x00000040, 0x25ca3dad, 0x000005ca, 0xfffcfffc }, |
{ 0x00000005, 0x202a3dad, 0x0000002a, 0xfffdfffd }, |
{ 0x00800001, 0x2220022d, 0x000d002c, 0x00000000 }, |
{ 0x00600040, 0x22303dad, 0x008d0230, 0x00080008 }, |
{ 0x02000005, 0x20002d2c, 0x0200002a, 0x00020002 }, |
{ 0x00000001, 0x27e80021, 0x000005e4, 0x00000000 }, |
{ 0x00010040, 0x27e83c21, 0x020007e8, 0x00400040 }, |
{ 0x01600031, 0x22401c21, 0x408d07e0, 0x02885800 }, |
{ 0x00000001, 0x220801ec, 0x00000000, 0x02400240 }, |
{ 0x01800005, 0x20002d28, 0x02b19040, 0xffffffff }, |
{ 0x02000005, 0x20003e2c, 0x00009030, 0x00010001 }, |
{ 0x00000005, 0x25ec2e29, 0x00009002, 0x000a000a }, |
{ 0x00000005, 0x25ea2e29, 0x00009002, 0x00060006 }, |
{ 0x000b0220, 0x34001c00, 0x02001400, 0x00000252 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000250 }, |
{ 0x01000010, 0x20003d2c, 0x000005ec, 0x00080008 }, |
{ 0x00000005, 0x25e03d8d, 0x00000600, 0x00010001 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0248a002 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0248e702 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0248e602 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x20c00021, 0x408d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c4, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c6, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02186004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02186704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02186604 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x23400025, 0x408d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x00800001, 0x204001a9, 0x002e0340, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00400040 }, |
{ 0x01000010, 0x20003d2c, 0x020005ea, 0x00040004 }, |
{ 0x00800008, 0x2340352d, 0x00009050, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009052, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x01000010, 0x20003d2c, 0x000005ea, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x02600005, 0x20003dac, 0x00650340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02650360, 0x00010001 }, |
{ 0x00400401, 0x41c00229, 0x000090c0, 0x00000000 }, |
{ 0x00400801, 0x41c20229, 0x000090e0, 0x00000000 }, |
{ 0x00400401, 0x41e00229, 0x000090c1, 0x00000000 }, |
{ 0x00400801, 0x41e20229, 0x000090e1, 0x00000000 }, |
{ 0x00400401, 0x42000229, 0x006990a0, 0x00000000 }, |
{ 0x00400801, 0x42020229, 0x006990e8, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000001e }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00400401, 0x21c00229, 0x000090c0, 0x00000000 }, |
{ 0x00400801, 0x21c80229, 0x000090e0, 0x00000000 }, |
{ 0x00400401, 0x21e00229, 0x000090c1, 0x00000000 }, |
{ 0x00400801, 0x21e80229, 0x000090e1, 0x00000000 }, |
{ 0x00400401, 0x22000229, 0x006990a0, 0x00000000 }, |
{ 0x00400801, 0x22080229, 0x006990e8, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00600001, 0x21c00229, 0x000090c0, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c1, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490a0, 0x00000000 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001c8 }, |
{ 0x01400010, 0x20003d2c, 0x000005ea, 0x00040004 }, |
{ 0x01400010, 0x20003d2c, 0x020005ea, 0x00020002 }, |
{ 0x00600001, 0x21c00229, 0x000090c8, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c9, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490b0, 0x00000000 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00410041 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00410401, 0x41c00229, 0x000090c8, 0x00000000 }, |
{ 0x00410801, 0x41c20229, 0x000090f0, 0x00000000 }, |
{ 0x00410401, 0x41e00229, 0x000090c9, 0x00000000 }, |
{ 0x00410801, 0x41e20229, 0x000090f1, 0x00000000 }, |
{ 0x00410401, 0x42000229, 0x006990b0, 0x00000000 }, |
{ 0x00410801, 0x42020229, 0x006990f8, 0x00000000 }, |
{ 0x00410401, 0x21c00229, 0x020090c8, 0x00000000 }, |
{ 0x00410801, 0x21c80229, 0x020090f0, 0x00000000 }, |
{ 0x00410401, 0x21e00229, 0x020090c9, 0x00000000 }, |
{ 0x00410801, 0x21e80229, 0x020090f1, 0x00000000 }, |
{ 0x00410401, 0x22000229, 0x026990b0, 0x00000000 }, |
{ 0x00410801, 0x22080229, 0x026990f8, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000019c }, |
{ 0x00800008, 0x2340352d, 0x00009042, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00600001, 0x21c00229, 0x000090c4, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c5, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490a4, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000184 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00600001, 0x21c00229, 0x000090cc, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090cd, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490b4, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000174 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c4, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c6, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x00070003 }, |
{ 0x00600401, 0x2340012d, 0x00890040, 0x00000000 }, |
{ 0x00600801, 0x2350012d, 0x00890048, 0x00000000 }, |
{ 0x00600001, 0x204001aa, 0x00270340, 0x00000000 }, |
{ 0x00600001, 0x205001aa, 0x00270350, 0x00000000 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x04082004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x04082704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x04082604 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da5, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x02186004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x01000005, 0x20003dac, 0x020005e0, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000006 }, |
{ 0x00000440, 0x27e43ca5, 0x000007e4, 0xfffefffe }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0003000f }, |
{ 0x00000040, 0x22000c00, 0x00000200, 0x00100000 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000c }, |
{ 0x0000000c, 0x27e43da5, 0x000005c2, 0x00020002 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x02186704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x02186604 }, |
{ 0x00000040, 0x27e43ca5, 0x000007e4, 0xfffefffe }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x02600031, 0x20400021, 0x408d07e0, 0x00000200 }, |
{ 0x00800001, 0x2380012d, 0x008900c0, 0x00000000 }, |
{ 0x00800001, 0x23a0012d, 0x00890100, 0x00000000 }, |
{ 0x00800001, 0x23c0012d, 0x008900c8, 0x00000000 }, |
{ 0x00800001, 0x23e0012d, 0x00890108, 0x00000000 }, |
{ 0x00600401, 0x20c001a9, 0x00ab0380, 0x00000000 }, |
{ 0x00600801, 0x20d001a9, 0x00ab0382, 0x00000000 }, |
{ 0x00600401, 0x20e001a9, 0x00ab0384, 0x00000000 }, |
{ 0x00600801, 0x20f001a9, 0x00ab0386, 0x00000000 }, |
{ 0x00600401, 0x210001a9, 0x00ab03c0, 0x00000000 }, |
{ 0x00600801, 0x211001a9, 0x00ab03c2, 0x00000000 }, |
{ 0x00600401, 0x212001a9, 0x00ab03c4, 0x00000000 }, |
{ 0x00600801, 0x213001a9, 0x00ab03c6, 0x00000000 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00800080 }, |
{ 0x00000001, 0x260201ac, 0x000005e0, 0x00000000 }, |
{ 0x00800008, 0x2340352d, 0x00009054, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x00009056, 0x008d0220 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000026 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00400040 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c000c0 }, |
{ 0x00600001, 0x21c00229, 0x000090c2, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c3, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490a8, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000f0 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00410041 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x00c100c1 }, |
{ 0x00600001, 0x21c00229, 0x000090ca, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090cb, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490b8, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000e0 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05000500 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05200520 }, |
{ 0x00800001, 0x25000129, 0x00ad0040, 0x00000000 }, |
{ 0x00800001, 0x25200129, 0x00ad00c0, 0x00000000 }, |
{ 0x00600001, 0x21c00229, 0x000090c2, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c3, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490a8, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000c6 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05010501 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05210521 }, |
{ 0x00600001, 0x21c00229, 0x000090ca, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090cb, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490b8, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000000b6 }, |
{ 0x00800008, 0x2340352d, 0x0000905c, 0x008d0220 }, |
{ 0x00800008, 0x2360352d, 0x0000905e, 0x008d0220 }, |
{ 0x00600001, 0x20600129, 0x008d0510, 0x00000000 }, |
{ 0x00600001, 0x20c00129, 0x008d0520, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x02600005, 0x20003dac, 0x02ae0360, 0x00010001 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05000500 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05200520 }, |
{ 0x00800001, 0x25000129, 0x00ad0050, 0x00000000 }, |
{ 0x00800001, 0x25200129, 0x00ad00d0, 0x00000000 }, |
{ 0x00600001, 0x21c00229, 0x000090e2, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090e3, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490ec, 0x00000000 }, |
{ 0x00200001, 0x25d80109, 0x00450600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000096 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x05010501 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x05210521 }, |
{ 0x00600001, 0x21c00229, 0x000090f2, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090f3, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490fc, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00600001, 0x20700129, 0x008d0510, 0x00000000 }, |
{ 0x00600001, 0x20d00129, 0x008d0520, 0x00000000 }, |
{ 0x00800008, 0x2340352d, 0x00009048, 0x008d0220 }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e000e0 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01000100 }, |
{ 0x00600001, 0x21c00229, 0x000090c4, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090c5, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490ac, 0x00000000 }, |
{ 0x02600005, 0x20003dac, 0x00ae0340, 0x00010001 }, |
{ 0x00000001, 0x260201e8, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x25da01e9, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x25d80109, 0x00000600, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x00000401, 0x220c01ec, 0x00000000, 0x00e100e1 }, |
{ 0x00000801, 0x220e01ec, 0x00000000, 0x01010101 }, |
{ 0x00600001, 0x21c00229, 0x000090cc, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x000090cd, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x002490bc, 0x00000000 }, |
{ 0x00200001, 0x26000128, 0x004505d8, 0x00000000 }, |
{ 0x00000040, 0x27c01c01, 0x00001400, 0x00000020 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000005a }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c0, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005c2, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0007000f }, |
{ 0x00802001, 0x20400022, 0x008d00c0, 0x00000000 }, |
{ 0x00802001, 0x20800022, 0x008d0100, 0x00000000 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0a082004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000a }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0a082704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0a082604 }, |
{ 0x0000000c, 0x27e43ca5, 0x000007e4, 0x00010001 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x20000020, 0x508d07e0, 0x00000200 }, |
{ 0x01600005, 0x20003dac, 0x020005e0, 0x00010001 }, |
{ 0x01000005, 0x20003e2c, 0x00009002, 0x00020002 }, |
{ 0x00000401, 0x27e001a1, 0x000005c8, 0x00000000 }, |
{ 0x00000c0c, 0x27e43da1, 0x000005ca, 0x00010001 }, |
{ 0x00000801, 0x27e80061, 0x00000000, 0x0001000f }, |
{ 0x00610001, 0x20400022, 0x028d0040, 0x00000000 }, |
{ 0x00710001, 0x20400022, 0x028d0060, 0x00000000 }, |
{ 0x02000005, 0x20003dac, 0x0200002a, 0x00020002 }, |
{ 0x00018022, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0418a004 }, |
{ 0x00010040, 0x27e43ca5, 0x020007e4, 0x00080008 }, |
{ 0x00008024, 0x34001c00, 0x00001400, 0x0001000c }, |
{ 0x0000000c, 0x27e43da5, 0x000005c2, 0x00020002 }, |
{ 0x00010001, 0x22000060, 0x02000000, 0x0418a704 }, |
{ 0x00110001, 0x22000060, 0x02000000, 0x0418a604 }, |
{ 0x00000040, 0x27e43ca5, 0x000007e4, 0xfffefffe }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x01600031, 0x26400021, 0x508d07e0, 0x00000200 }, |
{ 0x01000005, 0x20003dac, 0x0000002a, 0x00020002 }, |
{ 0x00000006, 0x202a3dad, 0x0000002a, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0xfffffd94 }, |
{ 0x00600001, 0x26400021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x260001e1, 0x00000000, 0x00000000 }, |
{ 0x00000009, 0x26143da1, 0x000005e2, 0x00120012 }, |
{ 0x00000440, 0x26141c21, 0x00000614, 0x00020000 }, |
{ 0x00000c01, 0x26120129, 0x0000000c, 0x00000000 }, |
{ 0x00000c01, 0x26100169, 0x00000000, 0x12121212 }, |
{ 0x00400801, 0x26000171, 0x00000000, 0xffffffff }, |
{ 0x00600031, 0x20001c20, 0x308d0600, 0x82008002 }, |
{ 0x00600040, 0x2400462d, 0x00ae9c00, 0x00aed810 }, |
{ 0x00600040, 0x2340462d, 0x00ae9800, 0x00aed810 }, |
{ 0x00600040, 0x2360462d, 0x00ae9c10, 0x00aedc00 }, |
{ 0x05810010, 0x200025ac, 0x008d2400, 0x008d01c0 }, |
{ 0x05810010, 0x200025ac, 0x008d2340, 0x008d01e0 }, |
{ 0x05810010, 0x200025ac, 0x008d2360, 0x008d01e0 }, |
{ 0x00618022, 0x34001c00, 0x00001400, 0x00000036 }, |
{ 0x00618022, 0x34001c00, 0x02001400, 0x00000016 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9c10, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x00ae9800, 0x00020002 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00ae9810 }, |
{ 0x80600008, 0x43403d91, 0x008d0400, 0x00020002 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9800, 0x00020002 }, |
{ 0x00600048, 0x24003e2c, 0x00ae9c10, 0x00020002 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00ae9c00 }, |
{ 0x80600008, 0x43603d91, 0x008d0400, 0x00020002 }, |
{ 0x00600001, 0xd8100231, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0xdc000231, 0x00ae0360, 0x00000000 }, |
{ 0x00608024, 0x34001c00, 0x00001400, 0x0001001e }, |
{ 0x00600040, 0x23e03d2d, 0x008d0200, 0x00010001 }, |
{ 0x00600040, 0x24003e2c, 0x00ae9800, 0x00040004 }, |
{ 0x00600048, 0x24003dac, 0x008d0400, 0x00040004 }, |
{ 0x00600040, 0x2400458c, 0x008d0400, 0x00aedc10 }, |
{ 0x00600008, 0x23403d8d, 0x008d0400, 0x00030003 }, |
{ 0x03600010, 0x200035ac, 0x008d0340, 0x008d03e0 }, |
{ 0x05600010, 0x200035ac, 0x028d0340, 0x008d43e0 }, |
{ 0x00610001, 0x234001ad, 0x008d03e0, 0x00000000 }, |
{ 0x00610001, 0x234001ad, 0x028d43e0, 0x00000000 }, |
{ 0x80600040, 0x43603631, 0x00ae9810, 0x008d0340 }, |
{ 0x80600040, 0x43403631, 0x00ae9c00, 0x008d4340 }, |
{ 0x00600001, 0xd8100231, 0x00ae0360, 0x00000000 }, |
{ 0x00600001, 0xdc000231, 0x00ae0340, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00008025, 0x20000000, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x000007c0, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
/drivers/video/i965/shaders/h264/mc/export.inc |
---|
0,0 → 1,345 |
#define INTRA_16x16_IP 0 |
#define INTRA_16x16_VERTICAL_IP 14 |
#define INTRA_16x16_HORIZONTAL_IP 32 |
#define INTRA_16x16_DC_IP 52 |
#define INTRA_16x16_PLANE_IP 98 |
#define End_intra_Pred_16x16_Y_IP 166 |
#define End_add_Error_16x16_Y_IP 204 |
#define load_Intra_Ref_Y_IP 220 |
#define decode_Chroma_Intra_IP 238 |
#define INTRA_CHROMA_DC_IP 260 |
#define INTRA_CHROMA_HORIZONTAL_IP 320 |
#define INTRA_CHROMA_VERTICAL_IP 332 |
#define INTRA_Chroma_PLANE_IP 342 |
#define End_of_intra_Pred_Chroma_IP 392 |
#define save_16x16_Y_IP 436 |
#define INTRA_8x8_IP 464 |
#define INTRA_8x8_BLK2_IP 568 |
#define intra_Pred_8x8_Y_IP 640 |
#define INTRA_8X8_VERTICAL_IP 672 |
#define INTRA_8X8_HORIZONTAL_IP 682 |
#define INTRA_8X8_DC_IP 692 |
#define INTRA_8X8_DIAG_DOWN_LEFT_IP 724 |
#define INTRA_8X8_DIAG_DOWN_RIGHT_IP 744 |
#define INTRA_8X8_VERT_RIGHT_IP 772 |
#define INTRA_8X8_HOR_DOWN_IP 808 |
#define INTRA_8X8_VERT_LEFT_IP 842 |
#define INTRA_8X8_HOR_UP_IP 862 |
#define save_8x8_Y_IP 886 |
#define INTRA_4x4_IP 928 |
#define intra_Pred_4x4_Y_4_IP 1062 |
#define ADD_ERROR_SB0_IP 1074 |
#define ADD_ERROR_SB1_IP 1088 |
#define ADD_ERROR_SB2_IP 1108 |
#define ADD_ERROR_SB3_IP 1124 |
#define intra_Pred_4x4_Y_IP 1130 |
#define INTRA_4X4_VERTICAL_IP 1130 |
#define INTRA_4X4_HORIZONTAL_IP 1134 |
#define INTRA_4X4_DC_IP 1138 |
#define INTRA_4X4_DIAG_DOWN_LEFT_IP 1160 |
#define INTRA_4X4_DIAG_DOWN_RIGHT_IP 1174 |
#define INTRA_4X4_VERT_RIGHT_IP 1192 |
#define INTRA_4X4_HOR_DOWN_IP 1218 |
#define INTRA_4X4_VERT_LEFT_IP 1246 |
#define INTRA_4X4_HOR_UP_IP 1260 |
#define save_4x4_Y_IP 1276 |
#define INTRA_PCM_IP 1320 |
#define FRAME_MB_IP 1384 |
#define INIT_MBPARA_FRM_IP 1390 |
#define NOT_8x8_MODE_FRM_IP 1426 |
#define CONVERT_MVS_FRM_IP 1436 |
#define INIT_ADDRESS_REGS_FRM_IP 1446 |
#define LOOP_SUBMB_FRM_IP 1454 |
#define LOOP_DIR_FRM_IP 1460 |
#define LOADREF_MVXZERO_FRM_IP 1510 |
#define EXIT_LOADREF_Y_16x13_FRM_IP 1524 |
#define Interpolate_Y_8x8_Func_FRM_IP 1544 |
#define Interpolate_Y_8x8_Func2_FRM_IP 1574 |
#define Interpolate_Y_H_8x8_FRM_IP 1708 |
#define Interpolate_Y_V_8x8_FRM_IP 1790 |
#define VFILTER_8x8_FRM_IP 1812 |
#define Interpolate_Y_I_8x8_FRM_IP 1860 |
#define Average_8x8_FRM_IP 1880 |
#define Return_Interpolate_Y_8x8_FRM_IP 1888 |
#define Exit_Interpolate_Y_8x8_FRM_IP 1890 |
#define Interpolate_C_4x4_Func_FRM_IP 1890 |
#define PROCESS4x4_FRM_IP 1928 |
#define LOOP_SUBMBPT_FRM_IP 1930 |
#define Interpolate_Y_H_4x4_FRM_IP 2066 |
#define Interpolate_Y_V_4x4_FRM_IP 2108 |
#define VFILTER_4x4_FRM_IP 2142 |
#define Interpolate_Y_I_4x4_FRM_IP 2148 |
#define Average_4x4_FRM_IP 2160 |
#define Return_Interpolate_Y_4x4_FRM_IP 2162 |
#define Exit_Interpolate_Y_4x4_FRM_IP 2174 |
#define ROUND_SHIFT_C_FRM_IP 2222 |
#define LOOP_DIR_CONTINUE_FRM_IP 2230 |
#define Weighted_Prediction_FRM_IP 2236 |
#define DefaultWeightedPred_UniPred_FRM_IP 2244 |
#define DefaultWeightedPred_BiPred_FRM_IP 2256 |
#define WeightedPred_FRM_IP 2264 |
#define WeightedPred_Explicit_FRM_IP 2282 |
#define WeightedPred_LOOP_FRM_IP 2322 |
#define Return_WeightedPred_FRM_IP 2382 |
#define EXIT_LOOP_FRM_IP 2424 |
#define FIELD_MB_IP 2496 |
#define INIT_MBPARA_FLD_IP 2502 |
#define NOT_8x8_MODE_FLD_IP 2538 |
#define CONVERT_MVS_FLD_IP 2548 |
#define INIT_ADDRESS_REGS_FLD_IP 2558 |
#define LOOP_SUBMB_FLD_IP 2568 |
#define LOOP_DIR_FLD_IP 2574 |
#define LOADREF_MVXZERO_FLD_IP 2644 |
#define EXIT_LOADREF_Y_16x13_FLD_IP 2658 |
#define Interpolate_Y_8x8_Func_FLD_IP 2680 |
#define Interpolate_Y_8x8_Func2_FLD_IP 2710 |
#define Interpolate_Y_H_8x8_FLD_IP 2844 |
#define Interpolate_Y_V_8x8_FLD_IP 2926 |
#define VFILTER_8x8_FLD_IP 2948 |
#define Interpolate_Y_I_8x8_FLD_IP 2996 |
#define Average_8x8_FLD_IP 3016 |
#define Return_Interpolate_Y_8x8_FLD_IP 3024 |
#define Exit_Interpolate_Y_8x8_FLD_IP 3026 |
#define Interpolate_C_4x4_Func_FLD_IP 3026 |
#define PROCESS4x4_FLD_IP 3064 |
#define LOOP_SUBMBPT_FLD_IP 3066 |
#define Interpolate_Y_H_4x4_FLD_IP 3204 |
#define Interpolate_Y_V_4x4_FLD_IP 3246 |
#define VFILTER_4x4_FLD_IP 3280 |
#define Interpolate_Y_I_4x4_FLD_IP 3286 |
#define Average_4x4_FLD_IP 3298 |
#define Return_Interpolate_Y_4x4_FLD_IP 3300 |
#define Exit_Interpolate_Y_4x4_FLD_IP 3312 |
#define ROUND_SHIFT_C_FLD_IP 3360 |
#define LOOP_DIR_CONTINUE_FLD_IP 3368 |
#define Weighted_Prediction_FLD_IP 3374 |
#define DefaultWeightedPred_UniPred_FLD_IP 3382 |
#define DefaultWeightedPred_BiPred_FLD_IP 3394 |
#define WeightedPred_FLD_IP 3402 |
#define WeightedPred_Explicit_FLD_IP 3420 |
#define WeightedPred_LOOP_FLD_IP 3460 |
#define Return_WeightedPred_FLD_IP 3520 |
#define EXIT_LOOP_FLD_IP 3562 |
#define MBAFF_MB_IP 3640 |
#define INIT_MBPARA_MBF_IP 3646 |
#define NOT_8x8_MODE_MBF_IP 3682 |
#define CONVERT_MVS_MBF_IP 3692 |
#define INIT_ADDRESS_REGS_MBF_IP 3702 |
#define LOOP_SUBMB_MBF_IP 3716 |
#define LOOP_DIR_MBF_IP 3722 |
#define LOADREF_MVXZERO_MBF_IP 3796 |
#define EXIT_LOADREF_Y_16x13_MBF_IP 3810 |
#define Interpolate_Y_8x8_Func_MBF_IP 3832 |
#define Interpolate_Y_8x8_Func2_MBF_IP 3862 |
#define Interpolate_Y_H_8x8_MBF_IP 3996 |
#define Interpolate_Y_V_8x8_MBF_IP 4078 |
#define VFILTER_8x8_MBF_IP 4100 |
#define Interpolate_Y_I_8x8_MBF_IP 4148 |
#define Average_8x8_MBF_IP 4168 |
#define Return_Interpolate_Y_8x8_MBF_IP 4176 |
#define Exit_Interpolate_Y_8x8_MBF_IP 4178 |
#define Interpolate_C_4x4_Func_MBF_IP 4178 |
#define PROCESS4x4_MBF_IP 4216 |
#define LOOP_SUBMBPT_MBF_IP 4218 |
#define Interpolate_Y_H_4x4_MBF_IP 4356 |
#define Interpolate_Y_V_4x4_MBF_IP 4398 |
#define VFILTER_4x4_MBF_IP 4432 |
#define Interpolate_Y_I_4x4_MBF_IP 4438 |
#define Average_4x4_MBF_IP 4450 |
#define Return_Interpolate_Y_4x4_MBF_IP 4452 |
#define Exit_Interpolate_Y_4x4_MBF_IP 4464 |
#define ROUND_SHIFT_C_MBF_IP 4512 |
#define LOOP_DIR_CONTINUE_MBF_IP 4520 |
#define Weighted_Prediction_MBF_IP 4526 |
#define DefaultWeightedPred_UniPred_MBF_IP 4534 |
#define DefaultWeightedPred_BiPred_MBF_IP 4546 |
#define WeightedPred_MBF_IP 4554 |
#define WeightedPred_Explicit_MBF_IP 4572 |
#define WeightedPred_LOOP_MBF_IP 4612 |
#define Return_WeightedPred_MBF_IP 4672 |
#define EXIT_LOOP_MBF_IP 4714 |
#define SETHWSCOREBOARD_IP 4792 |
#define SetHWScoreboard_Loop_IP 4806 |
#define Parse_8_Loop_0_IP 4852 |
#define Parse_8_Loop_2_IP 4876 |
#define Parse_8_Loop_4_IP 4900 |
#define Parse_8_Loop_6_IP 4924 |
#define Parse_8_Loop_8_IP 4948 |
#define Parse_8_Loop_10_IP 4972 |
#define Parse_8_Loop_12_IP 4996 |
#define Parse_8_Loop_14_IP 5020 |
#define SetHWScoreboard_Remainder_IP 5062 |
#define SetHWScoreboard_Remainder_Loop_IP 5090 |
#define Output_Remainder_Intra_IP 5116 |
#define SetHWScoreboard_Done_IP 5128 |
#define SETHWSCOREBOARD_MBAFF_IP 5136 |
#define SetHWScoreboard_MBAFF_Loop_IP 5148 |
#define SET_SB_MBAFF_INTRA_0_IP 5208 |
#define SET_SB_MBAFF_0_IP 5230 |
#define NEXT_MB_MBAFF_0_IP 5238 |
#define SET_SB_MBAFF_INTRA_2_IP 5276 |
#define SET_SB_MBAFF_2_IP 5298 |
#define NEXT_MB_MBAFF_2_IP 5306 |
#define SET_SB_MBAFF_INTRA_4_IP 5344 |
#define SET_SB_MBAFF_4_IP 5366 |
#define NEXT_MB_MBAFF_4_IP 5374 |
#define SET_SB_MBAFF_INTRA_6_IP 5412 |
#define SET_SB_MBAFF_6_IP 5434 |
#define NEXT_MB_MBAFF_6_IP 5442 |
#define SET_SB_MBAFF_INTRA_8_IP 5480 |
#define SET_SB_MBAFF_8_IP 5502 |
#define NEXT_MB_MBAFF_8_IP 5510 |
#define SET_SB_MBAFF_INTRA_10_IP 5548 |
#define SET_SB_MBAFF_10_IP 5570 |
#define NEXT_MB_MBAFF_10_IP 5578 |
#define SET_SB_MBAFF_INTRA_12_IP 5616 |
#define SET_SB_MBAFF_12_IP 5638 |
#define NEXT_MB_MBAFF_12_IP 5646 |
#define SET_SB_MBAFF_INTRA_14_IP 5684 |
#define SET_SB_MBAFF_14_IP 5706 |
#define NEXT_MB_MBAFF_14_IP 5714 |
#define SetHWScoreboard_MBAFF_Remainder_IP 5756 |
#define SetHWScoreboard_MBAFF_Remainder_Loop_IP 5784 |
#define SET_SB_MBAFF_REM_INTRA_IP 5822 |
#define SET_SB_MBAFF_REM_IP 5846 |
#define Output_MBAFF_Remainder_Intra_IP 5856 |
#define SetHWScoreboard_MBAFF_Done_IP 5868 |
#define BSDRESET_IP 5870 |
#define DCRESETDUMMY_IP 5872 |
#define AVC_ILDB_ROOT_Y_ILDB_FRAME_IP 5880 |
#define SLEEP_ENTRY_Y_ILDB_FRAME_IP 5976 |
#define POST_SLEEP_Y_ILDB_FRAME_IP 5980 |
#define NEXT_MB_Y_ILDB_FRAME_IP 6010 |
#define ALL_SPAWNED_Y_ILDB_FRAME_IP 6034 |
#define ALL_DONE_Y_ILDB_FRAME_IP 6044 |
#define WAIT_FOR_UV_ILDB_FRAME_IP 6044 |
#define AVC_ILDB_CHILD_Y_ILDB_FRAME_IP 6056 |
#define WRITE_URB_Y_ILDB_FRAME_IP 6436 |
#define POST_ILDB_Y_ILDB_FRAME_IP 6444 |
#define READ_FOR_URB_Y_ILDB_FRAME_IP 6458 |
#define FILTER_Y_IP 6494 |
#define Y_ELSE3_IP 6560 |
#define Y_ENDIF3_IP 6574 |
#define Y_ELSE4_IP 6604 |
#define Y_ENDIF4_IP 6618 |
#define Y_ELSE2_IP 6618 |
#define Y_ENDIF6_IP 6684 |
#define Y_ENDIF7_IP 6706 |
#define Y_ENDIF2_IP 6710 |
#define Y_ENDIF1_IP 6710 |
#define AVC_ILDB_ROOT_UV_ILDB_FRAME_IP 6720 |
#define SLEEP_ENTRY_UV_ILDB_FRAME_IP 6798 |
#define POST_SLEEP_UV_ILDB_FRAME_IP 6802 |
#define NEXT_MB_UV_ILDB_FRAME_IP 6834 |
#define ALL_SPAWNED_UV_ILDB_FRAME_IP 6858 |
#define ALL_DONE_UV_ILDB_FRAME_IP 6882 |
#define AVC_ILDB_CHILD_UV_ILDB_FRAME_IP 6888 |
#define BYPASS_EXT_LEFT_EDGE_UV_ILDB_FRAME_IP 7008 |
#define BYPASS_EXT_TOP_EDGE_UV_ILDB_FRAME_IP 7126 |
#define WRITE_URB_UV_ILDB_FRAME_IP 7194 |
#define POST_ILDB_UV_ILDB_FRAME_IP 7202 |
#define READ_FOR_URB_UV_ILDB_FRAME_IP 7216 |
#define FILTER_UV_IP 7246 |
#define UV_ELSE2_IP 7282 |
#define UV_ENDIF2_IP 7314 |
#define UV_ENDIF1_IP 7314 |
#define AVC_ILDB_ROOT_Y_ILDB_FIELD_IP 7320 |
#define SLEEP_ENTRY_Y_ILDB_FIELD_IP 7416 |
#define POST_SLEEP_Y_ILDB_FIELD_IP 7420 |
#define NEXT_MB_Y_ILDB_FIELD_IP 7450 |
#define ALL_SPAWNED_Y_ILDB_FIELD_IP 7474 |
#define ALL_DONE_Y_ILDB_FIELD_IP 7484 |
#define WAIT_FOR_UV_ILDB_FIELD_IP 7484 |
#define AVC_ILDB_CHILD_Y_ILDB_FIELD_IP 7496 |
#define WRITE_URB_Y_ILDB_FIELD_IP 7896 |
#define POST_ILDB_Y_ILDB_FIELD_IP 7904 |
#define READ_FOR_URB_Y_ILDB_FIELD_IP 7918 |
#define ELSE_Y_4x16T_ILDB_FIELD_IP 7934 |
#define ENDIF_Y_4x16T_ILDB_FIELD_IP 7942 |
#define AVC_ILDB_ROOT_UV_ILDB_FIELD_IP 7976 |
#define SLEEP_ENTRY_UV_ILDB_FIELD_IP 8054 |
#define POST_SLEEP_UV_ILDB_FIELD_IP 8058 |
#define NEXT_MB_UV_ILDB_FIELD_IP 8090 |
#define ALL_SPAWNED_UV_ILDB_FIELD_IP 8114 |
#define ALL_DONE_UV_ILDB_FIELD_IP 8138 |
#define AVC_ILDB_CHILD_UV_ILDB_FIELD_IP 8144 |
#define BYPASS_EXT_LEFT_EDGE_UV_ILDB_FIELD_IP 8272 |
#define BYPASS_EXT_TOP_EDGE_UV_ILDB_FIELD_IP 8394 |
#define WRITE_URB_UV_ILDB_FIELD_IP 8470 |
#define POST_ILDB_UV_ILDB_FIELD_IP 8478 |
#define READ_FOR_URB_UV_ILDB_FIELD_IP 8492 |
#define ELSE_Y_2x8T_ILDB_FIELD_IP 8508 |
#define ENDIF_Y_2x8T_ILDB_FIELD_IP 8516 |
#define AVC_ILDB_ROOT_Y_ILDB_MBAFF_IP 8544 |
#define SLEEP_ENTRY_Y_ILDB_MBAFF_IP 8642 |
#define POST_SLEEP_Y_ILDB_MBAFF_IP 8646 |
#define NEXT_MB_Y_ILDB_MBAFF_IP 8676 |
#define ALL_SPAWNED_Y_ILDB_MBAFF_IP 8700 |
#define ALL_DONE_Y_ILDB_MBAFF_IP 8710 |
#define WAIT_FOR_UV_ILDB_MBAFF_IP 8710 |
#define AVC_ILDB_CHILD_Y_ILDB_MBAFF_IP 8720 |
#define RE_ENTRY_IP 8742 |
#define ELSE_Y_16x16T_ILDB_MBAFF_IP 8782 |
#define ENDIF_Y_16x16T_ILDB_MBAFF_IP 8792 |
#define ELSE_Y_4x16T_IP 8808 |
#define ENDIF_Y_4x16T_IP 8818 |
#define BYPASS_V1_Y_IP 8966 |
#define BYPASS_V2_Y_IP 8980 |
#define BYPASS_V3_Y_IP 8994 |
#define ELSE_Y_16x4T_IP 9024 |
#define ENDIF_Y_16x4T_IP 9034 |
#define NOT_DUAL_FIELD_IP 9060 |
#define ELSE_Y_16x4_IP 9060 |
#define ENDIF_Y_16x4_IP 9072 |
#define DUAL_FIELD_Y_IP 9168 |
#define H0_Y_DONE_IP 9236 |
#define ELSE_Y_16x16_IP 9310 |
#define ENDIF_Y_16x16_IP 9320 |
#define ELSE_Y_16x4_SAVE_IP 9342 |
#define ENDIF_Y_16x4_SAVE_IP 9354 |
#define SKIP_ILDB_IP 9356 |
#define POST_ILDB_IP 9364 |
#define FILTER_Y_MBAFF_IP 9378 |
#define MBAFF_Y_ELSE3_IP 9444 |
#define MBAFF_Y_ENDIF3_IP 9458 |
#define MBAFF_Y_ELSE4_IP 9488 |
#define MBAFF_Y_ENDIF4_IP 9502 |
#define MBAFF_Y_ELSE2_IP 9502 |
#define MBAFF_Y_ENDIF6_IP 9566 |
#define MBAFF_Y_ENDIF7_IP 9588 |
#define MBAFF_Y_ENDIF2_IP 9592 |
#define MBAFF_Y_ENDIF1_IP 9592 |
#define AVC_ILDB_ROOT_UV_ILDB_MBAFF_IP 9600 |
#define SLEEP_ENTRY_UV_ILDB_MBAFF_IP 9678 |
#define POST_SLEEP_UV_ILDB_MBAFF_IP 9682 |
#define NEXT_MB_UV_ILDB_MBAFF_IP 9714 |
#define ALL_SPAWNED_UV_ILDB_MBAFF_IP 9738 |
#define ALL_DONE_UV_ILDB_MBAFF_IP 9762 |
#define AVC_ILDB_CHILD_UV_ILDB_MBAFF_IP 9768 |
#define RE_ENTRY_UV_ILDB_MBAFF_IP 9794 |
#define ELSE_UV_8X8T_ILDB_MBAFF_IP 9836 |
#define ENDIF_UV_8X8T_ILDB_MBAFF_IP 9846 |
#define ELSE_Y_2x8T_ILDB_MBAFF_IP 9864 |
#define ENDIF_Y_2x8T_ILDB_MBAFF_IP 9874 |
#define V0_U_NEXT1_IP 9934 |
#define V0_U_NEXT2_IP 9954 |
#define V0_U_NEXT3_IP 9964 |
#define BYPASS_V0_UV_IP 10018 |
#define ELSE_UV_8X2T_IP 10082 |
#define ENDIF_UV_8X2T_IP 10092 |
#define NOT_DUAL_FIELD_UV_IP 10120 |
#define ELSE_UV_8X2_IP 10120 |
#define ENDIF_UV_8X2_IP 10132 |
#define DUAL_FIELD_UV_IP 10208 |
#define H0_UV_DONE_IP 10300 |
#define ELSE_UV_8X8_IP 10360 |
#define ENDIF_UV_8X8_IP 10370 |
#define ELSE_UV_8X2_SAVE_IP 10394 |
#define ENDIF_UV_8X2_SAVE_IP 10406 |
#define SKIP_ILDB_UV_ILDB_MBAFF_IP 10408 |
#define POST_ILDB_UV_ILDB_MBAFF_IP 10416 |
#define FILTER_UV_MBAFF_IP 10430 |
#define MBAFF_UV_ELSE2_IP 10466 |
#define MBAFF_UV_ENDIF2_IP 10496 |
#define MBAFF_UV_ENDIF1_IP 10496 |
#define AllAVC_END_IP 10500 |
/drivers/video/i965/shaders/h264/mc/export.inc.gen5 |
---|
0,0 → 1,345 |
#define INTRA_16x16_IP_GEN5 0 |
#define INTRA_16x16_VERTICAL_IP_GEN5 14 |
#define INTRA_16x16_HORIZONTAL_IP_GEN5 32 |
#define INTRA_16x16_DC_IP_GEN5 52 |
#define INTRA_16x16_PLANE_IP_GEN5 98 |
#define End_intra_Pred_16x16_Y_IP_GEN5 166 |
#define End_add_Error_16x16_Y_IP_GEN5 204 |
#define load_Intra_Ref_Y_IP_GEN5 220 |
#define decode_Chroma_Intra_IP_GEN5 238 |
#define INTRA_CHROMA_DC_IP_GEN5 260 |
#define INTRA_CHROMA_HORIZONTAL_IP_GEN5 320 |
#define INTRA_CHROMA_VERTICAL_IP_GEN5 332 |
#define INTRA_Chroma_PLANE_IP_GEN5 342 |
#define End_of_intra_Pred_Chroma_IP_GEN5 392 |
#define save_16x16_Y_IP_GEN5 436 |
#define INTRA_8x8_IP_GEN5 464 |
#define INTRA_8x8_BLK2_IP_GEN5 568 |
#define intra_Pred_8x8_Y_IP_GEN5 640 |
#define INTRA_8X8_VERTICAL_IP_GEN5 672 |
#define INTRA_8X8_HORIZONTAL_IP_GEN5 682 |
#define INTRA_8X8_DC_IP_GEN5 692 |
#define INTRA_8X8_DIAG_DOWN_LEFT_IP_GEN5 724 |
#define INTRA_8X8_DIAG_DOWN_RIGHT_IP_GEN5 744 |
#define INTRA_8X8_VERT_RIGHT_IP_GEN5 772 |
#define INTRA_8X8_HOR_DOWN_IP_GEN5 808 |
#define INTRA_8X8_VERT_LEFT_IP_GEN5 842 |
#define INTRA_8X8_HOR_UP_IP_GEN5 862 |
#define save_8x8_Y_IP_GEN5 886 |
#define INTRA_4x4_IP_GEN5 928 |
#define intra_Pred_4x4_Y_4_IP_GEN5 1062 |
#define ADD_ERROR_SB0_IP_GEN5 1074 |
#define ADD_ERROR_SB1_IP_GEN5 1088 |
#define ADD_ERROR_SB2_IP_GEN5 1108 |
#define ADD_ERROR_SB3_IP_GEN5 1124 |
#define intra_Pred_4x4_Y_IP_GEN5 1130 |
#define INTRA_4X4_VERTICAL_IP_GEN5 1130 |
#define INTRA_4X4_HORIZONTAL_IP_GEN5 1134 |
#define INTRA_4X4_DC_IP_GEN5 1138 |
#define INTRA_4X4_DIAG_DOWN_LEFT_IP_GEN5 1160 |
#define INTRA_4X4_DIAG_DOWN_RIGHT_IP_GEN5 1174 |
#define INTRA_4X4_VERT_RIGHT_IP_GEN5 1192 |
#define INTRA_4X4_HOR_DOWN_IP_GEN5 1218 |
#define INTRA_4X4_VERT_LEFT_IP_GEN5 1246 |
#define INTRA_4X4_HOR_UP_IP_GEN5 1260 |
#define save_4x4_Y_IP_GEN5 1276 |
#define INTRA_PCM_IP_GEN5 1320 |
#define FRAME_MB_IP_GEN5 1384 |
#define INIT_MBPARA_FRM_IP_GEN5 1390 |
#define NOT_8x8_MODE_FRM_IP_GEN5 1426 |
#define CONVERT_MVS_FRM_IP_GEN5 1436 |
#define INIT_ADDRESS_REGS_FRM_IP_GEN5 1446 |
#define LOOP_SUBMB_FRM_IP_GEN5 1454 |
#define LOOP_DIR_FRM_IP_GEN5 1460 |
#define LOADREF_MVXZERO_FRM_IP_GEN5 1510 |
#define EXIT_LOADREF_Y_16x13_FRM_IP_GEN5 1524 |
#define Interpolate_Y_8x8_Func_FRM_IP_GEN5 1544 |
#define Interpolate_Y_8x8_Func2_FRM_IP_GEN5 1574 |
#define Interpolate_Y_H_8x8_FRM_IP_GEN5 1708 |
#define Interpolate_Y_V_8x8_FRM_IP_GEN5 1790 |
#define VFILTER_8x8_FRM_IP_GEN5 1812 |
#define Interpolate_Y_I_8x8_FRM_IP_GEN5 1860 |
#define Average_8x8_FRM_IP_GEN5 1880 |
#define Return_Interpolate_Y_8x8_FRM_IP_GEN5 1888 |
#define Exit_Interpolate_Y_8x8_FRM_IP_GEN5 1890 |
#define Interpolate_C_4x4_Func_FRM_IP_GEN5 1890 |
#define PROCESS4x4_FRM_IP_GEN5 1928 |
#define LOOP_SUBMBPT_FRM_IP_GEN5 1930 |
#define Interpolate_Y_H_4x4_FRM_IP_GEN5 2066 |
#define Interpolate_Y_V_4x4_FRM_IP_GEN5 2108 |
#define VFILTER_4x4_FRM_IP_GEN5 2142 |
#define Interpolate_Y_I_4x4_FRM_IP_GEN5 2148 |
#define Average_4x4_FRM_IP_GEN5 2160 |
#define Return_Interpolate_Y_4x4_FRM_IP_GEN5 2162 |
#define Exit_Interpolate_Y_4x4_FRM_IP_GEN5 2174 |
#define ROUND_SHIFT_C_FRM_IP_GEN5 2222 |
#define LOOP_DIR_CONTINUE_FRM_IP_GEN5 2230 |
#define Weighted_Prediction_FRM_IP_GEN5 2236 |
#define DefaultWeightedPred_UniPred_FRM_IP_GEN5 2244 |
#define DefaultWeightedPred_BiPred_FRM_IP_GEN5 2256 |
#define WeightedPred_FRM_IP_GEN5 2264 |
#define WeightedPred_Explicit_FRM_IP_GEN5 2282 |
#define WeightedPred_LOOP_FRM_IP_GEN5 2322 |
#define Return_WeightedPred_FRM_IP_GEN5 2382 |
#define EXIT_LOOP_FRM_IP_GEN5 2424 |
#define FIELD_MB_IP_GEN5 2496 |
#define INIT_MBPARA_FLD_IP_GEN5 2502 |
#define NOT_8x8_MODE_FLD_IP_GEN5 2538 |
#define CONVERT_MVS_FLD_IP_GEN5 2548 |
#define INIT_ADDRESS_REGS_FLD_IP_GEN5 2558 |
#define LOOP_SUBMB_FLD_IP_GEN5 2568 |
#define LOOP_DIR_FLD_IP_GEN5 2574 |
#define LOADREF_MVXZERO_FLD_IP_GEN5 2644 |
#define EXIT_LOADREF_Y_16x13_FLD_IP_GEN5 2658 |
#define Interpolate_Y_8x8_Func_FLD_IP_GEN5 2680 |
#define Interpolate_Y_8x8_Func2_FLD_IP_GEN5 2710 |
#define Interpolate_Y_H_8x8_FLD_IP_GEN5 2844 |
#define Interpolate_Y_V_8x8_FLD_IP_GEN5 2926 |
#define VFILTER_8x8_FLD_IP_GEN5 2948 |
#define Interpolate_Y_I_8x8_FLD_IP_GEN5 2996 |
#define Average_8x8_FLD_IP_GEN5 3016 |
#define Return_Interpolate_Y_8x8_FLD_IP_GEN5 3024 |
#define Exit_Interpolate_Y_8x8_FLD_IP_GEN5 3026 |
#define Interpolate_C_4x4_Func_FLD_IP_GEN5 3026 |
#define PROCESS4x4_FLD_IP_GEN5 3064 |
#define LOOP_SUBMBPT_FLD_IP_GEN5 3066 |
#define Interpolate_Y_H_4x4_FLD_IP_GEN5 3204 |
#define Interpolate_Y_V_4x4_FLD_IP_GEN5 3246 |
#define VFILTER_4x4_FLD_IP_GEN5 3280 |
#define Interpolate_Y_I_4x4_FLD_IP_GEN5 3286 |
#define Average_4x4_FLD_IP_GEN5 3298 |
#define Return_Interpolate_Y_4x4_FLD_IP_GEN5 3300 |
#define Exit_Interpolate_Y_4x4_FLD_IP_GEN5 3312 |
#define ROUND_SHIFT_C_FLD_IP_GEN5 3360 |
#define LOOP_DIR_CONTINUE_FLD_IP_GEN5 3368 |
#define Weighted_Prediction_FLD_IP_GEN5 3374 |
#define DefaultWeightedPred_UniPred_FLD_IP_GEN5 3382 |
#define DefaultWeightedPred_BiPred_FLD_IP_GEN5 3394 |
#define WeightedPred_FLD_IP_GEN5 3402 |
#define WeightedPred_Explicit_FLD_IP_GEN5 3420 |
#define WeightedPred_LOOP_FLD_IP_GEN5 3460 |
#define Return_WeightedPred_FLD_IP_GEN5 3520 |
#define EXIT_LOOP_FLD_IP_GEN5 3562 |
#define MBAFF_MB_IP_GEN5 3640 |
#define INIT_MBPARA_MBF_IP_GEN5 3646 |
#define NOT_8x8_MODE_MBF_IP_GEN5 3682 |
#define CONVERT_MVS_MBF_IP_GEN5 3692 |
#define INIT_ADDRESS_REGS_MBF_IP_GEN5 3702 |
#define LOOP_SUBMB_MBF_IP_GEN5 3716 |
#define LOOP_DIR_MBF_IP_GEN5 3722 |
#define LOADREF_MVXZERO_MBF_IP_GEN5 3796 |
#define EXIT_LOADREF_Y_16x13_MBF_IP_GEN5 3810 |
#define Interpolate_Y_8x8_Func_MBF_IP_GEN5 3832 |
#define Interpolate_Y_8x8_Func2_MBF_IP_GEN5 3862 |
#define Interpolate_Y_H_8x8_MBF_IP_GEN5 3996 |
#define Interpolate_Y_V_8x8_MBF_IP_GEN5 4078 |
#define VFILTER_8x8_MBF_IP_GEN5 4100 |
#define Interpolate_Y_I_8x8_MBF_IP_GEN5 4148 |
#define Average_8x8_MBF_IP_GEN5 4168 |
#define Return_Interpolate_Y_8x8_MBF_IP_GEN5 4176 |
#define Exit_Interpolate_Y_8x8_MBF_IP_GEN5 4178 |
#define Interpolate_C_4x4_Func_MBF_IP_GEN5 4178 |
#define PROCESS4x4_MBF_IP_GEN5 4216 |
#define LOOP_SUBMBPT_MBF_IP_GEN5 4218 |
#define Interpolate_Y_H_4x4_MBF_IP_GEN5 4356 |
#define Interpolate_Y_V_4x4_MBF_IP_GEN5 4398 |
#define VFILTER_4x4_MBF_IP_GEN5 4432 |
#define Interpolate_Y_I_4x4_MBF_IP_GEN5 4438 |
#define Average_4x4_MBF_IP_GEN5 4450 |
#define Return_Interpolate_Y_4x4_MBF_IP_GEN5 4452 |
#define Exit_Interpolate_Y_4x4_MBF_IP_GEN5 4464 |
#define ROUND_SHIFT_C_MBF_IP_GEN5 4512 |
#define LOOP_DIR_CONTINUE_MBF_IP_GEN5 4520 |
#define Weighted_Prediction_MBF_IP_GEN5 4526 |
#define DefaultWeightedPred_UniPred_MBF_IP_GEN5 4534 |
#define DefaultWeightedPred_BiPred_MBF_IP_GEN5 4546 |
#define WeightedPred_MBF_IP_GEN5 4554 |
#define WeightedPred_Explicit_MBF_IP_GEN5 4572 |
#define WeightedPred_LOOP_MBF_IP_GEN5 4612 |
#define Return_WeightedPred_MBF_IP_GEN5 4672 |
#define EXIT_LOOP_MBF_IP_GEN5 4714 |
#define SETHWSCOREBOARD_IP_GEN5 4792 |
#define SetHWScoreboard_Loop_IP_GEN5 4806 |
#define Parse_8_Loop_0_IP_GEN5 4852 |
#define Parse_8_Loop_2_IP_GEN5 4876 |
#define Parse_8_Loop_4_IP_GEN5 4900 |
#define Parse_8_Loop_6_IP_GEN5 4924 |
#define Parse_8_Loop_8_IP_GEN5 4948 |
#define Parse_8_Loop_10_IP_GEN5 4972 |
#define Parse_8_Loop_12_IP_GEN5 4996 |
#define Parse_8_Loop_14_IP_GEN5 5020 |
#define SetHWScoreboard_Remainder_IP_GEN5 5062 |
#define SetHWScoreboard_Remainder_Loop_IP_GEN5 5090 |
#define Output_Remainder_Intra_IP_GEN5 5116 |
#define SetHWScoreboard_Done_IP_GEN5 5128 |
#define SETHWSCOREBOARD_MBAFF_IP_GEN5 5136 |
#define SetHWScoreboard_MBAFF_Loop_IP_GEN5 5148 |
#define SET_SB_MBAFF_INTRA_0_IP_GEN5 5208 |
#define SET_SB_MBAFF_0_IP_GEN5 5230 |
#define NEXT_MB_MBAFF_0_IP_GEN5 5238 |
#define SET_SB_MBAFF_INTRA_2_IP_GEN5 5276 |
#define SET_SB_MBAFF_2_IP_GEN5 5298 |
#define NEXT_MB_MBAFF_2_IP_GEN5 5306 |
#define SET_SB_MBAFF_INTRA_4_IP_GEN5 5344 |
#define SET_SB_MBAFF_4_IP_GEN5 5366 |
#define NEXT_MB_MBAFF_4_IP_GEN5 5374 |
#define SET_SB_MBAFF_INTRA_6_IP_GEN5 5412 |
#define SET_SB_MBAFF_6_IP_GEN5 5434 |
#define NEXT_MB_MBAFF_6_IP_GEN5 5442 |
#define SET_SB_MBAFF_INTRA_8_IP_GEN5 5480 |
#define SET_SB_MBAFF_8_IP_GEN5 5502 |
#define NEXT_MB_MBAFF_8_IP_GEN5 5510 |
#define SET_SB_MBAFF_INTRA_10_IP_GEN5 5548 |
#define SET_SB_MBAFF_10_IP_GEN5 5570 |
#define NEXT_MB_MBAFF_10_IP_GEN5 5578 |
#define SET_SB_MBAFF_INTRA_12_IP_GEN5 5616 |
#define SET_SB_MBAFF_12_IP_GEN5 5638 |
#define NEXT_MB_MBAFF_12_IP_GEN5 5646 |
#define SET_SB_MBAFF_INTRA_14_IP_GEN5 5684 |
#define SET_SB_MBAFF_14_IP_GEN5 5706 |
#define NEXT_MB_MBAFF_14_IP_GEN5 5714 |
#define SetHWScoreboard_MBAFF_Remainder_IP_GEN5 5756 |
#define SetHWScoreboard_MBAFF_Remainder_Loop_IP_GEN5 5784 |
#define SET_SB_MBAFF_REM_INTRA_IP_GEN5 5822 |
#define SET_SB_MBAFF_REM_IP_GEN5 5846 |
#define Output_MBAFF_Remainder_Intra_IP_GEN5 5856 |
#define SetHWScoreboard_MBAFF_Done_IP_GEN5 5868 |
#define BSDRESET_IP_GEN5 5870 |
#define DCRESETDUMMY_IP_GEN5 5872 |
#define AVC_ILDB_ROOT_Y_ILDB_FRAME_IP_GEN5 5880 |
#define SLEEP_ENTRY_Y_ILDB_FRAME_IP_GEN5 5976 |
#define POST_SLEEP_Y_ILDB_FRAME_IP_GEN5 5980 |
#define NEXT_MB_Y_ILDB_FRAME_IP_GEN5 6010 |
#define ALL_SPAWNED_Y_ILDB_FRAME_IP_GEN5 6034 |
#define ALL_DONE_Y_ILDB_FRAME_IP_GEN5 6044 |
#define WAIT_FOR_UV_ILDB_FRAME_IP_GEN5 6044 |
#define AVC_ILDB_CHILD_Y_ILDB_FRAME_IP_GEN5 6056 |
#define WRITE_URB_Y_ILDB_FRAME_IP_GEN5 6436 |
#define POST_ILDB_Y_ILDB_FRAME_IP_GEN5 6444 |
#define READ_FOR_URB_Y_ILDB_FRAME_IP_GEN5 6458 |
#define FILTER_Y_IP_GEN5 6494 |
#define Y_ELSE3_IP_GEN5 6560 |
#define Y_ENDIF3_IP_GEN5 6574 |
#define Y_ELSE4_IP_GEN5 6604 |
#define Y_ENDIF4_IP_GEN5 6618 |
#define Y_ELSE2_IP_GEN5 6618 |
#define Y_ENDIF6_IP_GEN5 6684 |
#define Y_ENDIF7_IP_GEN5 6706 |
#define Y_ENDIF2_IP_GEN5 6710 |
#define Y_ENDIF1_IP_GEN5 6710 |
#define AVC_ILDB_ROOT_UV_ILDB_FRAME_IP_GEN5 6720 |
#define SLEEP_ENTRY_UV_ILDB_FRAME_IP_GEN5 6798 |
#define POST_SLEEP_UV_ILDB_FRAME_IP_GEN5 6802 |
#define NEXT_MB_UV_ILDB_FRAME_IP_GEN5 6834 |
#define ALL_SPAWNED_UV_ILDB_FRAME_IP_GEN5 6858 |
#define ALL_DONE_UV_ILDB_FRAME_IP_GEN5 6882 |
#define AVC_ILDB_CHILD_UV_ILDB_FRAME_IP_GEN5 6888 |
#define BYPASS_EXT_LEFT_EDGE_UV_ILDB_FRAME_IP_GEN5 7008 |
#define BYPASS_EXT_TOP_EDGE_UV_ILDB_FRAME_IP_GEN5 7126 |
#define WRITE_URB_UV_ILDB_FRAME_IP_GEN5 7194 |
#define POST_ILDB_UV_ILDB_FRAME_IP_GEN5 7202 |
#define READ_FOR_URB_UV_ILDB_FRAME_IP_GEN5 7216 |
#define FILTER_UV_IP_GEN5 7246 |
#define UV_ELSE2_IP_GEN5 7282 |
#define UV_ENDIF2_IP_GEN5 7314 |
#define UV_ENDIF1_IP_GEN5 7314 |
#define AVC_ILDB_ROOT_Y_ILDB_FIELD_IP_GEN5 7320 |
#define SLEEP_ENTRY_Y_ILDB_FIELD_IP_GEN5 7416 |
#define POST_SLEEP_Y_ILDB_FIELD_IP_GEN5 7420 |
#define NEXT_MB_Y_ILDB_FIELD_IP_GEN5 7450 |
#define ALL_SPAWNED_Y_ILDB_FIELD_IP_GEN5 7474 |
#define ALL_DONE_Y_ILDB_FIELD_IP_GEN5 7484 |
#define WAIT_FOR_UV_ILDB_FIELD_IP_GEN5 7484 |
#define AVC_ILDB_CHILD_Y_ILDB_FIELD_IP_GEN5 7496 |
#define WRITE_URB_Y_ILDB_FIELD_IP_GEN5 7896 |
#define POST_ILDB_Y_ILDB_FIELD_IP_GEN5 7904 |
#define READ_FOR_URB_Y_ILDB_FIELD_IP_GEN5 7918 |
#define ELSE_Y_4x16T_ILDB_FIELD_IP_GEN5 7934 |
#define ENDIF_Y_4x16T_ILDB_FIELD_IP_GEN5 7942 |
#define AVC_ILDB_ROOT_UV_ILDB_FIELD_IP_GEN5 7976 |
#define SLEEP_ENTRY_UV_ILDB_FIELD_IP_GEN5 8054 |
#define POST_SLEEP_UV_ILDB_FIELD_IP_GEN5 8058 |
#define NEXT_MB_UV_ILDB_FIELD_IP_GEN5 8090 |
#define ALL_SPAWNED_UV_ILDB_FIELD_IP_GEN5 8114 |
#define ALL_DONE_UV_ILDB_FIELD_IP_GEN5 8138 |
#define AVC_ILDB_CHILD_UV_ILDB_FIELD_IP_GEN5 8144 |
#define BYPASS_EXT_LEFT_EDGE_UV_ILDB_FIELD_IP_GEN5 8272 |
#define BYPASS_EXT_TOP_EDGE_UV_ILDB_FIELD_IP_GEN5 8394 |
#define WRITE_URB_UV_ILDB_FIELD_IP_GEN5 8470 |
#define POST_ILDB_UV_ILDB_FIELD_IP_GEN5 8478 |
#define READ_FOR_URB_UV_ILDB_FIELD_IP_GEN5 8492 |
#define ELSE_Y_2x8T_ILDB_FIELD_IP_GEN5 8508 |
#define ENDIF_Y_2x8T_ILDB_FIELD_IP_GEN5 8516 |
#define AVC_ILDB_ROOT_Y_ILDB_MBAFF_IP_GEN5 8544 |
#define SLEEP_ENTRY_Y_ILDB_MBAFF_IP_GEN5 8642 |
#define POST_SLEEP_Y_ILDB_MBAFF_IP_GEN5 8646 |
#define NEXT_MB_Y_ILDB_MBAFF_IP_GEN5 8676 |
#define ALL_SPAWNED_Y_ILDB_MBAFF_IP_GEN5 8700 |
#define ALL_DONE_Y_ILDB_MBAFF_IP_GEN5 8710 |
#define WAIT_FOR_UV_ILDB_MBAFF_IP_GEN5 8710 |
#define AVC_ILDB_CHILD_Y_ILDB_MBAFF_IP_GEN5 8720 |
#define RE_ENTRY_IP_GEN5 8742 |
#define ELSE_Y_16x16T_ILDB_MBAFF_IP_GEN5 8782 |
#define ENDIF_Y_16x16T_ILDB_MBAFF_IP_GEN5 8792 |
#define ELSE_Y_4x16T_IP_GEN5 8808 |
#define ENDIF_Y_4x16T_IP_GEN5 8818 |
#define BYPASS_V1_Y_IP_GEN5 8966 |
#define BYPASS_V2_Y_IP_GEN5 8980 |
#define BYPASS_V3_Y_IP_GEN5 8994 |
#define ELSE_Y_16x4T_IP_GEN5 9024 |
#define ENDIF_Y_16x4T_IP_GEN5 9034 |
#define NOT_DUAL_FIELD_IP_GEN5 9060 |
#define ELSE_Y_16x4_IP_GEN5 9060 |
#define ENDIF_Y_16x4_IP_GEN5 9072 |
#define DUAL_FIELD_Y_IP_GEN5 9168 |
#define H0_Y_DONE_IP_GEN5 9236 |
#define ELSE_Y_16x16_IP_GEN5 9310 |
#define ENDIF_Y_16x16_IP_GEN5 9320 |
#define ELSE_Y_16x4_SAVE_IP_GEN5 9342 |
#define ENDIF_Y_16x4_SAVE_IP_GEN5 9354 |
#define SKIP_ILDB_IP_GEN5 9356 |
#define POST_ILDB_IP_GEN5 9364 |
#define FILTER_Y_MBAFF_IP_GEN5 9378 |
#define MBAFF_Y_ELSE3_IP_GEN5 9444 |
#define MBAFF_Y_ENDIF3_IP_GEN5 9458 |
#define MBAFF_Y_ELSE4_IP_GEN5 9488 |
#define MBAFF_Y_ENDIF4_IP_GEN5 9502 |
#define MBAFF_Y_ELSE2_IP_GEN5 9502 |
#define MBAFF_Y_ENDIF6_IP_GEN5 9566 |
#define MBAFF_Y_ENDIF7_IP_GEN5 9588 |
#define MBAFF_Y_ENDIF2_IP_GEN5 9592 |
#define MBAFF_Y_ENDIF1_IP_GEN5 9592 |
#define AVC_ILDB_ROOT_UV_ILDB_MBAFF_IP_GEN5 9600 |
#define SLEEP_ENTRY_UV_ILDB_MBAFF_IP_GEN5 9678 |
#define POST_SLEEP_UV_ILDB_MBAFF_IP_GEN5 9682 |
#define NEXT_MB_UV_ILDB_MBAFF_IP_GEN5 9714 |
#define ALL_SPAWNED_UV_ILDB_MBAFF_IP_GEN5 9738 |
#define ALL_DONE_UV_ILDB_MBAFF_IP_GEN5 9762 |
#define AVC_ILDB_CHILD_UV_ILDB_MBAFF_IP_GEN5 9768 |
#define RE_ENTRY_UV_ILDB_MBAFF_IP_GEN5 9794 |
#define ELSE_UV_8X8T_ILDB_MBAFF_IP_GEN5 9836 |
#define ENDIF_UV_8X8T_ILDB_MBAFF_IP_GEN5 9846 |
#define ELSE_Y_2x8T_ILDB_MBAFF_IP_GEN5 9864 |
#define ENDIF_Y_2x8T_ILDB_MBAFF_IP_GEN5 9874 |
#define V0_U_NEXT1_IP_GEN5 9934 |
#define V0_U_NEXT2_IP_GEN5 9954 |
#define V0_U_NEXT3_IP_GEN5 9964 |
#define BYPASS_V0_UV_IP_GEN5 10018 |
#define ELSE_UV_8X2T_IP_GEN5 10082 |
#define ENDIF_UV_8X2T_IP_GEN5 10092 |
#define NOT_DUAL_FIELD_UV_IP_GEN5 10120 |
#define ELSE_UV_8X2_IP_GEN5 10120 |
#define ENDIF_UV_8X2_IP_GEN5 10132 |
#define DUAL_FIELD_UV_IP_GEN5 10208 |
#define H0_UV_DONE_IP_GEN5 10300 |
#define ELSE_UV_8X8_IP_GEN5 10360 |
#define ENDIF_UV_8X8_IP_GEN5 10370 |
#define ELSE_UV_8X2_SAVE_IP_GEN5 10394 |
#define ENDIF_UV_8X2_SAVE_IP_GEN5 10406 |
#define SKIP_ILDB_UV_ILDB_MBAFF_IP_GEN5 10408 |
#define POST_ILDB_UV_ILDB_MBAFF_IP_GEN5 10416 |
#define FILTER_UV_MBAFF_IP_GEN5 10430 |
#define MBAFF_UV_ELSE2_IP_GEN5 10466 |
#define MBAFF_UV_ENDIF2_IP_GEN5 10496 |
#define MBAFF_UV_ENDIF1_IP_GEN5 10496 |
#define AllAVC_END_IP_GEN5 10500 |
/drivers/video/i965/shaders/h264/mc/null.g4b |
---|
0,0 → 1,13 |
{ 0x00200009, 0x27c02e21, 0x00450064, 0x00040004 }, |
{ 0x00000001, 0x27c80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20200062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20600062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20a00062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20e00062, 0x00000000, 0xffffffff }, |
{ 0x00800031, 0x24001d28, 0x008d07c0, 0x05902000 }, |
{ 0x00000008, 0x27c42c21, 0x002107c4, 0x00010001 }, |
{ 0x00000001, 0x27c80061, 0x00000000, 0x0007000f }, |
{ 0x00802001, 0x20200062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20600062, 0x00000000, 0xffffffff }, |
{ 0x00800031, 0x24001d28, 0x008d07c0, 0x05502001 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/h264/mc/null.g4b.gen5 |
---|
0,0 → 1,13 |
{ 0x00200009, 0x27c02e21, 0x00450064, 0x00040004 }, |
{ 0x00000001, 0x27c80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20200062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20600062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20a00062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20e00062, 0x00000000, 0xffffffff }, |
{ 0x00800031, 0x24001d28, 0x508d07c0, 0x12082000 }, |
{ 0x00000008, 0x27c42c21, 0x002107c4, 0x00010001 }, |
{ 0x00000001, 0x27c80061, 0x00000000, 0x0007000f }, |
{ 0x00802001, 0x20200062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20600062, 0x00000000, 0xffffffff }, |
{ 0x00800031, 0x24001d28, 0x508d07c0, 0x0a082001 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_backward.g4b |
---|
0,0 → 1,757 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000004f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000039 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20003dbc, 0x00210a54, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000043 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000037 }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000143 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000004f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a003 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a003 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000039 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a003 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a003 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20003dbc, 0x00210a54, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000043 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a00a }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a00b }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a00a }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a00b }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a00b }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a00b }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000037 }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a00a }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a00b }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a00a }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a00b }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a00b }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a00b }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_backward.g4b.gen5 |
---|
0,0 → 1,757 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000d4 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000009e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a4 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000072 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20003dbc, 0x00210a54, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000b8 }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000009c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a009 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a009 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000006e }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a009 }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a009 }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000286 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000d4 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000009e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a003 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a003 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a4 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000072 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a003 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a003 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20003dbc, 0x00210a54, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000b8 }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a00a }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a00b }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a00a }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a00b }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000009c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a00b }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a00b }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000006e }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a00a }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a00b }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a00a }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a00b }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a00b }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a00b }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_backward_16x8.g4b |
---|
0,0 → 1,15 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00200001, 0x20c00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20200062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20600062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20a00062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20e00062, 0x00000000, 0xffffffff }, |
{ 0x00800031, 0x24001d28, 0x008d00c0, 0x05902000 }, |
{ 0x00200008, 0x20c02d21, 0x00450a4c, 0x00010001 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x00070007 }, |
{ 0x00802001, 0x20200062, 0x00000000, 0x7f7f7f7f }, |
{ 0x00800031, 0x24001d28, 0x008d00c0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d00c0, 0x05302001 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_backward_16x8.g4b.gen5 |
---|
0,0 → 1,15 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00200001, 0x20c00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20200062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20600062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20a00062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20e00062, 0x00000000, 0xffffffff }, |
{ 0x00800031, 0x24001d28, 0x508d00c0, 0x12082000 }, |
{ 0x00200008, 0x20c02d21, 0x00450a4c, 0x00010001 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x00070007 }, |
{ 0x00802001, 0x20200062, 0x00000000, 0x7f7f7f7f }, |
{ 0x00800031, 0x24001d28, 0x508d00c0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x508d00c0, 0x06082001 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_bidirect.g4b |
---|
0,0 → 1,797 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000004f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000039 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00802001, 0x2d800021, 0x00b10740, 0x00000000 }, |
{ 0x00802001, 0x2dc00021, 0x00b10780, 0x00000000 }, |
{ 0x00802001, 0x2e000021, 0x00b107c0, 0x00000000 }, |
{ 0x00802001, 0x2e400021, 0x00b10800, 0x00000000 }, |
{ 0x00802001, 0x2e800021, 0x00b10840, 0x00000000 }, |
{ 0x00802001, 0x2ec00021, 0x00b10880, 0x00000000 }, |
{ 0x00802001, 0x2f000021, 0x00b108c0, 0x00000000 }, |
{ 0x00802001, 0x2f400021, 0x00b10900, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000004f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000039 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00800042, 0x27402529, 0x00b10740, 0x00b10d80 }, |
{ 0x00800042, 0x27602529, 0x00b10760, 0x00b10da0 }, |
{ 0x00800042, 0x27802529, 0x00b10780, 0x00b10dc0 }, |
{ 0x00800042, 0x27a02529, 0x00b107a0, 0x00b10de0 }, |
{ 0x00800042, 0x27c02529, 0x00b107c0, 0x00b10e00 }, |
{ 0x00800042, 0x27e02529, 0x00b107e0, 0x00b10e20 }, |
{ 0x00800042, 0x28002529, 0x00b10800, 0x00b10e40 }, |
{ 0x00800042, 0x28202529, 0x00b10820, 0x00b10e60 }, |
{ 0x00800042, 0x28402529, 0x00b10840, 0x00b10e80 }, |
{ 0x00800042, 0x28602529, 0x00b10860, 0x00b10ea0 }, |
{ 0x00800042, 0x28802529, 0x00b10880, 0x00b10ec0 }, |
{ 0x00800042, 0x28a02529, 0x00b108a0, 0x00b10ee0 }, |
{ 0x00800042, 0x28c02529, 0x00b108c0, 0x00b10f00 }, |
{ 0x00800042, 0x28e02529, 0x00b108e0, 0x00b10f20 }, |
{ 0x00800042, 0x29002529, 0x00b10900, 0x00b10f40 }, |
{ 0x00800042, 0x29202529, 0x00b10920, 0x00b10f60 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20003dbc, 0x00210a50, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000043 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000037 }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00802001, 0x2d800021, 0x00b10940, 0x00000000 }, |
{ 0x00802001, 0x2dc00021, 0x00b10980, 0x00000000 }, |
{ 0x00802001, 0x2e000021, 0x00b109c0, 0x00000000 }, |
{ 0x00802001, 0x2e400021, 0x00b10a00, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20003dbc, 0x00210a54, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000043 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000037 }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00800042, 0x29402529, 0x00b10940, 0x00b10d80 }, |
{ 0x00800042, 0x29602529, 0x00b10960, 0x00b10da0 }, |
{ 0x00800042, 0x29802529, 0x00b10980, 0x00b10dc0 }, |
{ 0x00800042, 0x29a02529, 0x00b109a0, 0x00b10de0 }, |
{ 0x00800042, 0x29c02529, 0x00b109c0, 0x00b10e00 }, |
{ 0x00800042, 0x29e02529, 0x00b109e0, 0x00b10e20 }, |
{ 0x00800042, 0x2a002529, 0x00b10a00, 0x00b10e40 }, |
{ 0x00800042, 0x2a202529, 0x00b10a20, 0x00b10e60 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_bidirect.g4b.gen5 |
---|
0,0 → 1,797 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000d4 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000009e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a4 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000072 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00802001, 0x2d800021, 0x00b10740, 0x00000000 }, |
{ 0x00802001, 0x2dc00021, 0x00b10780, 0x00000000 }, |
{ 0x00802001, 0x2e000021, 0x00b107c0, 0x00000000 }, |
{ 0x00802001, 0x2e400021, 0x00b10800, 0x00000000 }, |
{ 0x00802001, 0x2e800021, 0x00b10840, 0x00000000 }, |
{ 0x00802001, 0x2ec00021, 0x00b10880, 0x00000000 }, |
{ 0x00802001, 0x2f000021, 0x00b108c0, 0x00000000 }, |
{ 0x00802001, 0x2f400021, 0x00b10900, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000d4 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000009e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a4 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000072 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00800042, 0x27402529, 0x00b10740, 0x00b10d80 }, |
{ 0x00800042, 0x27602529, 0x00b10760, 0x00b10da0 }, |
{ 0x00800042, 0x27802529, 0x00b10780, 0x00b10dc0 }, |
{ 0x00800042, 0x27a02529, 0x00b107a0, 0x00b10de0 }, |
{ 0x00800042, 0x27c02529, 0x00b107c0, 0x00b10e00 }, |
{ 0x00800042, 0x27e02529, 0x00b107e0, 0x00b10e20 }, |
{ 0x00800042, 0x28002529, 0x00b10800, 0x00b10e40 }, |
{ 0x00800042, 0x28202529, 0x00b10820, 0x00b10e60 }, |
{ 0x00800042, 0x28402529, 0x00b10840, 0x00b10e80 }, |
{ 0x00800042, 0x28602529, 0x00b10860, 0x00b10ea0 }, |
{ 0x00800042, 0x28802529, 0x00b10880, 0x00b10ec0 }, |
{ 0x00800042, 0x28a02529, 0x00b108a0, 0x00b10ee0 }, |
{ 0x00800042, 0x28c02529, 0x00b108c0, 0x00b10f00 }, |
{ 0x00800042, 0x28e02529, 0x00b108e0, 0x00b10f20 }, |
{ 0x00800042, 0x29002529, 0x00b10900, 0x00b10f40 }, |
{ 0x00800042, 0x29202529, 0x00b10920, 0x00b10f60 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20003dbc, 0x00210a50, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000b8 }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000009c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a006 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a006 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000006e }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a006 }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a006 }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00802001, 0x2d800021, 0x00b10940, 0x00000000 }, |
{ 0x00802001, 0x2dc00021, 0x00b10980, 0x00000000 }, |
{ 0x00802001, 0x2e000021, 0x00b109c0, 0x00000000 }, |
{ 0x00802001, 0x2e400021, 0x00b10a00, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20003dbc, 0x00210a54, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000b8 }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000009c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a009 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a009 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000006e }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a009 }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a009 }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00800042, 0x29402529, 0x00b10940, 0x00b10d80 }, |
{ 0x00800042, 0x29602529, 0x00b10960, 0x00b10da0 }, |
{ 0x00800042, 0x29802529, 0x00b10980, 0x00b10dc0 }, |
{ 0x00800042, 0x29a02529, 0x00b109a0, 0x00b10de0 }, |
{ 0x00800042, 0x29c02529, 0x00b109c0, 0x00b10e00 }, |
{ 0x00800042, 0x29e02529, 0x00b109e0, 0x00b10e20 }, |
{ 0x00800042, 0x2a002529, 0x00b10a00, 0x00b10e40 }, |
{ 0x00800042, 0x2a202529, 0x00b10a20, 0x00b10e60 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_bidirect_16x8.g4b |
---|
0,0 → 1,15 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00200001, 0x20c00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20200062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20600062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20a00062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20e00062, 0x00000000, 0xffffffff }, |
{ 0x00800031, 0x24001d28, 0x008d00c0, 0x05902000 }, |
{ 0x00200008, 0x20c02d21, 0x00450a4c, 0x00010001 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x00070007 }, |
{ 0x00802001, 0x20200062, 0x00000000, 0x7f7f7f7f }, |
{ 0x00800031, 0x24001d28, 0x008d00c0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d00c0, 0x05302001 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_bidirect_16x8.g4b.gen5 |
---|
0,0 → 1,15 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00200001, 0x20c00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20200062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20600062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20a00062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20e00062, 0x00000000, 0xffffffff }, |
{ 0x00800031, 0x24001d28, 0x508d00c0, 0x12082000 }, |
{ 0x00200008, 0x20c02d21, 0x00450a4c, 0x00010001 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x00070007 }, |
{ 0x00802001, 0x20200062, 0x00000000, 0x7f7f7f7f }, |
{ 0x00800031, 0x24001d28, 0x508d00c0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x508d00c0, 0x06082001 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_forward.g4b |
---|
0,0 → 1,768 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x08000800 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000005, 0x24002d29, 0x00210a4a, 0x00030003 }, |
{ 0x01000010, 0x20002d3c, 0x00210400, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000004 }, |
{ 0x01000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000004 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000014a }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000004f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000039 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20003dbc, 0x00210a50, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000043 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000037 }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000141 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000004f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a003 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a003 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000039 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a003 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a003 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a003 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a50, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000043 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a00a }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a00b }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a00a }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a00b }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a00b }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a00b }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000037 }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000001f }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a00a }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a00b }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0414a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0411a00a }, |
{ 0x00800031, 0x26401d29, 0x008d0400, 0x0411a00b }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a00b }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a00a }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a00b }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_forward.g4b.gen5 |
---|
0,0 → 1,768 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x08000800 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000005, 0x24002d29, 0x00210a4a, 0x00030003 }, |
{ 0x01000010, 0x20002d3c, 0x00210400, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x01000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000004 }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000294 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000d4 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000009e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a4 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000072 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x241c0061, 0x00000000, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010001, 0x241c0061, 0x00000000, 0x00000001 }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x00000040, 0x24040421, 0x00210404, 0x0021041c }, |
{ 0x01000005, 0x20003dbc, 0x00210a50, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000b8 }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000009c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a006 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a006 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000006e }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a006 }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a006 }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000282 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000d4 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000009e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a003 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10500 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10540 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10580 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c0 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10600 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10640 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10680 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b10501 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10541 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10581 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b105c1 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10601 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10641 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b10681 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b106c1 }, |
{ 0x00800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x00800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x00800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x00800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x00800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x00800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x00800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x00800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a003 }, |
{ 0x00800040, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10500 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10540 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10580 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c0 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10600 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10640 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10680 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b10501 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10541 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10581 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b105c1 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10601 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10641 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b10681 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x00800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x00800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x00800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x00800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x00800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x00800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x00800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x00800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a4 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10501 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10541 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b10581 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10601 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10641 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b10681 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000072 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a003 }, |
{ 0x00800042, 0x27404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x27604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x27804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x27a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x27c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x27e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x28004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x28204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a003 }, |
{ 0x00800042, 0x28404629, 0x00b104c0, 0x00b10500 }, |
{ 0x00800042, 0x28604629, 0x00b10500, 0x00b10540 }, |
{ 0x00800042, 0x28804629, 0x00b10540, 0x00b10580 }, |
{ 0x00800042, 0x28a04629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800042, 0x28c04629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800042, 0x28e04629, 0x00b10600, 0x00b10640 }, |
{ 0x00800042, 0x29004629, 0x00b10640, 0x00b10680 }, |
{ 0x00800042, 0x29204629, 0x00b10680, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b10680, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a003 }, |
{ 0x00800001, 0x28400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b10680, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000009, 0x24040c21, 0x00210404, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a50, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000b8 }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a00a }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a00b }, |
{ 0x00600040, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0520 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0540 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0560 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0580 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0521 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0541 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d0561 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d0581 }, |
{ 0x00600040, 0x29c04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29d04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x29e04629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x29f04629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0600 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0620 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0640 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05e1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d0601 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d0621 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0641 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a00a }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a00b }, |
{ 0x00600040, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600040, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0520 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0540 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0560 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0580 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d0521 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0541 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0561 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0581 }, |
{ 0x00600040, 0x2a004629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x2a104629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a204629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a304629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e0 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0600 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0620 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0640 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d05e1 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0601 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0621 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0641 }, |
{ 0x00a02008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00a02008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00a02008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00a02008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000009c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a00b }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a00b }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0501 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0521 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0541 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0561 }, |
{ 0x00600042, 0x2a004629, 0x008d0580, 0x008d0581 }, |
{ 0x00600042, 0x2a104629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600042, 0x2a204629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600042, 0x2a304629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000006e }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000003e }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a00a }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a00b }, |
{ 0x00600042, 0x29404629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29504629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29604629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29704629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x29c04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29d04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x29e04629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x29f04629, 0x008d0620, 0x008d0640 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0248a00b }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000000f }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0218a00a }, |
{ 0x00800031, 0x26401d29, 0x408d0400, 0x0218a00b }, |
{ 0x00600042, 0x29804629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29904629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29a04629, 0x008d0540, 0x008d0560 }, |
{ 0x00600042, 0x29b04629, 0x008d0560, 0x008d0580 }, |
{ 0x00600042, 0x2a004629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x2a104629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a204629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a304629, 0x008d0620, 0x008d0640 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a00b }, |
{ 0x00600001, 0x29400229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29500229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29600229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29700229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x29c00229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x29d00229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x29e00229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x29f00229, 0x008d05e0, 0x00000000 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a00a }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a00b }, |
{ 0x00600001, 0x29800229, 0x008d0500, 0x00000000 }, |
{ 0x00600001, 0x29900229, 0x008d0520, 0x00000000 }, |
{ 0x00600001, 0x29a00229, 0x008d0540, 0x00000000 }, |
{ 0x00600001, 0x29b00229, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x2a000229, 0x008d0580, 0x00000000 }, |
{ 0x00600001, 0x2a100229, 0x008d05a0, 0x00000000 }, |
{ 0x00600001, 0x2a200229, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x2a300229, 0x008d05e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_forward_16x8.g4b |
---|
0,0 → 1,15 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00200001, 0x20c00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20200062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20600062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20a00062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20e00062, 0x00000000, 0xffffffff }, |
{ 0x00800031, 0x24001d28, 0x008d00c0, 0x05902000 }, |
{ 0x00200008, 0x20c02d21, 0x00450a4c, 0x00010001 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x00070007 }, |
{ 0x00802001, 0x20200062, 0x00000000, 0x7f7f7f7f }, |
{ 0x00800031, 0x24001d28, 0x008d00c0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d00c0, 0x05302001 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_forward_16x8.g4b.gen5 |
---|
0,0 → 1,15 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00200001, 0x20c00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x000f000f }, |
{ 0x00802001, 0x20200062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20600062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20a00062, 0x00000000, 0xffffffff }, |
{ 0x00802001, 0x20e00062, 0x00000000, 0xffffffff }, |
{ 0x00800031, 0x24001d28, 0x508d00c0, 0x12082000 }, |
{ 0x00200008, 0x20c02d21, 0x00450a4c, 0x00010001 }, |
{ 0x00000001, 0x20c80061, 0x00000000, 0x00070007 }, |
{ 0x00802001, 0x20200062, 0x00000000, 0x7f7f7f7f }, |
{ 0x00800031, 0x24001d28, 0x508d00c0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x508d00c0, 0x06082001 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_intra.g4b |
---|
0,0 → 1,313 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f }, |
{ 0x00000005, 0x2da42d29, 0x00210a48, 0x60006000 }, |
{ 0x00000008, 0x2da42d29, 0x00210da4, 0x000d000d }, |
{ 0x00000001, 0x2da60169, 0x00000000, 0x00080008 }, |
{ 0x00000008, 0x2da42529, 0x00210da6, 0x00210da4 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000009 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000005 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000001 }, |
{ 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 }, |
{ 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 }, |
{ 0x00800001, 0x2e000229, 0x00b10020, 0x00000000 }, |
{ 0x00800001, 0x2e200229, 0x00b10030, 0x00000000 }, |
{ 0x00800001, 0x2e400229, 0x00b10040, 0x00000000 }, |
{ 0x00800001, 0x2e600229, 0x00b10050, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a1 }, |
{ 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000009b }, |
{ 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000095 }, |
{ 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000008f }, |
{ 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000089 }, |
{ 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000083 }, |
{ 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000008f }, |
{ 0x00600040, 0x2a602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2a802dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2aa02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2ac02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2ae02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2b002dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2b202dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2b402dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000085 }, |
{ 0x00600040, 0x2a702dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2a902dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2ab02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2ad02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2af02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2b102dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2b302dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2b502dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000007b }, |
{ 0x00600040, 0x2b602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2b802dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2ba02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2bc02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2be02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2c002dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2c202dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2c402dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000071 }, |
{ 0x00600040, 0x2b702dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2b902dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2bb02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2bd02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2bf02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2c102dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2c302dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2c502dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000067 }, |
{ 0x00800040, 0x2c602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00800040, 0x2c802dad, 0x00ae0440, 0x00800080 }, |
{ 0x00800040, 0x2ca02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00800040, 0x2cc02dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000061 }, |
{ 0x00800040, 0x2ce02dad, 0x00ae0400, 0x00800080 }, |
{ 0x00800040, 0x2d002dad, 0x00ae0440, 0x00800080 }, |
{ 0x00800040, 0x2d202dad, 0x00ae0480, 0x00800080 }, |
{ 0x00800040, 0x2d402dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x4a6001b1, 0x00b10a60, 0x00000000 }, |
{ 0x80800001, 0x4a8001b1, 0x00b10a80, 0x00000000 }, |
{ 0x80800001, 0x4aa001b1, 0x00b10aa0, 0x00000000 }, |
{ 0x80800001, 0x4ac001b1, 0x00b10ac0, 0x00000000 }, |
{ 0x80800001, 0x4ae001b1, 0x00b10ae0, 0x00000000 }, |
{ 0x80800001, 0x4b0001b1, 0x00b10b00, 0x00000000 }, |
{ 0x80800001, 0x4b2001b1, 0x00b10b20, 0x00000000 }, |
{ 0x80800001, 0x4b4001b1, 0x00b10b40, 0x00000000 }, |
{ 0x80800001, 0x4b6001b1, 0x00b10b60, 0x00000000 }, |
{ 0x80800001, 0x4b8001b1, 0x00b10b80, 0x00000000 }, |
{ 0x80800001, 0x4ba001b1, 0x00b10ba0, 0x00000000 }, |
{ 0x80800001, 0x4bc001b1, 0x00b10bc0, 0x00000000 }, |
{ 0x80800001, 0x4be001b1, 0x00b10be0, 0x00000000 }, |
{ 0x80800001, 0x4c0001b1, 0x00b10c00, 0x00000000 }, |
{ 0x80800001, 0x4c2001b1, 0x00b10c20, 0x00000000 }, |
{ 0x80800001, 0x4c4001b1, 0x00b10c40, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20a80, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20aa0, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20ac0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b20ae0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b20b00, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20b20, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20b40, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20b60, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20b80, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20ba0, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b20bc0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b20be0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b20c00, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20c20, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20b60, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a80, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20b80, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b20aa0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b20ba0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20ac0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20bc0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20ae0, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20be0, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20b00, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b20c00, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b20b20, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b20c20, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20b40, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01d21, 0x00450a4c, 0x00000001 }, |
{ 0x80800001, 0x4c6001b1, 0x00b10c60, 0x00000000 }, |
{ 0x80800001, 0x4c8001b1, 0x00b10c80, 0x00000000 }, |
{ 0x80800001, 0x4ca001b1, 0x00b10ca0, 0x00000000 }, |
{ 0x80800001, 0x4cc001b1, 0x00b10cc0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20c60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20c80, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20ca0, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20cc0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x80800001, 0x4ce001b1, 0x00b10ce0, 0x00000000 }, |
{ 0x80800001, 0x4d0001b1, 0x00b10d00, 0x00000000 }, |
{ 0x80800001, 0x4d2001b1, 0x00b10d20, 0x00000000 }, |
{ 0x80800001, 0x4d4001b1, 0x00b10d40, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20ce0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20d00, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20d20, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20d40, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00000001, 0x2de001ad, 0x00218000, 0x00000000 }, |
{ 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 }, |
{ 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 }, |
{ 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 }, |
{ 0x00000041, 0x2e8025a5, 0x00210de0, 0x00210da4 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 }, |
{ 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 }, |
{ 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 }, |
{ 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 }, |
{ 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 }, |
{ 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 }, |
{ 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001a }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b }, |
{ 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00000001, 0x2a000001, 0x00210200, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 }, |
{ 0x00000001, 0x22000020, 0x00210a00, 0x00000000 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 }, |
/drivers/video/i965/shaders/mpeg2/vld/field_intra.g4b.gen5 |
---|
0,0 → 1,313 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f }, |
{ 0x00000005, 0x2da42d29, 0x00210a48, 0x60006000 }, |
{ 0x00000008, 0x2da42d29, 0x00210da4, 0x000d000d }, |
{ 0x00000001, 0x2da60169, 0x00000000, 0x00080008 }, |
{ 0x00000008, 0x2da42529, 0x00210da6, 0x00210da4 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 }, |
{ 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 }, |
{ 0x00800001, 0x2e000229, 0x00b10020, 0x00000000 }, |
{ 0x00800001, 0x2e200229, 0x00b10030, 0x00000000 }, |
{ 0x00800001, 0x2e400229, 0x00b10040, 0x00000000 }, |
{ 0x00800001, 0x2e600229, 0x00b10050, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000142 }, |
{ 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000136 }, |
{ 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000012a }, |
{ 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000011e }, |
{ 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000112 }, |
{ 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000106 }, |
{ 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000011e }, |
{ 0x00600040, 0x2a602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2a802dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2aa02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2ac02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2ae02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2b002dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2b202dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2b402dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000010a }, |
{ 0x00600040, 0x2a702dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2a902dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2ab02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2ad02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2af02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2b102dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2b302dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2b502dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000f6 }, |
{ 0x00600040, 0x2b602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2b802dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2ba02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2bc02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2be02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2c002dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2c202dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2c402dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000e2 }, |
{ 0x00600040, 0x2b702dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2b902dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2bb02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2bd02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2bf02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2c102dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2c302dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2c502dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000ce }, |
{ 0x00800040, 0x2c602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00800040, 0x2c802dad, 0x00ae0440, 0x00800080 }, |
{ 0x00800040, 0x2ca02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00800040, 0x2cc02dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000c2 }, |
{ 0x00800040, 0x2ce02dad, 0x00ae0400, 0x00800080 }, |
{ 0x00800040, 0x2d002dad, 0x00ae0440, 0x00800080 }, |
{ 0x00800040, 0x2d202dad, 0x00ae0480, 0x00800080 }, |
{ 0x00800040, 0x2d402dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x4a6001b1, 0x00b10a60, 0x00000000 }, |
{ 0x80800001, 0x4a8001b1, 0x00b10a80, 0x00000000 }, |
{ 0x80800001, 0x4aa001b1, 0x00b10aa0, 0x00000000 }, |
{ 0x80800001, 0x4ac001b1, 0x00b10ac0, 0x00000000 }, |
{ 0x80800001, 0x4ae001b1, 0x00b10ae0, 0x00000000 }, |
{ 0x80800001, 0x4b0001b1, 0x00b10b00, 0x00000000 }, |
{ 0x80800001, 0x4b2001b1, 0x00b10b20, 0x00000000 }, |
{ 0x80800001, 0x4b4001b1, 0x00b10b40, 0x00000000 }, |
{ 0x80800001, 0x4b6001b1, 0x00b10b60, 0x00000000 }, |
{ 0x80800001, 0x4b8001b1, 0x00b10b80, 0x00000000 }, |
{ 0x80800001, 0x4ba001b1, 0x00b10ba0, 0x00000000 }, |
{ 0x80800001, 0x4bc001b1, 0x00b10bc0, 0x00000000 }, |
{ 0x80800001, 0x4be001b1, 0x00b10be0, 0x00000000 }, |
{ 0x80800001, 0x4c0001b1, 0x00b10c00, 0x00000000 }, |
{ 0x80800001, 0x4c2001b1, 0x00b10c20, 0x00000000 }, |
{ 0x80800001, 0x4c4001b1, 0x00b10c40, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20a80, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20aa0, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20ac0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b20ae0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b20b00, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20b20, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20b40, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20b60, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20b80, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20ba0, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b20bc0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b20be0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b20c00, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20c20, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20b60, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a80, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20b80, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b20aa0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b20ba0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20ac0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20bc0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20ae0, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20be0, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20b00, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b20c00, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b20b20, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b20c20, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20b40, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01d21, 0x00450a4c, 0x00000001 }, |
{ 0x80800001, 0x4c6001b1, 0x00b10c60, 0x00000000 }, |
{ 0x80800001, 0x4c8001b1, 0x00b10c80, 0x00000000 }, |
{ 0x80800001, 0x4ca001b1, 0x00b10ca0, 0x00000000 }, |
{ 0x80800001, 0x4cc001b1, 0x00b10cc0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20c60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20c80, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20ca0, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20cc0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x80800001, 0x4ce001b1, 0x00b10ce0, 0x00000000 }, |
{ 0x80800001, 0x4d0001b1, 0x00b10d00, 0x00000000 }, |
{ 0x80800001, 0x4d2001b1, 0x00b10d20, 0x00000000 }, |
{ 0x80800001, 0x4d4001b1, 0x00b10d40, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20ce0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20d00, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20d20, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20d40, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00000001, 0x2de001ad, 0x00218000, 0x00000000 }, |
{ 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 }, |
{ 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 }, |
{ 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 }, |
{ 0x00000041, 0x2e8025a5, 0x00210de0, 0x00210da4 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 }, |
{ 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 }, |
{ 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 }, |
{ 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 }, |
{ 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 }, |
{ 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 }, |
{ 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b }, |
{ 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00000001, 0x2a000001, 0x00210200, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 }, |
{ 0x00000001, 0x22000020, 0x00210a00, 0x00000000 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_field_pred_backward.g4b |
---|
0,0 → 1,553 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27400021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27800021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5c, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27600021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28600021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x2a543dad, 0x00450a54, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000029 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001d }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29400129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29600129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29800129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x2a5c3dad, 0x00450a5c, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5c, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000029 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001d }, |
{ 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29500129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29700129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29900129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_field_pred_backward.g4b.gen5 |
---|
0,0 → 1,553 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000008a }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000058 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000026 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27400021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27800021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5c, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000008a }, |
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000058 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000026 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27600021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28600021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x2a543dad, 0x00450a54, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a008 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a009 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000003a }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a008 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x40ad0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x40ad0e60, 0x0248a009 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29400129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29600129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29800129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x2a5c3dad, 0x00450a5c, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5c, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a008 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a009 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000003a }, |
{ 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a008 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x40ad0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x40ad0e60, 0x0248a009 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29500129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29700129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29900129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_field_pred_bidirect.g4b |
---|
0,0 → 1,1007 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27400021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27800021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a58, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27600021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28600021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x2a503dad, 0x00450a50, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000029 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001d }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29400129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29600129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29800129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x2a583dad, 0x00450a58, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a58, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000029 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001d }, |
{ 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29500129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29700129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29900129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x80800042, 0x27402529, 0x00b10740, 0x00b10400 }, |
{ 0x80800042, 0x27802529, 0x00b10780, 0x00b10420 }, |
{ 0x80800042, 0x27c02529, 0x00b107c0, 0x00b10440 }, |
{ 0x80800042, 0x28002529, 0x00b10800, 0x00b10460 }, |
{ 0x80800042, 0x28402529, 0x00b10840, 0x00b10480 }, |
{ 0x80800042, 0x28802529, 0x00b10880, 0x00b104a0 }, |
{ 0x80800042, 0x28c02529, 0x00b108c0, 0x00b104c0 }, |
{ 0x80800042, 0x29002529, 0x00b10900, 0x00b104e0 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5c, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a007 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x80800042, 0x27602529, 0x00b10760, 0x00b10400 }, |
{ 0x80800042, 0x27a02529, 0x00b107a0, 0x00b10420 }, |
{ 0x80800042, 0x27e02529, 0x00b107e0, 0x00b10440 }, |
{ 0x80800042, 0x28202529, 0x00b10820, 0x00b10460 }, |
{ 0x80800042, 0x28602529, 0x00b10860, 0x00b10480 }, |
{ 0x80800042, 0x28a02529, 0x00b108a0, 0x00b104a0 }, |
{ 0x80800042, 0x28e02529, 0x00b108e0, 0x00b104c0 }, |
{ 0x80800042, 0x29202529, 0x00b10920, 0x00b104e0 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x2a543dad, 0x00450a54, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000029 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001d }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x80600042, 0x29402529, 0x008d0940, 0x008d0400 }, |
{ 0x80600042, 0x29602529, 0x008d0960, 0x008d0420 }, |
{ 0x80600042, 0x29802529, 0x008d0980, 0x008d0440 }, |
{ 0x80600042, 0x29a02529, 0x008d09a0, 0x008d0460 }, |
{ 0x80600042, 0x29c02529, 0x008d09c0, 0x008d0480 }, |
{ 0x80600042, 0x29e02529, 0x008d09e0, 0x008d04a0 }, |
{ 0x80600042, 0x2a002529, 0x008d0a00, 0x008d04c0 }, |
{ 0x80600042, 0x2a202529, 0x008d0a20, 0x008d04e0 }, |
{ 0x0020000c, 0x2a5c3dad, 0x00450a5c, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5c, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000029 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001d }, |
{ 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a008 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a008 }, |
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a009 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x80600042, 0x29502529, 0x008d0950, 0x008d0400 }, |
{ 0x80600042, 0x29702529, 0x008d0970, 0x008d0420 }, |
{ 0x80600042, 0x29902529, 0x008d0990, 0x008d0440 }, |
{ 0x80600042, 0x29b02529, 0x008d09b0, 0x008d0460 }, |
{ 0x80600042, 0x29d02529, 0x008d09d0, 0x008d0480 }, |
{ 0x80600042, 0x29f02529, 0x008d09f0, 0x008d04a0 }, |
{ 0x80600042, 0x2a102529, 0x008d0a10, 0x008d04c0 }, |
{ 0x80600042, 0x2a302529, 0x008d0a30, 0x008d04e0 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_field_pred_bidirect.g4b.gen5 |
---|
0,0 → 1,1007 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000008a }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000058 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000026 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27400021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27800021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a58, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000008a }, |
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000058 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000026 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27600021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28600021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x2a503dad, 0x00450a50, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a005 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a006 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000003a }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a005 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x40ad0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x40ad0e60, 0x0248a006 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29400129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29600129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29800129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x2a583dad, 0x00450a58, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a58, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a005 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a006 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000003a }, |
{ 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a005 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x40ad0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x40ad0e60, 0x0248a006 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29500129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29700129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29900129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000008a }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000058 }, |
{ 0x01000005, 0x20002dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000026 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x80800042, 0x27402529, 0x00b10740, 0x00b10400 }, |
{ 0x80800042, 0x27802529, 0x00b10780, 0x00b10420 }, |
{ 0x80800042, 0x27c02529, 0x00b107c0, 0x00b10440 }, |
{ 0x80800042, 0x28002529, 0x00b10800, 0x00b10460 }, |
{ 0x80800042, 0x28402529, 0x00b10840, 0x00b10480 }, |
{ 0x80800042, 0x28802529, 0x00b10880, 0x00b104a0 }, |
{ 0x80800042, 0x28c02529, 0x00b108c0, 0x00b104c0 }, |
{ 0x80800042, 0x29002529, 0x00b10900, 0x00b104e0 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5c, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000008a }, |
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000058 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000026 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a007 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a007 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x80800042, 0x27602529, 0x00b10760, 0x00b10400 }, |
{ 0x80800042, 0x27a02529, 0x00b107a0, 0x00b10420 }, |
{ 0x80800042, 0x27e02529, 0x00b107e0, 0x00b10440 }, |
{ 0x80800042, 0x28202529, 0x00b10820, 0x00b10460 }, |
{ 0x80800042, 0x28602529, 0x00b10860, 0x00b10480 }, |
{ 0x80800042, 0x28a02529, 0x00b108a0, 0x00b104a0 }, |
{ 0x80800042, 0x28e02529, 0x00b108e0, 0x00b104c0 }, |
{ 0x80800042, 0x29202529, 0x00b10920, 0x00b104e0 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x2a543dad, 0x00450a54, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x20002000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a54, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a008 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a009 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000003a }, |
{ 0x01000005, 0x20003dbc, 0x00210a56, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a008 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x40ad0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x40ad0e60, 0x0248a009 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x80600042, 0x29402529, 0x008d0940, 0x008d0400 }, |
{ 0x80600042, 0x29602529, 0x008d0960, 0x008d0420 }, |
{ 0x80600042, 0x29802529, 0x008d0980, 0x008d0440 }, |
{ 0x80600042, 0x29a02529, 0x008d09a0, 0x008d0460 }, |
{ 0x80600042, 0x29c02529, 0x008d09c0, 0x008d0480 }, |
{ 0x80600042, 0x29e02529, 0x008d09e0, 0x008d04a0 }, |
{ 0x80600042, 0x2a002529, 0x008d0a00, 0x008d04c0 }, |
{ 0x80600042, 0x2a202529, 0x008d0a20, 0x008d04e0 }, |
{ 0x0020000c, 0x2a5c3dad, 0x00450a5c, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a5c, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x80008000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5c, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a008 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a009 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000003a }, |
{ 0x01000005, 0x20003dbc, 0x00210a5e, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a009 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a008 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a009 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x40ad0e60, 0x0248a008 }, |
{ 0x00800031, 0x25a01d29, 0x40ad0e60, 0x0248a009 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x80600042, 0x29502529, 0x008d0950, 0x008d0400 }, |
{ 0x80600042, 0x29702529, 0x008d0970, 0x008d0420 }, |
{ 0x80600042, 0x29902529, 0x008d0990, 0x008d0440 }, |
{ 0x80600042, 0x29b02529, 0x008d09b0, 0x008d0460 }, |
{ 0x80600042, 0x29d02529, 0x008d09d0, 0x008d0480 }, |
{ 0x80600042, 0x29f02529, 0x008d09f0, 0x008d04a0 }, |
{ 0x80600042, 0x2a102529, 0x008d0a10, 0x008d04c0 }, |
{ 0x80600042, 0x2a302529, 0x008d0a30, 0x008d04e0 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_field_pred_forward.g4b |
---|
0,0 → 1,555 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27400021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27800021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a58, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000045 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002f }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000017 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000013 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x008d0e60, 0x0411a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x008d0e60, 0x0418a004 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27600021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28600021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x2a503dad, 0x00450a50, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000029 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001d }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29400129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29600129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29800129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x2a583dad, 0x00450a58, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a58, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000032 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000029 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001d }, |
{ 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x008d0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x008d0e60, 0x0414a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x008d0e60, 0x0411a005 }, |
{ 0x00800031, 0x26201d29, 0x008d0e60, 0x0411a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x00ad0e60, 0x0414a005 }, |
{ 0x00800031, 0x25a01d29, 0x00ad0e60, 0x0414a006 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29500129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29700129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29900129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_field_pred_forward.g4b.gen5 |
---|
0,0 → 1,555 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000008a }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000058 }, |
{ 0x01000005, 0x20002dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000026 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27400021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27800021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27c00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28800021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28c00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29000021, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20002dbc, 0x00210a58, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000008a }, |
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00800040, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x00800040, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x00800040, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x00800040, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x00800040, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x00800040, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x00800040, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x00800040, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10501 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10541 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b10581 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b105c1 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10601 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10641 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b10681 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b106c1 }, |
{ 0x00800040, 0x24004529, 0x00b10400, 0x00b10541 }, |
{ 0x00800040, 0x24204529, 0x00b10420, 0x00b10581 }, |
{ 0x00800040, 0x24404529, 0x00b10440, 0x00b105c1 }, |
{ 0x00800040, 0x24604529, 0x00b10460, 0x00b10601 }, |
{ 0x00800040, 0x24804529, 0x00b10480, 0x00b10641 }, |
{ 0x00800040, 0x24a04529, 0x00b104a0, 0x00b10681 }, |
{ 0x00800040, 0x24c04529, 0x00b104c0, 0x00b106c1 }, |
{ 0x00800040, 0x24e04529, 0x00b104e0, 0x00b10701 }, |
{ 0x00800008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00800008, 0x24202d29, 0x00b10420, 0x00020002 }, |
{ 0x00800008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00800008, 0x24602d29, 0x00b10460, 0x00020002 }, |
{ 0x00800008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00800008, 0x24a02d29, 0x00b104a0, 0x00020002 }, |
{ 0x00800008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00800008, 0x24e02d29, 0x00b104e0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b106c1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000058 }, |
{ 0x01000005, 0x20002dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x27001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x80800042, 0x24004629, 0x00b10500, 0x00b10540 }, |
{ 0x80800042, 0x24204629, 0x00b10540, 0x00b10580 }, |
{ 0x80800042, 0x24404629, 0x00b10580, 0x00b105c0 }, |
{ 0x80800042, 0x24604629, 0x00b105c0, 0x00b10600 }, |
{ 0x80800042, 0x24804629, 0x00b10600, 0x00b10640 }, |
{ 0x80800042, 0x24a04629, 0x00b10640, 0x00b10680 }, |
{ 0x80800042, 0x24c04629, 0x00b10680, 0x00b106c0 }, |
{ 0x80800042, 0x24e04629, 0x00b106c0, 0x00b10700 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000026 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25401d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00800031, 0x25c01d29, 0x408d0e60, 0x0218a004 }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000002 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x26001d29, 0x408d0e60, 0x0288a004 }, |
{ 0x00800001, 0x24000229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00b106c0, 0x00000000 }, |
{ 0x00600001, 0x27600021, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x27a00021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x27e00021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28600021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28a00021, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x28e00021, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x29200021, 0x008d04e0, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x2a503dad, 0x00450a50, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x10001000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a50, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a005 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a006 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000003a }, |
{ 0x01000005, 0x20003dbc, 0x00210a52, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a005 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x40ad0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x40ad0e60, 0x0248a006 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29400129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29600129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29800129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29a00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29c00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29e00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a000129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a200129, 0x008d04e0, 0x00000000 }, |
{ 0x0020000c, 0x2a583dad, 0x00450a58, 0x00010001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a58, 0x00010001 }, |
{ 0x00000009, 0x23f03dad, 0x002103f0, 0x00010001 }, |
{ 0x00200040, 0x2e603421, 0x004503e0, 0x004503ee }, |
{ 0x00000005, 0x2e640c21, 0x00210e64, 0xfffffffe }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x40004000 }, |
{ 0x00010040, 0x2e640c21, 0x00210e64, 0x00000001 }, |
{ 0x01000005, 0x20003dbc, 0x00210a58, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000064 }, |
{ 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0001000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a005 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a006 }, |
{ 0x00800040, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800040, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800040, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800040, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0501 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0521 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0541 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0561 }, |
{ 0x00800040, 0x24004529, 0x00ad0400, 0x00ad0521 }, |
{ 0x00800040, 0x24204529, 0x00ad0420, 0x00ad0541 }, |
{ 0x00800040, 0x24404529, 0x00ad0440, 0x00ad0561 }, |
{ 0x00800040, 0x24604529, 0x00ad0460, 0x00ad0581 }, |
{ 0x00800040, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800040, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800040, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800040, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05a1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05c1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad05e1 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0601 }, |
{ 0x00800040, 0x24804529, 0x00ad0480, 0x00ad05c1 }, |
{ 0x00800040, 0x24a04529, 0x00ad04a0, 0x00ad05e1 }, |
{ 0x00800040, 0x24c04529, 0x00ad04c0, 0x00ad0601 }, |
{ 0x00800040, 0x24e04529, 0x00ad04e0, 0x00ad0621 }, |
{ 0x00a02008, 0x24002d29, 0x00b10400, 0x00020002 }, |
{ 0x00a02008, 0x24402d29, 0x00b10440, 0x00020002 }, |
{ 0x00a02008, 0x24802d29, 0x00b10480, 0x00020002 }, |
{ 0x00a02008, 0x24c02d29, 0x00b104c0, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0501 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0521 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0541 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0561 }, |
{ 0x00800042, 0x24804629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x24a04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x24c04629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x24e04629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000003a }, |
{ 0x01000005, 0x20003dbc, 0x00210a5a, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x408d0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x408d0e60, 0x0248a006 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0000000f }, |
{ 0x00000040, 0x2e640c21, 0x00210e64, 0x00000008 }, |
{ 0x00800031, 0x25801d29, 0x408d0e60, 0x0218a005 }, |
{ 0x00800031, 0x26201d29, 0x408d0e60, 0x0218a006 }, |
{ 0x00800042, 0x24004629, 0x00ad0500, 0x00ad0520 }, |
{ 0x00800042, 0x24204629, 0x00ad0520, 0x00ad0540 }, |
{ 0x00800042, 0x24404629, 0x00ad0540, 0x00ad0560 }, |
{ 0x00800042, 0x24604629, 0x00ad0560, 0x00ad0580 }, |
{ 0x00800042, 0x24804629, 0x00ad05a0, 0x00ad05c0 }, |
{ 0x00800042, 0x24a04629, 0x00ad05c0, 0x00ad05e0 }, |
{ 0x00800042, 0x24c04629, 0x00ad05e0, 0x00ad0600 }, |
{ 0x00800042, 0x24e04629, 0x00ad0600, 0x00ad0620 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x2e680061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x25001d29, 0x40ad0e60, 0x0248a005 }, |
{ 0x00800031, 0x25a01d29, 0x40ad0e60, 0x0248a006 }, |
{ 0x00800001, 0x24000229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x24400229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x24600229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x24800229, 0x00ad05a0, 0x00000000 }, |
{ 0x00800001, 0x24a00229, 0x00ad05c0, 0x00000000 }, |
{ 0x00800001, 0x24c00229, 0x00ad05e0, 0x00000000 }, |
{ 0x00800001, 0x24e00229, 0x00ad0600, 0x00000000 }, |
{ 0x00600001, 0x29500129, 0x008d0400, 0x00000000 }, |
{ 0x00600001, 0x29700129, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x29900129, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x29b00129, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x29d00129, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x29f00129, 0x008d04a0, 0x00000000 }, |
{ 0x00600001, 0x2a100129, 0x008d04c0, 0x00000000 }, |
{ 0x00600001, 0x2a300129, 0x008d04e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_frame_pred_backward.g4b |
---|
0,0 → 1,369 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005f }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000043 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, |
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000004e }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0418a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0418a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26801d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 }, |
{ 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 }, |
{ 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 }, |
{ 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 }, |
{ 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 }, |
{ 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 }, |
{ 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 }, |
{ 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 }, |
{ 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 }, |
{ 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 }, |
{ 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 }, |
{ 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 }, |
{ 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000031 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 }, |
{ 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 }, |
{ 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 }, |
{ 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 }, |
{ 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 }, |
{ 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000025 }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0418a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0418a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26801d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 }, |
{ 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 }, |
{ 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 }, |
{ 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 }, |
{ 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 }, |
{ 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 }, |
{ 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 }, |
{ 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 }, |
{ 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24801d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a009 }, |
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, |
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, |
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, |
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, |
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_frame_pred_backward.g4b.gen5 |
---|
0,0 → 1,369 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000be }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000090 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000028 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, |
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000009c }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0288a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0288a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26801d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 }, |
{ 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 }, |
{ 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 }, |
{ 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 }, |
{ 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 }, |
{ 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 }, |
{ 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 }, |
{ 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 }, |
{ 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 }, |
{ 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 }, |
{ 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 }, |
{ 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 }, |
{ 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a009 }, |
{ 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 }, |
{ 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 }, |
{ 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 }, |
{ 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 }, |
{ 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004a }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0288a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0288a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26801d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 }, |
{ 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 }, |
{ 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 }, |
{ 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 }, |
{ 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 }, |
{ 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 }, |
{ 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 }, |
{ 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 }, |
{ 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24801d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a009 }, |
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, |
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, |
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, |
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, |
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_frame_pred_bidirect.g4b |
---|
0,0 → 1,675 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a50, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005f }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000043 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, |
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, |
{ 0x00802001, 0x2d800021, 0x00b10740, 0x00000000 }, |
{ 0x00802001, 0x2dc00021, 0x00b10780, 0x00000000 }, |
{ 0x00802001, 0x2e000021, 0x00b107c0, 0x00000000 }, |
{ 0x00802001, 0x2e400021, 0x00b10800, 0x00000000 }, |
{ 0x00802001, 0x2e800021, 0x00b10840, 0x00000000 }, |
{ 0x00802001, 0x2ec00021, 0x00b10880, 0x00000000 }, |
{ 0x00802001, 0x2f000021, 0x00b108c0, 0x00000000 }, |
{ 0x00802001, 0x2f400021, 0x00b10900, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005f }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000043 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a007 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a007 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, |
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, |
{ 0x80800042, 0x27402529, 0x00b10740, 0x00b10d80 }, |
{ 0x80800042, 0x27602529, 0x00b10760, 0x00b10da0 }, |
{ 0x80800042, 0x27802529, 0x00b10780, 0x00b10dc0 }, |
{ 0x80800042, 0x27a02529, 0x00b107a0, 0x00b10de0 }, |
{ 0x80800042, 0x27c02529, 0x00b107c0, 0x00b10e00 }, |
{ 0x80800042, 0x27e02529, 0x00b107e0, 0x00b10e20 }, |
{ 0x80800042, 0x28002529, 0x00b10800, 0x00b10e40 }, |
{ 0x80800042, 0x28202529, 0x00b10820, 0x00b10e60 }, |
{ 0x80800042, 0x28402529, 0x00b10840, 0x00b10e80 }, |
{ 0x80800042, 0x28602529, 0x00b10860, 0x00b10ea0 }, |
{ 0x80800042, 0x28802529, 0x00b10880, 0x00b10ec0 }, |
{ 0x80800042, 0x28a02529, 0x00b108a0, 0x00b10ee0 }, |
{ 0x80800042, 0x28c02529, 0x00b108c0, 0x00b10f00 }, |
{ 0x80800042, 0x28e02529, 0x00b108e0, 0x00b10f20 }, |
{ 0x80800042, 0x29002529, 0x00b10900, 0x00b10f40 }, |
{ 0x80800042, 0x29202529, 0x00b10920, 0x00b10f60 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000004e }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0418a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0418a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26801d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 }, |
{ 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 }, |
{ 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 }, |
{ 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 }, |
{ 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 }, |
{ 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 }, |
{ 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 }, |
{ 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 }, |
{ 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 }, |
{ 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 }, |
{ 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 }, |
{ 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 }, |
{ 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000031 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 }, |
{ 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 }, |
{ 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 }, |
{ 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 }, |
{ 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 }, |
{ 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000025 }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0418a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0418a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26801d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 }, |
{ 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 }, |
{ 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 }, |
{ 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 }, |
{ 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 }, |
{ 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 }, |
{ 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 }, |
{ 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 }, |
{ 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24801d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a006 }, |
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, |
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, |
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, |
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, |
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x2d800231, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x2d900231, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x2da00231, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x2db00231, 0x00b209a0, 0x00000000 }, |
{ 0x00800001, 0x2dc00231, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x2dd00231, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x2de00231, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x2df00231, 0x00b20a20, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000004e }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0418a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0418a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26801d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 }, |
{ 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 }, |
{ 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 }, |
{ 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 }, |
{ 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 }, |
{ 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 }, |
{ 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 }, |
{ 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 }, |
{ 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 }, |
{ 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 }, |
{ 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 }, |
{ 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 }, |
{ 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000031 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a009 }, |
{ 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 }, |
{ 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 }, |
{ 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 }, |
{ 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 }, |
{ 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000025 }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0418a008 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0418a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x008d0400, 0x0411a008 }, |
{ 0x00800031, 0x26801d29, 0x008d0400, 0x0411a009 }, |
{ 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 }, |
{ 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 }, |
{ 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 }, |
{ 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 }, |
{ 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 }, |
{ 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 }, |
{ 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 }, |
{ 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 }, |
{ 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24801d29, 0x008d0400, 0x0414a008 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a009 }, |
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, |
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, |
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, |
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, |
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, |
{ 0x80800042, 0x29404529, 0x00b10940, 0x00b10d80 }, |
{ 0x80800042, 0x29604529, 0x00b10960, 0x00b10d90 }, |
{ 0x80800042, 0x29804529, 0x00b10980, 0x00b10da0 }, |
{ 0x80800042, 0x29a04529, 0x00b109a0, 0x00b10db0 }, |
{ 0x80800042, 0x29c04529, 0x00b109c0, 0x00b10dc0 }, |
{ 0x80800042, 0x29e04529, 0x00b109e0, 0x00b10dd0 }, |
{ 0x80800042, 0x2a004529, 0x00b10a00, 0x00b10de0 }, |
{ 0x80800042, 0x2a204529, 0x00b10a20, 0x00b10df0 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_frame_pred_bidirect.g4b.gen5 |
---|
0,0 → 1,675 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a50, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000be }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000090 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000028 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, |
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, |
{ 0x00802001, 0x2d800021, 0x00b10740, 0x00000000 }, |
{ 0x00802001, 0x2dc00021, 0x00b10780, 0x00000000 }, |
{ 0x00802001, 0x2e000021, 0x00b107c0, 0x00000000 }, |
{ 0x00802001, 0x2e400021, 0x00b10800, 0x00000000 }, |
{ 0x00802001, 0x2e800021, 0x00b10840, 0x00000000 }, |
{ 0x00802001, 0x2ec00021, 0x00b10880, 0x00000000 }, |
{ 0x00802001, 0x2f000021, 0x00b108c0, 0x00000000 }, |
{ 0x00802001, 0x2f400021, 0x00b10900, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000be }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000090 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a007 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000028 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a007 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, |
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, |
{ 0x80800042, 0x27402529, 0x00b10740, 0x00b10d80 }, |
{ 0x80800042, 0x27602529, 0x00b10760, 0x00b10da0 }, |
{ 0x80800042, 0x27802529, 0x00b10780, 0x00b10dc0 }, |
{ 0x80800042, 0x27a02529, 0x00b107a0, 0x00b10de0 }, |
{ 0x80800042, 0x27c02529, 0x00b107c0, 0x00b10e00 }, |
{ 0x80800042, 0x27e02529, 0x00b107e0, 0x00b10e20 }, |
{ 0x80800042, 0x28002529, 0x00b10800, 0x00b10e40 }, |
{ 0x80800042, 0x28202529, 0x00b10820, 0x00b10e60 }, |
{ 0x80800042, 0x28402529, 0x00b10840, 0x00b10e80 }, |
{ 0x80800042, 0x28602529, 0x00b10860, 0x00b10ea0 }, |
{ 0x80800042, 0x28802529, 0x00b10880, 0x00b10ec0 }, |
{ 0x80800042, 0x28a02529, 0x00b108a0, 0x00b10ee0 }, |
{ 0x80800042, 0x28c02529, 0x00b108c0, 0x00b10f00 }, |
{ 0x80800042, 0x28e02529, 0x00b108e0, 0x00b10f20 }, |
{ 0x80800042, 0x29002529, 0x00b10900, 0x00b10f40 }, |
{ 0x80800042, 0x29202529, 0x00b10920, 0x00b10f60 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000009c }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0288a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0288a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26801d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 }, |
{ 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 }, |
{ 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 }, |
{ 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 }, |
{ 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 }, |
{ 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 }, |
{ 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 }, |
{ 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 }, |
{ 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 }, |
{ 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 }, |
{ 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 }, |
{ 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 }, |
{ 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a006 }, |
{ 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 }, |
{ 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 }, |
{ 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 }, |
{ 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 }, |
{ 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004a }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0288a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0288a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26801d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 }, |
{ 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 }, |
{ 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 }, |
{ 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 }, |
{ 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 }, |
{ 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 }, |
{ 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 }, |
{ 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 }, |
{ 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24801d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a006 }, |
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, |
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, |
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, |
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, |
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, |
{ 0x00800001, 0x2d800231, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x2d900231, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x2da00231, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x2db00231, 0x00b209a0, 0x00000000 }, |
{ 0x00800001, 0x2dc00231, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x2dd00231, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x2de00231, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x2df00231, 0x00b20a20, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a54, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a54, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000009c }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0288a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0288a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26801d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 }, |
{ 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 }, |
{ 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 }, |
{ 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 }, |
{ 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 }, |
{ 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 }, |
{ 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 }, |
{ 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 }, |
{ 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 }, |
{ 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 }, |
{ 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 }, |
{ 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 }, |
{ 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a009 }, |
{ 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 }, |
{ 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 }, |
{ 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 }, |
{ 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 }, |
{ 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004a }, |
{ 0x01000005, 0x20000d3c, 0x00210a56, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0288a008 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0288a009 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x408d0400, 0x0218a008 }, |
{ 0x00800031, 0x26801d29, 0x408d0400, 0x0218a009 }, |
{ 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 }, |
{ 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 }, |
{ 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 }, |
{ 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 }, |
{ 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 }, |
{ 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 }, |
{ 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 }, |
{ 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 }, |
{ 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24801d29, 0x408d0400, 0x0248a008 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a009 }, |
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, |
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, |
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, |
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, |
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, |
{ 0x80800042, 0x29404529, 0x00b10940, 0x00b10d80 }, |
{ 0x80800042, 0x29604529, 0x00b10960, 0x00b10d90 }, |
{ 0x80800042, 0x29804529, 0x00b10980, 0x00b10da0 }, |
{ 0x80800042, 0x29a04529, 0x00b109a0, 0x00b10db0 }, |
{ 0x80800042, 0x29c04529, 0x00b109c0, 0x00b10dc0 }, |
{ 0x80800042, 0x29e04529, 0x00b109e0, 0x00b10dd0 }, |
{ 0x80800042, 0x2a004529, 0x00b10a00, 0x00b10de0 }, |
{ 0x80800042, 0x2a204529, 0x00b10a20, 0x00b10df0 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_frame_pred_forward.g4b |
---|
0,0 → 1,369 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a50, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000005f }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000048 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000043 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002e }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x008d0400, 0x0411a004 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x008d0400, 0x0418a004 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, |
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a50, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000004e }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000040 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0418a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0418a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26801d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 }, |
{ 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 }, |
{ 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 }, |
{ 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 }, |
{ 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 }, |
{ 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 }, |
{ 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 }, |
{ 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 }, |
{ 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 }, |
{ 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 }, |
{ 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 }, |
{ 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 }, |
{ 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000031 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0414a006 }, |
{ 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 }, |
{ 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 }, |
{ 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 }, |
{ 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 }, |
{ 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000025 }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x008d0400, 0x0418a005 }, |
{ 0x00800031, 0x25801d29, 0x008d0400, 0x0418a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x008d0400, 0x0411a005 }, |
{ 0x00800031, 0x26801d29, 0x008d0400, 0x0411a006 }, |
{ 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 }, |
{ 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 }, |
{ 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 }, |
{ 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 }, |
{ 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 }, |
{ 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 }, |
{ 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 }, |
{ 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 }, |
{ 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000b }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24801d29, 0x008d0400, 0x0414a005 }, |
{ 0x00800031, 0x25001d29, 0x008d0400, 0x0414a006 }, |
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, |
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, |
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, |
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, |
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_frame_pred_forward.g4b.gen5 |
---|
0,0 → 1,369 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000001, 0x2fc80001, 0x00001400, 0x00000000 }, |
{ 0x00000001, 0x34000020, 0x002102a0, 0x00000000 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00010001 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a50, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000be }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000090 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x00800040, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x00800040, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x00800040, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x00800040, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x00800040, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x00800040, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x00800040, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x00800040, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x00800040, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x00800040, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x00800040, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x00800040, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x00800040, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x00800040, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x00800040, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x00800040, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e0 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10500 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10520 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10540 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10560 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10580 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a0 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c0 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e0 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10600 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10620 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10640 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10660 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10680 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a0 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c0 }, |
{ 0x00800040, 0x27404529, 0x00b10740, 0x00b104e1 }, |
{ 0x00800040, 0x27604529, 0x00b10760, 0x00b10501 }, |
{ 0x00800040, 0x27804529, 0x00b10780, 0x00b10521 }, |
{ 0x00800040, 0x27a04529, 0x00b107a0, 0x00b10541 }, |
{ 0x00800040, 0x27c04529, 0x00b107c0, 0x00b10561 }, |
{ 0x00800040, 0x27e04529, 0x00b107e0, 0x00b10581 }, |
{ 0x00800040, 0x28004529, 0x00b10800, 0x00b105a1 }, |
{ 0x00800040, 0x28204529, 0x00b10820, 0x00b105c1 }, |
{ 0x00800040, 0x28404529, 0x00b10840, 0x00b105e1 }, |
{ 0x00800040, 0x28604529, 0x00b10860, 0x00b10601 }, |
{ 0x00800040, 0x28804529, 0x00b10880, 0x00b10621 }, |
{ 0x00800040, 0x28a04529, 0x00b108a0, 0x00b10641 }, |
{ 0x00800040, 0x28c04529, 0x00b108c0, 0x00b10661 }, |
{ 0x00800040, 0x28e04529, 0x00b108e0, 0x00b10681 }, |
{ 0x00800040, 0x29004529, 0x00b10900, 0x00b106a1 }, |
{ 0x00800040, 0x29204529, 0x00b10920, 0x00b106c1 }, |
{ 0x80800008, 0x27402d29, 0x00b10740, 0x00020002 }, |
{ 0x80800008, 0x27602d29, 0x00b10760, 0x00020002 }, |
{ 0x80800008, 0x27802d29, 0x00b10780, 0x00020002 }, |
{ 0x80800008, 0x27a02d29, 0x00b107a0, 0x00020002 }, |
{ 0x80800008, 0x27c02d29, 0x00b107c0, 0x00020002 }, |
{ 0x80800008, 0x27e02d29, 0x00b107e0, 0x00020002 }, |
{ 0x80800008, 0x28002d29, 0x00b10800, 0x00020002 }, |
{ 0x80800008, 0x28202d29, 0x00b10820, 0x00020002 }, |
{ 0x80800008, 0x28402d29, 0x00b10840, 0x00020002 }, |
{ 0x80800008, 0x28602d29, 0x00b10860, 0x00020002 }, |
{ 0x80800008, 0x28802d29, 0x00b10880, 0x00020002 }, |
{ 0x80800008, 0x28a02d29, 0x00b108a0, 0x00020002 }, |
{ 0x80800008, 0x28c02d29, 0x00b108c0, 0x00020002 }, |
{ 0x80800008, 0x28e02d29, 0x00b108e0, 0x00020002 }, |
{ 0x80800008, 0x29002d29, 0x00b10900, 0x00020002 }, |
{ 0x80800008, 0x29202d29, 0x00b10920, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000086 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104c1 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b104e1 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10501 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10521 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10541 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10561 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b10581 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105a1 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105c1 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b105e1 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10601 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10621 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10641 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10661 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b10681 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106a1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000005c }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x26c01d29, 0x408d0400, 0x0218a004 }, |
{ 0x80800042, 0x27404629, 0x00b104c0, 0x00b104e0 }, |
{ 0x80800042, 0x27604629, 0x00b104e0, 0x00b10500 }, |
{ 0x80800042, 0x27804629, 0x00b10500, 0x00b10520 }, |
{ 0x80800042, 0x27a04629, 0x00b10520, 0x00b10540 }, |
{ 0x80800042, 0x27c04629, 0x00b10540, 0x00b10560 }, |
{ 0x80800042, 0x27e04629, 0x00b10560, 0x00b10580 }, |
{ 0x80800042, 0x28004629, 0x00b10580, 0x00b105a0 }, |
{ 0x80800042, 0x28204629, 0x00b105a0, 0x00b105c0 }, |
{ 0x80800042, 0x28404629, 0x00b105c0, 0x00b105e0 }, |
{ 0x80800042, 0x28604629, 0x00b105e0, 0x00b10600 }, |
{ 0x80800042, 0x28804629, 0x00b10600, 0x00b10620 }, |
{ 0x80800042, 0x28a04629, 0x00b10620, 0x00b10640 }, |
{ 0x80800042, 0x28c04629, 0x00b10640, 0x00b10660 }, |
{ 0x80800042, 0x28e04629, 0x00b10660, 0x00b10680 }, |
{ 0x80800042, 0x29004629, 0x00b10680, 0x00b106a0 }, |
{ 0x80800042, 0x29204629, 0x00b106a0, 0x00b106c0 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000028 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00800031, 0x25c01d29, 0x408d0400, 0x0288a004 }, |
{ 0x00800001, 0x27400229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x27600229, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x27800229, 0x00b10500, 0x00000000 }, |
{ 0x00800001, 0x27a00229, 0x00b10520, 0x00000000 }, |
{ 0x00800001, 0x27c00229, 0x00b10540, 0x00000000 }, |
{ 0x00800001, 0x27e00229, 0x00b10560, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x00b10580, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x00b105a0, 0x00000000 }, |
{ 0x00800001, 0x28400229, 0x00b105c0, 0x00000000 }, |
{ 0x00800001, 0x28600229, 0x00b105e0, 0x00000000 }, |
{ 0x00800001, 0x28800229, 0x00b10600, 0x00000000 }, |
{ 0x00800001, 0x28a00229, 0x00b10620, 0x00000000 }, |
{ 0x00800001, 0x28c00229, 0x00b10640, 0x00000000 }, |
{ 0x00800001, 0x28e00229, 0x00b10660, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x00b10680, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x00b106a0, 0x00000000 }, |
{ 0x00200008, 0x23e00c21, 0x004503e0, 0x00000001 }, |
{ 0x0020000c, 0x23ee3dad, 0x00450a50, 0x00020002 }, |
{ 0x00200040, 0x24003421, 0x004503e0, 0x004503ee }, |
{ 0x01000005, 0x20000d3c, 0x00210a50, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000009c }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000080 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0288a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0288a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26801d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600040, 0x29404629, 0x008d0440, 0x008d0441 }, |
{ 0x00600040, 0x29504629, 0x008d0460, 0x008d0461 }, |
{ 0x00600040, 0x29604629, 0x008d0480, 0x008d0481 }, |
{ 0x00600040, 0x29704629, 0x008d04a0, 0x008d04a1 }, |
{ 0x00600040, 0x29804629, 0x008d04c0, 0x008d04c1 }, |
{ 0x00600040, 0x29904629, 0x008d04e0, 0x008d04e1 }, |
{ 0x00600040, 0x29a04629, 0x008d0500, 0x008d0501 }, |
{ 0x00600040, 0x29b04629, 0x008d0520, 0x008d0521 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0460 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0480 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a0 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c0 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e0 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0500 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0520 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0540 }, |
{ 0x00600040, 0x29404529, 0x008d0940, 0x008d0461 }, |
{ 0x00600040, 0x29504529, 0x008d0950, 0x008d0481 }, |
{ 0x00600040, 0x29604529, 0x008d0960, 0x008d04a1 }, |
{ 0x00600040, 0x29704529, 0x008d0970, 0x008d04c1 }, |
{ 0x00600040, 0x29804529, 0x008d0980, 0x008d04e1 }, |
{ 0x00600040, 0x29904529, 0x008d0990, 0x008d0501 }, |
{ 0x00600040, 0x29a04529, 0x008d09a0, 0x008d0521 }, |
{ 0x00600040, 0x29b04529, 0x008d09b0, 0x008d0541 }, |
{ 0x00600040, 0x29c04629, 0x008d0580, 0x008d0581 }, |
{ 0x00600040, 0x29d04629, 0x008d05a0, 0x008d05a1 }, |
{ 0x00600040, 0x29e04629, 0x008d05c0, 0x008d05c1 }, |
{ 0x00600040, 0x29f04629, 0x008d05e0, 0x008d05e1 }, |
{ 0x00600040, 0x2a004629, 0x008d0600, 0x008d0601 }, |
{ 0x00600040, 0x2a104629, 0x008d0620, 0x008d0621 }, |
{ 0x00600040, 0x2a204629, 0x008d0640, 0x008d0641 }, |
{ 0x00600040, 0x2a304629, 0x008d0660, 0x008d0661 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a0 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c0 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e0 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0600 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0620 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0640 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0660 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0680 }, |
{ 0x00600040, 0x29c04529, 0x008d09c0, 0x008d05a1 }, |
{ 0x00600040, 0x29d04529, 0x008d09d0, 0x008d05c1 }, |
{ 0x00600040, 0x29e04529, 0x008d09e0, 0x008d05e1 }, |
{ 0x00600040, 0x29f04529, 0x008d09f0, 0x008d0601 }, |
{ 0x00600040, 0x2a004529, 0x008d0a00, 0x008d0621 }, |
{ 0x00600040, 0x2a104529, 0x008d0a10, 0x008d0641 }, |
{ 0x00600040, 0x2a204529, 0x008d0a20, 0x008d0661 }, |
{ 0x00600040, 0x2a304529, 0x008d0a30, 0x008d0681 }, |
{ 0x00800008, 0x29402d29, 0x00b10940, 0x00020002 }, |
{ 0x00800008, 0x29602d29, 0x00b10960, 0x00020002 }, |
{ 0x00800008, 0x29802d29, 0x00b10980, 0x00020002 }, |
{ 0x00800008, 0x29a02d29, 0x00b109a0, 0x00020002 }, |
{ 0x00800008, 0x29c02d29, 0x00b109c0, 0x00020002 }, |
{ 0x00800008, 0x29e02d29, 0x00b109e0, 0x00020002 }, |
{ 0x00800008, 0x2a002d29, 0x00b10a00, 0x00020002 }, |
{ 0x00800008, 0x2a202d29, 0x00b10a20, 0x00020002 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000062 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0248a006 }, |
{ 0x00800042, 0x29404629, 0x00ad0440, 0x00ad0441 }, |
{ 0x00800042, 0x29604629, 0x00ad0460, 0x00ad0461 }, |
{ 0x00800042, 0x29804629, 0x00ad0480, 0x00ad0481 }, |
{ 0x00800042, 0x29a04629, 0x00ad04a0, 0x00ad04a1 }, |
{ 0x00800042, 0x29c04629, 0x00ad0580, 0x00ad0581 }, |
{ 0x00800042, 0x29e04629, 0x00ad05a0, 0x00ad05a1 }, |
{ 0x00800042, 0x2a004629, 0x00ad05c0, 0x00ad05c1 }, |
{ 0x00800042, 0x2a204629, 0x00ad05e0, 0x00ad05e1 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004a }, |
{ 0x01000005, 0x20000d3c, 0x00210a52, 0x00000002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007001f }, |
{ 0x00800031, 0x24401d29, 0x408d0400, 0x0288a005 }, |
{ 0x00800031, 0x25801d29, 0x408d0400, 0x0288a006 }, |
{ 0x00000040, 0x24040c21, 0x00210404, 0x00000008 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0000001f }, |
{ 0x00800031, 0x25401d29, 0x408d0400, 0x0218a005 }, |
{ 0x00800031, 0x26801d29, 0x408d0400, 0x0218a006 }, |
{ 0x00600042, 0x29404629, 0x008d0440, 0x008d0460 }, |
{ 0x00600042, 0x29504629, 0x008d0460, 0x008d0480 }, |
{ 0x00600042, 0x29604629, 0x008d0480, 0x008d04a0 }, |
{ 0x00600042, 0x29704629, 0x008d04a0, 0x008d04c0 }, |
{ 0x00600042, 0x29804629, 0x008d04c0, 0x008d04e0 }, |
{ 0x00600042, 0x29904629, 0x008d04e0, 0x008d0500 }, |
{ 0x00600042, 0x29a04629, 0x008d0500, 0x008d0520 }, |
{ 0x00600042, 0x29b04629, 0x008d0520, 0x008d0540 }, |
{ 0x00600042, 0x29c04629, 0x008d0580, 0x008d05a0 }, |
{ 0x00600042, 0x29d04629, 0x008d05a0, 0x008d05c0 }, |
{ 0x00600042, 0x29e04629, 0x008d05c0, 0x008d05e0 }, |
{ 0x00600042, 0x29f04629, 0x008d05e0, 0x008d0600 }, |
{ 0x00600042, 0x2a004629, 0x008d0600, 0x008d0620 }, |
{ 0x00600042, 0x2a104629, 0x008d0620, 0x008d0640 }, |
{ 0x00600042, 0x2a204629, 0x008d0640, 0x008d0660 }, |
{ 0x00600042, 0x2a304629, 0x008d0660, 0x008d0680 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00000001, 0x24080061, 0x00000000, 0x0007000f }, |
{ 0x00800031, 0x24801d29, 0x408d0400, 0x0248a005 }, |
{ 0x00800031, 0x25001d29, 0x408d0400, 0x0248a006 }, |
{ 0x00800001, 0x29400229, 0x00ad0480, 0x00000000 }, |
{ 0x00800001, 0x29600229, 0x00ad04a0, 0x00000000 }, |
{ 0x00800001, 0x29800229, 0x00ad04c0, 0x00000000 }, |
{ 0x00800001, 0x29a00229, 0x00ad04e0, 0x00000000 }, |
{ 0x00800001, 0x29c00229, 0x00ad0500, 0x00000000 }, |
{ 0x00800001, 0x29e00229, 0x00ad0520, 0x00000000 }, |
{ 0x00800001, 0x2a000229, 0x00ad0540, 0x00000000 }, |
{ 0x00800001, 0x2a200229, 0x00ad0560, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10a80, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10aa0, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10ac0, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10ae0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10b00, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10b20, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10b40, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10b60, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10b80, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10ba0, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10bc0, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10be0, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c00, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10c20, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800040, 0x274045ad, 0x00b10a60, 0x00b20740 }, |
{ 0x00800040, 0x276045ad, 0x00b10b60, 0x00b20760 }, |
{ 0x00800040, 0x278045ad, 0x00b10a80, 0x00b20780 }, |
{ 0x00800040, 0x27a045ad, 0x00b10b80, 0x00b207a0 }, |
{ 0x00800040, 0x27c045ad, 0x00b10aa0, 0x00b207c0 }, |
{ 0x00800040, 0x27e045ad, 0x00b10ba0, 0x00b207e0 }, |
{ 0x00800040, 0x280045ad, 0x00b10ac0, 0x00b20800 }, |
{ 0x00800040, 0x282045ad, 0x00b10bc0, 0x00b20820 }, |
{ 0x00800040, 0x284045ad, 0x00b10ae0, 0x00b20840 }, |
{ 0x00800040, 0x286045ad, 0x00b10be0, 0x00b20860 }, |
{ 0x00800040, 0x288045ad, 0x00b10b00, 0x00b20880 }, |
{ 0x00800040, 0x28a045ad, 0x00b10c00, 0x00b208a0 }, |
{ 0x00800040, 0x28c045ad, 0x00b10b20, 0x00b208c0 }, |
{ 0x00800040, 0x28e045ad, 0x00b10c20, 0x00b208e0 }, |
{ 0x00800040, 0x290045ad, 0x00b10b40, 0x00b20900 }, |
{ 0x00800040, 0x292045ad, 0x00b10c40, 0x00b20920 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x474001b1, 0x00b10740, 0x00000000 }, |
{ 0x80800001, 0x476001b1, 0x00b10760, 0x00000000 }, |
{ 0x80800001, 0x478001b1, 0x00b10780, 0x00000000 }, |
{ 0x80800001, 0x47a001b1, 0x00b107a0, 0x00000000 }, |
{ 0x80800001, 0x47c001b1, 0x00b107c0, 0x00000000 }, |
{ 0x80800001, 0x47e001b1, 0x00b107e0, 0x00000000 }, |
{ 0x80800001, 0x480001b1, 0x00b10800, 0x00000000 }, |
{ 0x80800001, 0x482001b1, 0x00b10820, 0x00000000 }, |
{ 0x80800001, 0x484001b1, 0x00b10840, 0x00000000 }, |
{ 0x80800001, 0x486001b1, 0x00b10860, 0x00000000 }, |
{ 0x80800001, 0x488001b1, 0x00b10880, 0x00000000 }, |
{ 0x80800001, 0x48a001b1, 0x00b108a0, 0x00000000 }, |
{ 0x80800001, 0x48c001b1, 0x00b108c0, 0x00000000 }, |
{ 0x80800001, 0x48e001b1, 0x00b108e0, 0x00000000 }, |
{ 0x80800001, 0x490001b1, 0x00b10900, 0x00000000 }, |
{ 0x80800001, 0x492001b1, 0x00b10920, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20740, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20760, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20780, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b207a0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b207c0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b207e0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20800, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20820, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20840, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20860, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20880, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b208a0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b208c0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b208e0, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20900, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20920, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01c21, 0x004503e0, 0x00000001 }, |
{ 0x00800040, 0x294025ad, 0x00b10c60, 0x00b10940 }, |
{ 0x00800040, 0x296025ad, 0x00b10c80, 0x00b10960 }, |
{ 0x00800040, 0x298025ad, 0x00b10ca0, 0x00b10980 }, |
{ 0x00800040, 0x29a025ad, 0x00b10cc0, 0x00b109a0 }, |
{ 0x80800001, 0x494001b1, 0x00b10940, 0x00000000 }, |
{ 0x80800001, 0x496001b1, 0x00b10960, 0x00000000 }, |
{ 0x80800001, 0x498001b1, 0x00b10980, 0x00000000 }, |
{ 0x80800001, 0x49a001b1, 0x00b109a0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20940, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20960, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20980, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b209a0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x00800040, 0x29c025a9, 0x00b10ce0, 0x00b109c0 }, |
{ 0x00800040, 0x29e025a9, 0x00b10d00, 0x00b109e0 }, |
{ 0x00800040, 0x2a0025a9, 0x00b10d20, 0x00b10a00 }, |
{ 0x00800040, 0x2a2025a9, 0x00b10d40, 0x00b10a20 }, |
{ 0x80800001, 0x49c001b1, 0x00b109c0, 0x00000000 }, |
{ 0x80800001, 0x49e001b1, 0x00b109e0, 0x00000000 }, |
{ 0x80800001, 0x4a0001b1, 0x00b10a00, 0x00000000 }, |
{ 0x80800001, 0x4a2001b1, 0x00b10a20, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b209c0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b209e0, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a00, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20a20, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_intra.g4b |
---|
0,0 → 1,313 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f }, |
{ 0x00000005, 0x2da42d29, 0x00210a48, 0x60006000 }, |
{ 0x00000008, 0x2da42d29, 0x00210da4, 0x000d000d }, |
{ 0x00000001, 0x2da60169, 0x00000000, 0x00080008 }, |
{ 0x00000008, 0x2da42529, 0x00210da6, 0x00210da4 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000009 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000005 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000001 }, |
{ 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 }, |
{ 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 }, |
{ 0x00800001, 0x2e000229, 0x00b10020, 0x00000000 }, |
{ 0x00800001, 0x2e200229, 0x00b10030, 0x00000000 }, |
{ 0x00800001, 0x2e400229, 0x00b10040, 0x00000000 }, |
{ 0x00800001, 0x2e600229, 0x00b10050, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a1 }, |
{ 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000009b }, |
{ 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000095 }, |
{ 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000008f }, |
{ 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000089 }, |
{ 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000083 }, |
{ 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000008f }, |
{ 0x00600040, 0x2a602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2a802dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2aa02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2ac02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2ae02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2b002dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2b202dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2b402dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000085 }, |
{ 0x00600040, 0x2a702dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2a902dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2ab02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2ad02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2af02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2b102dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2b302dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2b502dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000007b }, |
{ 0x00600040, 0x2b602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2b802dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2ba02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2bc02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2be02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2c002dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2c202dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2c402dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000071 }, |
{ 0x00600040, 0x2b702dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2b902dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2bb02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2bd02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2bf02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2c102dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2c302dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2c502dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000067 }, |
{ 0x00800040, 0x2c602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00800040, 0x2c802dad, 0x00ae0440, 0x00800080 }, |
{ 0x00800040, 0x2ca02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00800040, 0x2cc02dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000061 }, |
{ 0x00800040, 0x2ce02dad, 0x00ae0400, 0x00800080 }, |
{ 0x00800040, 0x2d002dad, 0x00ae0440, 0x00800080 }, |
{ 0x00800040, 0x2d202dad, 0x00ae0480, 0x00800080 }, |
{ 0x00800040, 0x2d402dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x4a6001b1, 0x00b10a60, 0x00000000 }, |
{ 0x80800001, 0x4a8001b1, 0x00b10a80, 0x00000000 }, |
{ 0x80800001, 0x4aa001b1, 0x00b10aa0, 0x00000000 }, |
{ 0x80800001, 0x4ac001b1, 0x00b10ac0, 0x00000000 }, |
{ 0x80800001, 0x4ae001b1, 0x00b10ae0, 0x00000000 }, |
{ 0x80800001, 0x4b0001b1, 0x00b10b00, 0x00000000 }, |
{ 0x80800001, 0x4b2001b1, 0x00b10b20, 0x00000000 }, |
{ 0x80800001, 0x4b4001b1, 0x00b10b40, 0x00000000 }, |
{ 0x80800001, 0x4b6001b1, 0x00b10b60, 0x00000000 }, |
{ 0x80800001, 0x4b8001b1, 0x00b10b80, 0x00000000 }, |
{ 0x80800001, 0x4ba001b1, 0x00b10ba0, 0x00000000 }, |
{ 0x80800001, 0x4bc001b1, 0x00b10bc0, 0x00000000 }, |
{ 0x80800001, 0x4be001b1, 0x00b10be0, 0x00000000 }, |
{ 0x80800001, 0x4c0001b1, 0x00b10c00, 0x00000000 }, |
{ 0x80800001, 0x4c2001b1, 0x00b10c20, 0x00000000 }, |
{ 0x80800001, 0x4c4001b1, 0x00b10c40, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20a80, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20aa0, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20ac0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b20ae0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b20b00, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20b20, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20b40, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20b60, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20b80, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20ba0, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b20bc0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b20be0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b20c00, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20c20, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20b60, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a80, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20b80, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b20aa0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b20ba0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20ac0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20bc0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20ae0, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20be0, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20b00, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b20c00, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b20b20, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b20c20, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20b40, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05902000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01d21, 0x00450a4c, 0x00000001 }, |
{ 0x80800001, 0x4c6001b1, 0x00b10c60, 0x00000000 }, |
{ 0x80800001, 0x4c8001b1, 0x00b10c80, 0x00000000 }, |
{ 0x80800001, 0x4ca001b1, 0x00b10ca0, 0x00000000 }, |
{ 0x80800001, 0x4cc001b1, 0x00b10cc0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20c60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20c80, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20ca0, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20cc0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302001 }, |
{ 0x80800001, 0x4ce001b1, 0x00b10ce0, 0x00000000 }, |
{ 0x80800001, 0x4d0001b1, 0x00b10d00, 0x00000000 }, |
{ 0x80800001, 0x4d2001b1, 0x00b10d20, 0x00000000 }, |
{ 0x80800001, 0x4d4001b1, 0x00b10d40, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20ce0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20d00, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20d20, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20d40, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d03e0, 0x05302002 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00000001, 0x2de001ad, 0x00218000, 0x00000000 }, |
{ 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 }, |
{ 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 }, |
{ 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 }, |
{ 0x00000041, 0x2e8025a5, 0x00210de0, 0x00210da4 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 }, |
{ 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 }, |
{ 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 }, |
{ 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 }, |
{ 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 }, |
{ 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 }, |
{ 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001a }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b }, |
{ 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00000001, 0x2a000001, 0x00210200, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 }, |
{ 0x00000001, 0x22000020, 0x00210a00, 0x00000000 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 }, |
/drivers/video/i965/shaders/mpeg2/vld/frame_intra.g4b.gen5 |
---|
0,0 → 1,313 |
{ 0x00600001, 0x2a400021, 0x008d03e0, 0x00000000 }, |
{ 0x00200001, 0x23e00121, 0x00450a4c, 0x00000000 }, |
{ 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f }, |
{ 0x00000005, 0x2da42d29, 0x00210a48, 0x60006000 }, |
{ 0x00000008, 0x2da42d29, 0x00210da4, 0x000d000d }, |
{ 0x00000001, 0x2da60169, 0x00000000, 0x00080008 }, |
{ 0x00000008, 0x2da42529, 0x00210da6, 0x00210da4 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 }, |
{ 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 }, |
{ 0x00800001, 0x2e000229, 0x00b10020, 0x00000000 }, |
{ 0x00800001, 0x2e200229, 0x00b10030, 0x00000000 }, |
{ 0x00800001, 0x2e400229, 0x00b10040, 0x00000000 }, |
{ 0x00800001, 0x2e600229, 0x00b10050, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000142 }, |
{ 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000136 }, |
{ 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000012a }, |
{ 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000011e }, |
{ 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000112 }, |
{ 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000106 }, |
{ 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000011e }, |
{ 0x00600040, 0x2a602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2a802dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2aa02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2ac02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2ae02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2b002dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2b202dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2b402dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000010a }, |
{ 0x00600040, 0x2a702dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2a902dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2ab02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2ad02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2af02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2b102dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2b302dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2b502dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000f6 }, |
{ 0x00600040, 0x2b602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2b802dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2ba02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2bc02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2be02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2c002dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2c202dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2c402dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000e2 }, |
{ 0x00600040, 0x2b702dad, 0x00ae0400, 0x00800080 }, |
{ 0x00600040, 0x2b902dad, 0x00ae0420, 0x00800080 }, |
{ 0x00600040, 0x2bb02dad, 0x00ae0440, 0x00800080 }, |
{ 0x00600040, 0x2bd02dad, 0x00ae0460, 0x00800080 }, |
{ 0x00600040, 0x2bf02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00600040, 0x2c102dad, 0x00ae04a0, 0x00800080 }, |
{ 0x00600040, 0x2c302dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00600040, 0x2c502dad, 0x00ae04e0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000ce }, |
{ 0x00800040, 0x2c602dad, 0x00ae0400, 0x00800080 }, |
{ 0x00800040, 0x2c802dad, 0x00ae0440, 0x00800080 }, |
{ 0x00800040, 0x2ca02dad, 0x00ae0480, 0x00800080 }, |
{ 0x00800040, 0x2cc02dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000c2 }, |
{ 0x00800040, 0x2ce02dad, 0x00ae0400, 0x00800080 }, |
{ 0x00800040, 0x2d002dad, 0x00ae0440, 0x00800080 }, |
{ 0x00800040, 0x2d202dad, 0x00ae0480, 0x00800080 }, |
{ 0x00800040, 0x2d402dad, 0x00ae04c0, 0x00800080 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x000f000f }, |
{ 0x80800001, 0x4a6001b1, 0x00b10a60, 0x00000000 }, |
{ 0x80800001, 0x4a8001b1, 0x00b10a80, 0x00000000 }, |
{ 0x80800001, 0x4aa001b1, 0x00b10aa0, 0x00000000 }, |
{ 0x80800001, 0x4ac001b1, 0x00b10ac0, 0x00000000 }, |
{ 0x80800001, 0x4ae001b1, 0x00b10ae0, 0x00000000 }, |
{ 0x80800001, 0x4b0001b1, 0x00b10b00, 0x00000000 }, |
{ 0x80800001, 0x4b2001b1, 0x00b10b20, 0x00000000 }, |
{ 0x80800001, 0x4b4001b1, 0x00b10b40, 0x00000000 }, |
{ 0x80800001, 0x4b6001b1, 0x00b10b60, 0x00000000 }, |
{ 0x80800001, 0x4b8001b1, 0x00b10b80, 0x00000000 }, |
{ 0x80800001, 0x4ba001b1, 0x00b10ba0, 0x00000000 }, |
{ 0x80800001, 0x4bc001b1, 0x00b10bc0, 0x00000000 }, |
{ 0x80800001, 0x4be001b1, 0x00b10be0, 0x00000000 }, |
{ 0x80800001, 0x4c0001b1, 0x00b10c00, 0x00000000 }, |
{ 0x80800001, 0x4c2001b1, 0x00b10c20, 0x00000000 }, |
{ 0x80800001, 0x4c4001b1, 0x00b10c40, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a42, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20a80, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20aa0, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20ac0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b20ae0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b20b00, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20b20, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20b40, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20b60, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20b80, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20ba0, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b20bc0, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b20be0, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b20c00, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20c20, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000020 }, |
{ 0x00800001, 0x20200232, 0x00b20a60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20b60, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20a80, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20b80, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b20aa0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b20ba0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00b20ac0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00b20bc0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00b20ae0, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00b20be0, 0x00000000 }, |
{ 0x00800001, 0x20c00232, 0x00b20b00, 0x00000000 }, |
{ 0x00800001, 0x20d00232, 0x00b20c00, 0x00000000 }, |
{ 0x00800001, 0x20e00232, 0x00b20b20, 0x00000000 }, |
{ 0x00800001, 0x20f00232, 0x00b20c20, 0x00000000 }, |
{ 0x00800001, 0x21000232, 0x00b20b40, 0x00000000 }, |
{ 0x00800001, 0x21100232, 0x00b20c40, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x12082000 }, |
{ 0x00000001, 0x23e80061, 0x00000000, 0x00070007 }, |
{ 0x00200008, 0x23e01d21, 0x00450a4c, 0x00000001 }, |
{ 0x80800001, 0x4c6001b1, 0x00b10c60, 0x00000000 }, |
{ 0x80800001, 0x4c8001b1, 0x00b10c80, 0x00000000 }, |
{ 0x80800001, 0x4ca001b1, 0x00b10ca0, 0x00000000 }, |
{ 0x80800001, 0x4cc001b1, 0x00b10cc0, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20c60, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20c80, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20ca0, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20cc0, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082001 }, |
{ 0x80800001, 0x4ce001b1, 0x00b10ce0, 0x00000000 }, |
{ 0x80800001, 0x4d0001b1, 0x00b10d00, 0x00000000 }, |
{ 0x80800001, 0x4d2001b1, 0x00b10d20, 0x00000000 }, |
{ 0x80800001, 0x4d4001b1, 0x00b10d40, 0x00000000 }, |
{ 0x00800001, 0x20200232, 0x00b20ce0, 0x00000000 }, |
{ 0x00800001, 0x20300232, 0x00b20d00, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b20d20, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b20d40, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x508d03e0, 0x06082002 }, |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00000001, 0x2de001ad, 0x00218000, 0x00000000 }, |
{ 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 }, |
{ 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 }, |
{ 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 }, |
{ 0x00000041, 0x2e8025a5, 0x00210de0, 0x00210da4 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 }, |
{ 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 }, |
{ 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 }, |
{ 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 }, |
{ 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 }, |
{ 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 }, |
{ 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b }, |
{ 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00000001, 0x2a000001, 0x00210200, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 }, |
{ 0x00000001, 0x22000020, 0x00210a00, 0x00000000 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 }, |
/drivers/video/i965/shaders/mpeg2/vld/lib.g4b |
---|
0,0 → 1,307 |
{ 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000011 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000009 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000005 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000001 }, |
{ 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 }, |
{ 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 }, |
{ 0x00800001, 0x2e000229, 0x00b10060, 0x00000000 }, |
{ 0x00800001, 0x2e200229, 0x00b10070, 0x00000000 }, |
{ 0x00800001, 0x2e400229, 0x00b10080, 0x00000000 }, |
{ 0x00800001, 0x2e600229, 0x00b10090, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x08000800 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000a1 }, |
{ 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x04000400 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000099 }, |
{ 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x02000200 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000091 }, |
{ 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x01000100 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000089 }, |
{ 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00800080 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000081 }, |
{ 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00400040 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000079 }, |
{ 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x08000800 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00600001, 0x2a600169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2a800169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2aa00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2ac00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2ae00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b000169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b200169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b400169, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000077 }, |
{ 0x00600001, 0x2a6001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x2a8001ad, 0x00ae0420, 0x00000000 }, |
{ 0x00600001, 0x2aa001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00600001, 0x2ac001ad, 0x00ae0460, 0x00000000 }, |
{ 0x00600001, 0x2ae001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00600001, 0x2b0001ad, 0x00ae04a0, 0x00000000 }, |
{ 0x00600001, 0x2b2001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00600001, 0x2b4001ad, 0x00ae04e0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x04000400 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00600001, 0x2a700169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2a900169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2ab00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2ad00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2af00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b100169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b300169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b500169, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000061 }, |
{ 0x00600001, 0x2a7001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x2a9001ad, 0x00ae0420, 0x00000000 }, |
{ 0x00600001, 0x2ab001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00600001, 0x2ad001ad, 0x00ae0460, 0x00000000 }, |
{ 0x00600001, 0x2af001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00600001, 0x2b1001ad, 0x00ae04a0, 0x00000000 }, |
{ 0x00600001, 0x2b3001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00600001, 0x2b5001ad, 0x00ae04e0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x02000200 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00600001, 0x2b600169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b800169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2ba00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2bc00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2be00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c000169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c200169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c400169, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000004b }, |
{ 0x00600001, 0x2b6001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x2b8001ad, 0x00ae0420, 0x00000000 }, |
{ 0x00600001, 0x2ba001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00600001, 0x2bc001ad, 0x00ae0460, 0x00000000 }, |
{ 0x00600001, 0x2be001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00600001, 0x2c0001ad, 0x00ae04a0, 0x00000000 }, |
{ 0x00600001, 0x2c2001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00600001, 0x2c4001ad, 0x00ae04e0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x01000100 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00600001, 0x2b700169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b900169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2bb00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2bd00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2bf00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c100169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c300169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c500169, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000035 }, |
{ 0x00600001, 0x2b7001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x2b9001ad, 0x00ae0420, 0x00000000 }, |
{ 0x00600001, 0x2bb001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00600001, 0x2bd001ad, 0x00ae0460, 0x00000000 }, |
{ 0x00600001, 0x2bf001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00600001, 0x2c1001ad, 0x00ae04a0, 0x00000000 }, |
{ 0x00600001, 0x2c3001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00600001, 0x2c5001ad, 0x00ae04e0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x00800080 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00800001, 0x2c600169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2c800169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2ca00169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2cc00169, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000023 }, |
{ 0x00800001, 0x2c6001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00800001, 0x2c8001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00800001, 0x2ca001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00800001, 0x2cc001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x00400040 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000005 }, |
{ 0x00800001, 0x2ce00169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2d000169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2d200169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2d400169, 0x00000000, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000016 }, |
{ 0x00800001, 0x2ce001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00800001, 0x2d0001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00800001, 0x2d2001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00800001, 0x2d4001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 }, |
{ 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 }, |
{ 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 }, |
{ 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 }, |
{ 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 }, |
{ 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 }, |
{ 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 }, |
{ 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 }, |
{ 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000001a }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b }, |
{ 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00000001, 0x2a000001, 0x00210200, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 }, |
{ 0x00000001, 0x22000020, 0x00210a00, 0x00000000 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 }, |
/drivers/video/i965/shaders/mpeg2/vld/lib.g4b.gen5 |
---|
0,0 → 1,307 |
{ 0x00000005, 0x2da02d29, 0x00210a48, 0x001f001f }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00200020 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00090009 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000022 }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00110011 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x05000010, 0x20002d3c, 0x00210da0, 0x00190019 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000010 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffe7ffe7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00030003 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x00400040 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000012 }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xfff7fff7 }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00010001 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x000a000a }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00000040, 0x2da03d29, 0x00210da0, 0xffefffef }, |
{ 0x00000009, 0x2da02d29, 0x00210da0, 0x00020002 }, |
{ 0x00000040, 0x2da02d29, 0x00210da0, 0x001c001c }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000002 }, |
{ 0x00000009, 0x2da00d29, 0x00210da0, 0x00000001 }, |
{ 0x00000001, 0x2dc00129, 0x00210da0, 0x00000000 }, |
{ 0x00800001, 0x2e000229, 0x00b10060, 0x00000000 }, |
{ 0x00800001, 0x2e200229, 0x00b10070, 0x00000000 }, |
{ 0x00800001, 0x2e400229, 0x00b10080, 0x00000000 }, |
{ 0x00800001, 0x2e600229, 0x00b10090, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x03f003e0 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x08000800 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000142 }, |
{ 0x00800001, 0x270001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x272001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x274001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x276001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x04000400 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000132 }, |
{ 0x00800001, 0x278001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x27a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x27c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x27e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x02000200 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000122 }, |
{ 0x00800001, 0x280001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x282001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x284001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x286001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x01000100 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000112 }, |
{ 0x00800001, 0x288001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x28a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x28c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x28e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00800080 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000102 }, |
{ 0x00800001, 0x290001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x292001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x294001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x296001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x01000005, 0x20002d3c, 0x00210a48, 0x00400040 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000f2 }, |
{ 0x00800001, 0x298001ad, 0x00ae0e80, 0x00000000 }, |
{ 0x00800001, 0x29a001ad, 0x00ae0ec0, 0x00000000 }, |
{ 0x00800001, 0x29c001ad, 0x00ae0f00, 0x00000000 }, |
{ 0x00800001, 0x29e001ad, 0x00ae0f40, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x06f006e0 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x08000800 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00600001, 0x2a600169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2a800169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2aa00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2ac00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2ae00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b000169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b200169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b400169, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000ee }, |
{ 0x00600001, 0x2a6001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x2a8001ad, 0x00ae0420, 0x00000000 }, |
{ 0x00600001, 0x2aa001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00600001, 0x2ac001ad, 0x00ae0460, 0x00000000 }, |
{ 0x00600001, 0x2ae001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00600001, 0x2b0001ad, 0x00ae04a0, 0x00000000 }, |
{ 0x00600001, 0x2b2001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00600001, 0x2b4001ad, 0x00ae04e0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x04000400 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00600001, 0x2a700169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2a900169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2ab00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2ad00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2af00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b100169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b300169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b500169, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x000000c2 }, |
{ 0x00600001, 0x2a7001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x2a9001ad, 0x00ae0420, 0x00000000 }, |
{ 0x00600001, 0x2ab001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00600001, 0x2ad001ad, 0x00ae0460, 0x00000000 }, |
{ 0x00600001, 0x2af001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00600001, 0x2b1001ad, 0x00ae04a0, 0x00000000 }, |
{ 0x00600001, 0x2b3001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00600001, 0x2b5001ad, 0x00ae04e0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x02000200 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00600001, 0x2b600169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b800169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2ba00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2bc00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2be00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c000169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c200169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c400169, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000096 }, |
{ 0x00600001, 0x2b6001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x2b8001ad, 0x00ae0420, 0x00000000 }, |
{ 0x00600001, 0x2ba001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00600001, 0x2bc001ad, 0x00ae0460, 0x00000000 }, |
{ 0x00600001, 0x2be001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00600001, 0x2c0001ad, 0x00ae04a0, 0x00000000 }, |
{ 0x00600001, 0x2c2001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00600001, 0x2c4001ad, 0x00ae04e0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x01000100 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00600001, 0x2b700169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2b900169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2bb00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2bd00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2bf00169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c100169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c300169, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x2c500169, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000006a }, |
{ 0x00600001, 0x2b7001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x2b9001ad, 0x00ae0420, 0x00000000 }, |
{ 0x00600001, 0x2bb001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00600001, 0x2bd001ad, 0x00ae0460, 0x00000000 }, |
{ 0x00600001, 0x2bf001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00600001, 0x2c1001ad, 0x00ae04a0, 0x00000000 }, |
{ 0x00600001, 0x2c3001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00600001, 0x2c5001ad, 0x00ae04e0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x00800080 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00800001, 0x2c600169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2c800169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2ca00169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2cc00169, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00800080 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000046 }, |
{ 0x00800001, 0x2c6001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00800001, 0x2c8001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00800001, 0x2ca001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00800001, 0x2cc001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x02000005, 0x20002d3c, 0x00210a48, 0x00400040 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00800001, 0x2ce00169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2d000169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2d200169, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x2d400169, 0x00000000, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00000001, 0x2fa00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000002c }, |
{ 0x00800001, 0x2ce001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00800001, 0x2d0001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00800001, 0x2d2001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00800001, 0x2d4001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00000040, 0x34000c20, 0x00210fc8, 0x00000020 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2e8025a5, 0x008d8000, 0x008d0e00 }, |
{ 0x00802041, 0x2e8024a5, 0x008d0e80, 0x008c0da0 }, |
{ 0x0080200c, 0x2e802ca5, 0x008d0e80, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2ec025a5, 0x008d8000, 0x008d0e20 }, |
{ 0x00802041, 0x2ec024a5, 0x008d0ec0, 0x008c0da0 }, |
{ 0x0080200c, 0x2ec02ca5, 0x008d0ec0, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f0025a5, 0x008d8000, 0x008d0e40 }, |
{ 0x00802041, 0x2f0024a5, 0x008d0f00, 0x008c0da0 }, |
{ 0x0080200c, 0x2f002ca5, 0x008d0f00, 0x00040004 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802041, 0x2f4025a5, 0x008d8000, 0x008d0e60 }, |
{ 0x00802041, 0x2f4024a5, 0x008d0f40, 0x008c0da0 }, |
{ 0x0080200c, 0x2f402ca5, 0x008d0f40, 0x00040004 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00000400 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00000400 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00000400 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00000400 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x0000000b }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x0000000b }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x0000000b }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x0000000b }, |
{ 0x00800001, 0x2dc001ad, 0x00ae0400, 0x00000000 }, |
{ 0x00800001, 0x2de001ad, 0x00ae0440, 0x00000000 }, |
{ 0x00800001, 0x2e0001ad, 0x00ae0480, 0x00000000 }, |
{ 0x00800001, 0x2e2001ad, 0x00ae04c0, 0x00000000 }, |
{ 0x00000001, 0x2a000001, 0x00210200, 0x00000000 }, |
{ 0x00000001, 0x22000060, 0x00000000, 0x0db00da0 }, |
{ 0x00000001, 0x2fc00001, 0x00001400, 0x00000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000014 }, |
{ 0x00802040, 0x24000ca5, 0x008d0400, 0x00080000 }, |
{ 0x00802040, 0x24400ca5, 0x008d0440, 0x00080000 }, |
{ 0x00802040, 0x24800ca5, 0x008d0480, 0x00080000 }, |
{ 0x00802040, 0x24c00ca5, 0x008d04c0, 0x00080000 }, |
{ 0x00802008, 0x24000ca5, 0x008d0400, 0x00000014 }, |
{ 0x00802008, 0x24400ca5, 0x008d0440, 0x00000014 }, |
{ 0x00802008, 0x24800ca5, 0x008d0480, 0x00000014 }, |
{ 0x00802008, 0x24c00ca5, 0x008d04c0, 0x00000014 }, |
{ 0x00000001, 0x22000020, 0x00210a00, 0x00000000 }, |
{ 0x00000040, 0x34000c20, 0x00210fa0, 0x00000020 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x240814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x242814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x244814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x246814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x248814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24a814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24c814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24e814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241014a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243014a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245014a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247014a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249014a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b014a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d014a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f014a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x22000c00, 0x00210200, 0x00200020 }, |
{ 0x00802054, 0x250015a5, 0x008d8000, 0x008d00a0 }, |
{ 0x00802054, 0x254015a5, 0x008d8000, 0x008d00e0 }, |
{ 0x00802054, 0x258015a5, 0x008d8000, 0x008d0120 }, |
{ 0x00802054, 0x25c015a5, 0x008d8000, 0x008d0160 }, |
{ 0x00802054, 0x260015a5, 0x008d8000, 0x008d01a0 }, |
{ 0x00802054, 0x264015a5, 0x008d8000, 0x008d01e0 }, |
{ 0x00802054, 0x268015a5, 0x008d8000, 0x008d0220 }, |
{ 0x00802054, 0x26c015a5, 0x008d8000, 0x008d0260 }, |
{ 0x00200040, 0x241814a5, 0x00800500, 0x00800510 }, |
{ 0x00200040, 0x243814a5, 0x00800540, 0x00800550 }, |
{ 0x00200040, 0x245814a5, 0x00800580, 0x00800590 }, |
{ 0x00200040, 0x247814a5, 0x008005c0, 0x008005d0 }, |
{ 0x00200040, 0x249814a5, 0x00800600, 0x00800610 }, |
{ 0x00200040, 0x24b814a5, 0x00800640, 0x00800650 }, |
{ 0x00200040, 0x24d814a5, 0x00800680, 0x00800690 }, |
{ 0x00200040, 0x24f814a5, 0x008006c0, 0x008006d0 }, |
{ 0x00000040, 0x34000c20, 0x00210fc0, 0x00000020 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/AYUV_Load_16x8.asm |
---|
0,0 → 1,53 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: AYUV_Load_16x8.asm |
//---------------------------------------------------------------- |
#include "AYUV_Load_16x8.inc" |
// In order to load 64x8 AYUV data (16x8 pixels), we need to divide the data |
// into two regions and load them separately. |
// |
// 32 byte 32 byte |
//|----------------|----------------| |
//| | | |
//| A | B |8 |
//| | | |
//| | | |
//|----------------|----------------| |
// Load the first 32x8 data block |
// Packed data block should be loaded as 32x8 pixel block |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Block origin |
shl (1) rMSGSRC.0<1>:d acc0:w 2:w { NoDDClr } // H. block origin need to be four times larger |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_YUV:ud { NoDDChk } // Block width and height (32x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_YUV(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_YUV+nBI_CURRENT_SRC_YUV:ud |
//Load the second 32x8 data block |
// Offset the origin X - move to next 32 colomns |
add (1) rMSGSRC.0<1>:d rMSGSRC.0<0;1,0>:d 32:w // Increase X origin by 8 |
// Size stays the same - 32x8 |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud // Copy message description to message header |
send (8) udSRC_YUV(8)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_YUV+nBI_CURRENT_SRC_YUV:ud |
// Give AYUV region addresses to address register |
mov (1) SRC_YUV_OFFSET<1>:ud 0x00400038*32:ud //Address registers contain starting addresses of two halves |
//Directly move the data to destination |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (16) uwDEST_Y(%1)<1> r[SRC_YUV_OFFSET,%1*32+2]<8,4>:ub |
mov (16) uwDEST_U(%1)<1> r[SRC_YUV_OFFSET,%1*32+1]<8,4>:ub |
mov (16) uwDEST_V(%1)<1> r[SRC_YUV_OFFSET,%1*32+0]<8,4>:ub |
} |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/AYUV_Load_16x8.inc |
---|
0,0 → 1,43 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: AYUV_Load_16x8.inc |
// |
// AYUV data are first loaded to bottom I/O REGION_2, then unpacked to planar data |
// and stored in top I/O REGION_1 |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block |
#define nDPR_BLOCK_SIZE_YUV nBLOCK_WIDTH_32+nBLOCK_HEIGHT_8 // Y block size 32x8 |
#define nDPR_MSG_SIZE_YUV nRESLEN_8 // # of MRF's to hold Y block data (8) |
//Temporary storage for unpacked AYUV data |
#define rUNPACK_TEMP REG(r,nTEMP0) |
.declare udUNPACK_TEMP Base=rUNPACK_TEMP ElementSize=4 SrcRegion=<8;8,1> Type=ud //1 GRF |
.declare ubUNPACK_TEMP Base=rUNPACK_TEMP ElementSize=1 SrcRegion=<32;32,1> Type=ub //1 GRF |
.declare ubBOT_Y_IO Base=REG(r,nBOT_Y) ElementSize=1 SrcRegion=REGION(32,1) Type=ub |
#define udSRC_YUV udBOT_Y_IO |
#define ubSRC_YUV ubBOT_Y_IO |
#define nSRC_YUV_REG nBOT_Y |
#define uwDEST_Y uwTOP_Y |
#define uwDEST_U uwTOP_U |
#define uwDEST_V uwTOP_V |
#define SRC_YUV_OFFSET a0.0 |
#define nSRC_REGION nREGION_1 // REGION_1 will be the source region for first kernel |
// End of AYUV_Load_16x8.inc |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/Expansion.inc |
---|
0,0 → 1,31 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: Expansion.inc |
// Number of U/V rows per block definition |
#undef nUV_NUM_OF_ROWS |
#ifdef EXPAND_9x5 |
#define nUV_NUM_OF_ROWS 6 |
#else |
#define nUV_NUM_OF_ROWS 8 |
#endif |
// Source/destination region definitions |
#undef uwDEST_U |
#undef uwDEST_V |
#if (nSRC_REGION==nREGION_1) |
#define uwDEST_U uwTOP_U |
#define uwDEST_V uwTOP_V |
#elif (nSRC_REGION==nREGION_2) |
#define uwDEST_U uwBOT_U |
#define uwDEST_V uwBOT_V |
#endif |
// End of Expansion.inc |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/IMC3_Load_8x4.asm |
---|
0,0 → 1,47 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: IMC3_Load_8x4.asm |
// |
//---------------------------------------------------------------- |
#define IMC3_LOAD_8x4 |
#include "PL3_Load.inc" |
// Load 16x8 planar Y ---------------------------------------------------------- |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
#if !defined(LOAD_UV_ONLY) |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_Y:ud // Block width and height (16x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_CURRENT_SRC_Y:ud |
#endif |
// Load 8x4 planar U and V ----------------------------------------------------- |
asr (2) rMSGSRC.0<1>:d rMSGSRC.0<2;2,1>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (8x4) |
mov (8) mMSGHDRU<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_U:ud |
mov (8) mMSGHDRV<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_V(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_V:ud |
// Convert to word-aligned format ---------------------------------------------- |
#if !defined(LOAD_UV_ONLY) |
$for (nY_NUM_OF_ROWS-1; >-1; -1) { |
mov (16) uwDEST_Y(0,%1*16)<1> ubSRC_Y(0,%1*16) |
} |
#endif |
$for (nUV_NUM_OF_ROWS/2-1; >-1; -1) { |
mov (16) uwDEST_U(0, %1*16)<1> ubSRC_U(0, %1*16) |
mov (16) uwDEST_V(0, %1*16)<1> ubSRC_V(0, %1*16) |
} |
// End of IMC3_Load_8x4 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/IMC3_Load_8x5.asm |
---|
0,0 → 1,47 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: IMC3_Load_8x5.asm |
// |
//---------------------------------------------------------------- |
#define IMC3_LOAD_8x5 |
#include "PL3_Load.inc" |
// Load 16x8 planar Y ---------------------------------------------------------- |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
#if !defined(LOAD_UV_ONLY) |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_Y:ud // Block width and height (16x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_CURRENT_SRC_Y:ud |
#endif |
// Load 8x5 planar U and V ----------------------------------------------------- |
asr (2) rMSGSRC.0<1>:d rMSGSRC.0<2;2,1>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (8x5) |
mov (8) mMSGHDRU<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_U:ud |
mov (8) mMSGHDRV<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_V(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_V:ud |
// Convert to word-aligned format ---------------------------------------------- |
#if !defined(LOAD_UV_ONLY) |
$for (nY_NUM_OF_ROWS-1; >-1; -1) { |
mov (16) uwDEST_Y(0,%1*16)<1> ubSRC_Y(0,%1*16) |
} |
#endif |
$for (nUV_NUM_OF_ROWS/2-1; >-1; -1) { |
mov (16) uwDEST_U(0, %1*16)<1> ubSRC_U(0, %1*16) |
mov (16) uwDEST_V(0, %1*16)<1> ubSRC_V(0, %1*16) |
} |
// End of IMC3_Load_8x5 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/IMC3_Load_9x5.asm |
---|
0,0 → 1,50 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: IMC3_Load_9x5.asm |
// |
//---------------------------------------------------------------- |
// This module loads 16x8 Y, 9x5 U and 9x5 V planar data blocks for CSC module |
// and stores it in byte-aligned format. |
//---------------------------------------------------------------- |
#define IMC3_LOAD_9x5 |
#include "PL3_Load.inc" |
// Load 16x8 planar Y ---------------------------------------------------------- |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
#if !defined(LOAD_UV_ONLY) |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_Y:ud // Block width and height (16x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_CURRENT_SRC_Y:ud |
#endif |
// Load 9x5 planar U and V ----------------------------------------------------- |
asr (2) rMSGSRC.0<1>:d rMSGSRC.0<2;2,1>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (12x5) |
mov (8) mMSGHDRU<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_U:ud |
mov (8) mMSGHDRV<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_V(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_V:ud |
// Convert to word-aligned format ---------------------------------------------- |
#if !defined(LOAD_UV_ONLY) |
$for (nY_NUM_OF_ROWS-1; >-1; -1) { |
mov (16) uwDEST_Y(0,%1*16)<1> ubSRC_Y(0,%1*16) |
} |
#endif |
$for(nUV_NUM_OF_ROWS-2; >-1; -1) { |
mov (16) uwDEST_U(0, %1*16)<1> ubSRC_U(0, %1*16) |
mov (16) uwDEST_V(0, %1*16)<1> ubSRC_V(0, %1*16) |
} |
// End of IMC3_Load_9x5 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/Init_All_Regs.asm |
---|
0,0 → 1,18 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#ifdef GT // to remove error messages of un-initialized GRF |
.declare udGRF_space Base=r0.0 ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
$for (7; <80; 1) { |
mov (8) udGRF_space(%1)<1> 0:ud |
} |
#else |
#endif |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/Multiple_Loop.asm |
---|
0,0 → 1,84 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
///////////////////////////////////////////////////////////////////////////////// |
// Multiple_Loop.asm |
// This lable is for satisfying component kernel build. |
// DL will remove this label and reference the real one in Multiple_Loop_Head.asm. |
#if defined(COMPONENT) |
VIDEO_PROCESSING_LOOP: |
#endif |
//===== Possible build flags for component kernels |
// 1) INC_SCALING |
// 2) INC_BLENDING |
// 3) INC_BLENDING and INC_SCALING |
// 4) (no flags) |
#define MxN_MULTIPLE_BLOCKS |
//------------------------------------------------------------------------------ |
#if defined(MxN_MULTIPLE_BLOCKS) |
// Do Multiple Block Processing ------------------------------------------------ |
// The 1st block has been processed before entering the loop |
// Processed all blocks? |
add.z.f0.0 (1) wNUM_BLKS:w wNUM_BLKS:w -1:w |
// Reached multi-block width? |
add (1) wORIX:w wORIX:w 16:w |
cmp.l.f0.1 (1) null:w wORIX:w wFRAME_ENDX:w // acc0.0 has wORIX |
#if defined(INC_SCALING) |
// Update SRC_VID_H_ORI for scaling |
mul (1) REG(r,nTEMP0):f fVIDEO_STEP_X:f 16.0:f |
add (1) fSRC_VID_H_ORI:f REG(r,nTEMP0):f fSRC_VID_H_ORI:f |
#endif |
#if defined(INC_BLENDING) |
// Update SRC_ALPHA_H_ORI for blending |
mul (1) REG(r,nTEMP0):f fALPHA_STEP_X:f 16.0:f |
add (1) fSRC_ALPHA_H_ORI:f REG(r,nTEMP0):f fSRC_ALPHA_H_ORI:f |
#endif |
(f0.0)jmpi (1) END_VIDEO_PROCESSING // All blocks are done - Exit loop |
(f0.1)jmpi (1) VIDEO_PROCESSING_LOOP // If not the end of row, goto the beginning of the loop |
//If end of row, restart Horizontal offset and calculate Vertical offsets next row. |
mov (1) wORIX:w wCOPY_ORIX:w |
add (1) wORIY:w wORIY:w 8:w |
#if defined(INC_SCALING) |
// Update SRC_VID_H_ORI and SRC_VID_V_ORI for scaling |
mov (1) fSRC_VID_H_ORI:f fFRAME_VID_ORIX:f // Reset normalised X origin to 0 for video and alpha |
mul (1) REG(r,nTEMP0):f fVIDEO_STEP_Y:f 8.0:f |
add (1) fSRC_VID_V_ORI:f REG(r,nTEMP0):f fSRC_VID_V_ORI:f |
#endif |
#if defined(INC_BLENDING) |
// Update SRC_ALPHA_H_ORI and SRC_ALPHA_V_ORI for blending |
mov (1) fSRC_ALPHA_H_ORI:f fFRAME_ALPHA_ORIX:f // Reset normalised X origin to 0 for video and alpha |
mul (1) REG(r,nTEMP0):f fALPHA_STEP_Y:f 8.0:f |
add (1) fSRC_ALPHA_V_ORI:f REG(r,nTEMP0):f fSRC_ALPHA_V_ORI:f |
#endif |
jmpi (1) VIDEO_PROCESSING_LOOP // Continue Loop |
END_VIDEO_PROCESSING: |
nop |
#endif |
END_THREAD // End of Thread |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/Multiple_Loop_Head.asm |
---|
0,0 → 1,23 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
////////////////////////////////////////////////////////////////////////////////// |
// Multiple_Loop_Head.asm |
// This code sets up the loop control for multiple blocks per thread |
mul (1) wFRAME_ENDX:w ubBLK_CNT_X:ub 16:uw { NoDDClr } // Build multi-block loop counters |
mov (1) wNUM_BLKS:w ubNUM_BLKS:ub { NoDDClr, NoDDChk } // Copy num blocks to word variable |
mov (1) wCOPY_ORIX:w wORIX:w { NoDDChk } // Copy multi-block origin in pixel |
mov (2) fFRAME_VID_ORIX<1>:f fSRC_VID_H_ORI<4;2,2>:f // Copy src video origin for scaling, and alpha origin for blending |
add (1) wFRAME_ENDX:w wFRAME_ENDX:w wORIX:w // Continue building multi-block loop counters |
VIDEO_PROCESSING_LOOP: // Loop back entry point as the biginning of the loop for multiple blocks |
// Beginning of the loop |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/NV11_Load_4x8.asm |
---|
0,0 → 1,42 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: NV11_Load_4x8.asm |
//---------------------------------------------------------------- |
#define NV11_LOAD_4x8 |
#include "PL2_Load.inc" |
// Load 16x8 NV11 Y ------------------------------------------------------------ |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
#if !defined(LOAD_UV_ONLY) |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_Y:ud // Y block width and height (16x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_CURRENT_SRC_Y:ud |
#endif |
// Load 8x8 NV11 UV ---------------------------------------------------------- |
asr (1) rMSGSRC.0<1>:d rMSGSRC.0<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (8x8) |
mov (8) mMSGHDRU<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_UV:ud |
// Convert to word-aligned format ---------------------------------------------- |
#if !defined(LOAD_UV_ONLY) |
$for (nY_NUM_OF_ROWS-1; >-1; -1) { |
mov (16) uwDEST_Y(0,%1*16)<1> ubSRC_Y(0,%1*16) |
} |
#endif |
$for (nUV_NUM_OF_ROWS/4-1; >-1; -1) { |
mov (16) uwDEST_U(0,%1*16)<1> ubSRC_U(0,%1*32)<32;16,2> |
mov (16) uwDEST_V(0,%1*16)<1> ubSRC_U(0,%1*32+1)<32;16,2> |
} |
// End of NV11_Load_4x8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/NV11_Load_5x8.asm |
---|
0,0 → 1,42 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: NV11_Load_5x8.asm |
//---------------------------------------------------------------- |
#define NV11_LOAD_5x8 |
#include "PL2_Load.inc" |
// Load 16x8 NV11 Y ------------------------------------------------------------ |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
#if !defined(LOAD_UV_ONLY) |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_Y:ud // Y block width and height (16x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_CURRENT_SRC_Y:ud |
#endif |
// Load 12x8 NV11 UV --------------------------------------------------------- |
asr (1) rMSGSRC.0<1>:d rMSGSRC.0<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (12x8) |
mov (8) mMSGHDRU<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_UV:ud |
// Convert to word-aligned format ---------------------------------------------- |
#if !defined(LOAD_UV_ONLY) |
$for (nY_NUM_OF_ROWS-1; >-1; -1) { |
mov (16) uwDEST_Y(0,%1*16)<1> ubSRC_Y(0,%1*16) |
} |
#endif |
$for (nUV_NUM_OF_ROWS/2-1; >-1; -1) { |
mov (16) uwDEST_U(0,%1*16)<1> ubSRC_U(0,%1*32)<16;8,2> |
mov (16) uwDEST_V(0,%1*16)<1> ubSRC_U(0,%1*32+1)<16;8,2> |
} |
// End of NV11_Load_5x8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/NV12_Load_8x4.asm |
---|
0,0 → 1,42 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: NV12_Load_8x4.asm |
//---------------------------------------------------------------- |
#define NV12_LOAD_8x4 |
#include "PL2_Load.inc" |
// Load 16x8 planar Y ---------------------------------------------------------- |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
#if !defined(LOAD_UV_ONLY) |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_Y:ud // Y block width and height (16x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_CURRENT_SRC_Y:ud |
#endif |
// Load 8x4 planar U and V ----------------------------------------------------- |
asr (1) rMSGSRC.1<1>:d rMSGSRC.1<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (16x4) |
mov (8) mMSGHDRU<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_UV:ud |
// Convert to word-aligned format ---------------------------------------------- |
#if !defined(LOAD_UV_ONLY) |
$for (nY_NUM_OF_ROWS-1; >-1; -1) { |
mov (16) uwDEST_Y(0,%1*16)<1> ubSRC_Y(0,%1*16) |
} |
#endif |
$for (nUV_NUM_OF_ROWS/2-1; >-1; -1) { |
mov (16) uwDEST_U(0,%1*16)<1> ubSRC_U(0,%1*32)<32;16,2> |
mov (16) uwDEST_V(0,%1*16)<1> ubSRC_U(0,%1*32+1)<32;16,2> |
} |
// End of NV12_Load_8x4 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/NV12_Load_8x5.asm |
---|
0,0 → 1,42 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: NV12_Load_8x5.asm |
//---------------------------------------------------------------- |
#define NV12_LOAD_8x5 |
#include "PL2_Load.inc" |
// Load 16x8 planar Y ---------------------------------------------------------- |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
#if !defined(LOAD_UV_ONLY) |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_Y:ud // Y block width and height (16x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_CURRENT_SRC_Y:ud |
#endif |
// Load 8x5 planar U and V ----------------------------------------------------- |
asr (1) rMSGSRC.1<1>:d rMSGSRC.1<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (16x5) |
mov (8) mMSGHDRU<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_UV:ud |
// Convert to word-aligned format ---------------------------------------------- |
#if !defined(LOAD_UV_ONLY) |
$for (nY_NUM_OF_ROWS-1; >-1; -1) { |
mov (16) uwDEST_Y(0,%1*16)<1> ubSRC_Y(0,%1*16) |
} |
#endif |
$for (nUV_NUM_OF_ROWS/2-1; >-1; -1) { |
mov (16) uwDEST_U(0,%1*16)<1> ubSRC_U(0,%1*32)<16;8,2> |
mov (16) uwDEST_V(0,%1*16)<1> ubSRC_U(0,%1*32+1)<16;8,2> |
} |
// End of NV12_Load_8x5 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/NV12_Load_9x5.asm |
---|
0,0 → 1,42 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: NV12_Load_9x5.asm |
//---------------------------------------------------------------- |
#define NV12_LOAD_9x5 |
#include "PL2_Load.inc" |
// Load 16x8 planar Y ---------------------------------------------------------- |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
#if !defined(LOAD_UV_ONLY) |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_Y:ud // Y block width and height (16x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_CURRENT_SRC_Y:ud |
#endif |
// Load 9x5 planar U and V ----------------------------------------------------- |
asr (1) rMSGSRC.1<1>:d rMSGSRC.1<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (20x5) |
mov (8) mMSGHDRU<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_UV:ud |
// Convert to word-aligned format ---------------------------------------------- |
#if !defined(LOAD_UV_ONLY) |
$for (nY_NUM_OF_ROWS-1; >-1; -1) { |
mov (16) uwDEST_Y(0,%1*16)<1> ubSRC_Y(0,%1*16) |
} |
#endif |
$for(nUV_NUM_OF_ROWS-2; >-1; -1) { |
mov (16) uwDEST_U(0,%1*16)<1> ubSRC_U(0,%1*32)<16;8,2> |
mov (16) uwDEST_V(0,%1*16)<1> ubSRC_U(0,%1*32+1)<16;8,2> |
} |
// End of NV12_Load_9x5 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/P208_Load_8x8.asm |
---|
0,0 → 1,41 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: P208_Load_8x8.asm |
//---------------------------------------------------------------- |
#define P208_LOAD_8x8 |
#include "PL2_Load.inc" |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_Y:ud // Y Block width and height (16x8) (U/V block size is the same) |
// Load 16x8 P208 Y ------------------------------------------------------------ |
#if !defined(LOAD_UV_ONLY) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_CURRENT_SRC_Y:ud |
#endif |
// Load 16x8 planar UV ----------------------------------------------------- |
mov (8) mMSGHDRU<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_UV:ud |
// Convert to word-aligned format ---------------------------------------------- |
#if !defined(LOAD_UV_ONLY) |
$for (0; <nY_NUM_OF_ROWS; 1) { |
mov (16) uwDEST_Y(0,%1*16) ubSRC_Y(0,%1*16) |
} |
#endif |
$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
mov (16) uwDEST_U(0,%1*16) ubSRC_U(0,%1*32)<32;16,2> |
mov (16) uwDEST_V(0,%1*16) ubSRC_U(0,%1*32+1)<32;16,2> |
} |
// End of P208_Load_8x8.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/P208_Load_9x8.asm |
---|
0,0 → 1,42 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: P208_Load_9x8.asm |
//---------------------------------------------------------------- |
#define P208_LOAD_9x8 |
#include "PL2_Load.inc" |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
// Load 16x8 P208 Y ------------------------------------------------------------ |
#if !defined(LOAD_UV_ONLY) |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_Y:ud // Y block width and height (16x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_CURRENT_SRC_Y:ud |
#endif |
// Load 16x8 planar UV ----------------------------------------------------- |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (20x8) |
mov (8) mMSGHDRU<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDRU udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_CURRENT_SRC_UV:ud |
// Convert to word-aligned format ---------------------------------------------- |
#if !defined(LOAD_UV_ONLY) |
$for (0; <nY_NUM_OF_ROWS; 1) { |
mov (16) uwDEST_Y(0,%1*16) ubSRC_Y(0,%1*16) |
} |
#endif |
$for (0; <nUV_NUM_OF_ROWS; 1) { |
mov (16) uwDEST_U(0,%1*16) ubSRC_U(0,%1*32)<32;16,2> |
mov (16) uwDEST_V(0,%1*16) ubSRC_U(0,%1*32+1)<32;16,2> |
} |
// End of P208_Load_9x8.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PA_Load.inc |
---|
0,0 → 1,42 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PA_Load.inc |
// |
// YUV422 data are first loaded to bottom I/O REGION_2, then unpacked to planar data |
// and stored in top I/O REGION_1 |
#undef nY_NUM_OF_ROWS |
#undef nUV_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#if defined(PA_LOAD_8x8) |
#define nDPR_BLOCK_SIZE_YUV nBLOCK_WIDTH_32+nBLOCK_HEIGHT_8 // Y block size 32x8 |
#define nDPR_MSG_SIZE_YUV nRESLEN_8 // # of MRF's to hold Y block data (8) |
#endif |
#if defined(PA_LOAD_9x8) |
#define nDPR_BLOCK_SIZE_YUV_MAIN nBLOCK_WIDTH_32+nBLOCK_HEIGHT_8 // Main YUV block size 32x8 |
#define nDPR_MSG_SIZE_YUV_MAIN nRESLEN_8 // # of MRF's to hold Y block data (8) |
#define nDPR_BLOCK_SIZE_YUV_ADDITION nBLOCK_WIDTH_4+nBLOCK_HEIGHT_8 // Additional YUV block size 4x8 |
#define nDPR_MSG_SIZE_YUV_ADDITION nRESLEN_1 // # of MRF's to hold Y block data (8) |
#endif |
#define udSRC_YUV udBOT_Y_IO |
#define nSRC_YUV_REG nBOT_Y |
#define uwDEST_Y uwTOP_Y |
#define uwDEST_U uwTOP_U |
#define uwDEST_V uwTOP_V |
#define nSRC_REGION nREGION_1 // REGION_1 will be the source region for first kernel |
// End of PA_Load.inc |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PA_Load_8x8.asm |
---|
0,0 → 1,33 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PA_Load_8x8.asm |
//---------------------------------------------------------------- |
#define PA_LOAD_8x8 |
#include "PA_Load.inc" |
// Load 16x8 packed data block |
// Packed data block should be loaded as 32x8 pixel block |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Block origin |
shl (1) rMSGSRC.0<1>:d rMSGSRC.0<0;1,0>:w 1:w // H. block origin need to be doubled |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_YUV:ud // Block width and height (32x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_YUV(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_YUV+nBI_CURRENT_SRC_YUV:ud |
// Unpack to "planar" YUV422 format in word-aligned bytes |
add (4) pCF_Y_OFFSET<1>:uw ubSRC_CF_OFFSET<4;4,1>:ub nSRC_YUV_REG*nGRFWIB:w // Initial Y,U,V offset in YUV422 block |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (16) uwDEST_Y(0, %1*16)<1> r[pCF_Y_OFFSET, %1*nGRFWIB]REGION(16,2) |
mov (8) uwDEST_U(0, %1*8)<1> r[pCF_U_OFFSET, %1*nGRFWIB]REGION(8,4) |
mov (8) uwDEST_V(0, %1*8)<1> r[pCF_V_OFFSET, %1*nGRFWIB]REGION(8,4) |
} |
// End of PA_Load_8x8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PA_Load_9x8.asm |
---|
0,0 → 1,47 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PA_Load_9x8.asm |
//---------------------------------------------------------------- |
// This module loads 16x8 Y, 9x8 U and 9x8 V planar data blocks for CSC module |
// and stores it in word-aligned format. |
//---------------------------------------------------------------- |
#define PA_LOAD_9x8 |
#include "PA_Load.inc" |
// Load 18x8 packed data block |
// Packed data block should be loaded as 36x8 pixel block |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Block origin |
shl (1) rMSGSRC.0<1>:d acc0:w 1:w // H. block origin need to be doubled |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_YUV_MAIN:ud // Block width and height (32x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_YUV(0)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_YUV_MAIN+nBI_CURRENT_SRC_YUV:ud |
add (1) rMSGSRC.0<1>:d rMSGSRC.0:d 32:w //the last 4 pixels are read again for optimization |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_YUV_ADDITION:ud // Block width and height (4x8) |
mov (8) mMSGHDRY<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_YUV(8)<1> mMSGHDRY udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_YUV_ADDITION+nBI_CURRENT_SRC_YUV:ud |
// Unpack to "planar" YUV422 format in word-aligned bytes |
add (4) pCF_Y_OFFSET<1>:uw ubSRC_CF_OFFSET<4;4,1>:ub nSRC_YUV_REG*nGRFWIB:w // Initial Y,U,V offset in YUV422 block |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (16) uwDEST_Y(0, %1*16)<1> r[pCF_Y_OFFSET, %1*nGRFWIB]REGION(16,2) |
mov (8) uwDEST_U(0, %1*16)<1> r[pCF_U_OFFSET, %1*nGRFWIB]REGION(8,4) |
mov (8) uwDEST_V(0, %1*16)<1> r[pCF_V_OFFSET, %1*nGRFWIB]REGION(8,4) |
} |
$for(0; <nUV_NUM_OF_ROWS; 1) { |
mov (1) uwDEST_U(0, %1*16+8)<1> r[pCF_U_OFFSET, %1*4+256]REGION(1,0) |
mov (1) uwDEST_V(0, %1*16+8)<1> r[pCF_V_OFFSET, %1*4+256]REGION(1,0) |
} |
//UV expansion done in PL9x8_PL16x8.asm module |
// End of PA_Load_9x8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL16x8_PL8x4.asm |
---|
0,0 → 1,38 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL16x8_PL8x4.asm |
//---------------------------------------------------------------- |
#include "common.inc" |
#ifndef DEST_U //DEST_U, DEST_V not defined |
#if (nSRC_REGION==nREGION_1) |
#define DEST_Y uwTOP_Y |
#define DEST_U uwTOP_U |
#define DEST_V uwTOP_V |
#elif (nSRC_REGION==nREGION_2) |
#define DEST_Y uwBOT_Y |
#define DEST_U uwBOT_U |
#define DEST_V uwBOT_V |
#endif |
#endif |
//Convert 444 from sampler to 422 |
$for (0, 0; <8; 2, 1) { |
mov (8) DEST_U(0,%2*8)<1> DEST_U(%1)<16;8,2> |
mov (8) DEST_V(0,%2*8)<1> DEST_V(%1)<16;8,2> |
} |
// Re-define new number of lines |
#undef nUV_NUM_OF_ROWS |
#define nUV_NUM_OF_ROWS 4 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL16x8_PL8x8.asm |
---|
0,0 → 1,36 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL16x8_PL8x8.asm |
//---------------------------------------------------------------- |
#include "common.inc" |
#ifndef DEST_U |
//DEST_U, DEST_V not defined |
#if (nSRC_REGION==nREGION_1) |
#define DEST_Y uwTOP_Y |
#define DEST_U uwTOP_U |
#define DEST_V uwTOP_V |
#elif (nSRC_REGION==nREGION_2) |
#define DEST_Y uwBOT_Y |
#define DEST_U uwBOT_U |
#define DEST_V uwBOT_V |
#endif |
#endif |
//Convert 444 from sampler to 422 |
$for (0, 0; <8; 2, 1) { |
mov DEST_U(%2)<1> DEST_U(%1)<16;8,2> |
mov DEST_V(%2)<1> DEST_V(%1)<16;8,2> |
} |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL2_Load.inc |
---|
0,0 → 1,78 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL2_Load.inc |
#undef nY_NUM_OF_ROWS |
#undef nUV_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block |
#define nDPR_BLOCK_SIZE_Y nBLOCK_WIDTH_16+nBLOCK_HEIGHT_8 // Y block size 16x8 |
#define nDPR_MSG_SIZE_Y nRESLEN_4 // # of MRF's to hold Y block data (4) |
#if defined(NV11_LOAD_4x8) |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_8+nBLOCK_HEIGHT_8 // U/V block size 8x8 |
#define nDPR_MSG_SIZE_UV nRESLEN_2 // # of MRF's to hold U/V block data (2) |
#endif |
#if defined(NV11_LOAD_5x8) |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_12+nBLOCK_HEIGHT_8 // U/V block size 12x8 |
#define nDPR_MSG_SIZE_UV nRESLEN_4 // # of MRF's to hold U/V block data (4) |
#endif |
#if defined(NV12_LOAD_8x4) |
#define nUV_NUM_OF_ROWS 4 // Number of U/V rows per block |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_16+nBLOCK_HEIGHT_4 // U/V block size 16x4 |
#define nDPR_MSG_SIZE_UV nRESLEN_2 // # of MRF's to hold U/V block data (2) |
#endif |
#if defined(NV12_LOAD_8x5) |
#define nUV_NUM_OF_ROWS 6 // Number of U/V rows per block (Rounded Up to Nearest Even Number) |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_16+nBLOCK_HEIGHT_5 // U/V block size 16x5 |
#define nDPR_MSG_SIZE_UV nRESLEN_3 // # of MRF's to hold U/V block data (3) |
#endif |
#if defined(NV12_LOAD_9x5) |
#define nUV_NUM_OF_ROWS 6 // Number of U/V rows per block (Rounded Up to Nearest Even Number) |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_20+nBLOCK_HEIGHT_5 // U/V block size 20x5 |
#define nDPR_MSG_SIZE_UV nRESLEN_5 // # of MRF's to hold U/V block data (5) |
#endif |
#if defined(P208_LOAD_8x8) |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_16+nBLOCK_HEIGHT_8 // U/V block size 16x8 |
#define nDPR_MSG_SIZE_UV nRESLEN_4 // # of MRF's to hold U/V block data (4) |
#endif |
#if defined(P208_LOAD_9x8) |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_20+nBLOCK_HEIGHT_8 // U/V block size 20x8 |
#define nDPR_MSG_SIZE_UV nRESLEN_8 // # of MRF's to hold U/V block data (8) |
#endif |
// Source/destination region definitions |
#if !defined(udSRC_Y) |
#define udSRC_Y udBOT_Y_IO // Default Y source region is top Y region |
#endif |
#if !defined(udSRC_U) |
#define udSRC_U udBOT_U_IO // Default U source region is top U region |
#endif |
#define ubSRC_Y ubBOT_Y |
#define nSRC_Y_REG nBOT_Y |
#define ubSRC_U ubBOT_U |
#define nSRC_U_REG nBOT_U |
#define uwDEST_Y uwTOP_Y // However they can be transferred to word-aligned byte if desired |
#define uwDEST_U uwTOP_U |
#define uwDEST_V uwTOP_V |
#define nSRC_REGION nREGION_1 // REGION_1 will be the source region for first kernel |
// End of PL2_Load.inc |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL3_Load.inc |
---|
0,0 → 1,59 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL3_Load.inc |
#undef nY_NUM_OF_ROWS |
#undef nUV_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block |
#define nDPR_BLOCK_SIZE_Y nBLOCK_WIDTH_16+nBLOCK_HEIGHT_8 // Y block size 16x8 |
#define nDPR_MSG_SIZE_Y nRESLEN_4 // # of MRF's to hold Y block data (4) |
#if defined(IMC3_LOAD_8x4) |
#define nUV_NUM_OF_ROWS 4 // Number of U/V rows per block |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_8+nBLOCK_HEIGHT_4 // U/V block size 8x4 |
#define nDPR_MSG_SIZE_UV nRESLEN_1 // # of MRF's to hold U/V block data (1) |
#endif |
#if defined(IMC3_LOAD_8x5) |
#define nUV_NUM_OF_ROWS 6 // Number of U/V rows per block (Rounded Up to Nearest Even Number) |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_8+nBLOCK_HEIGHT_5 // U/V block size 8x5 |
#define nDPR_MSG_SIZE_UV nRESLEN_2 // # of MRF's to hold U/V block data (2) |
#endif |
#if defined(IMC3_LOAD_9x5) |
#define nUV_NUM_OF_ROWS 6 // Number of U/V rows per block (Rounded Up to Nearest Even Number) |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_12+nBLOCK_HEIGHT_5 // U/V block size 12x5 |
#define nDPR_MSG_SIZE_UV nRESLEN_3 // # of MRF's to hold U/V block data (3) |
#endif |
// Source/destination region definitions |
#if !defined(udSRC_Y) |
#define udSRC_Y udBOT_Y_IO // Default Y source region is top Y region |
#endif |
#if !defined(udSRC_U) |
#define udSRC_U udBOT_U_IO // Default U source region is top U region |
#endif |
#if !defined(udSRC_V) |
#define udSRC_V udBOT_V_IO // Default V source region is top V region |
#endif |
#define ubSRC_Y ubBOT_Y // Loading data are always in byte type |
#define ubSRC_U ubBOT_U |
#define ubSRC_V ubBOT_V |
#define uwDEST_Y uwTOP_Y // However they can be transferred to word-aligned byte if desired |
#define uwDEST_U uwTOP_U |
#define uwDEST_V uwTOP_V |
#define nSRC_REGION nREGION_1 // REGION_1 will be the source region for first kernel |
// End of PL3_Load.inc |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL4x8_Save_NV11.asm |
---|
0,0 → 1,86 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#include "PL4x8_Save_NV11.inc" |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
#if !defined(SAVE_UV_ONLY) |
// Save current planar frame Y block data (16x8) ------------------------------- |
mov (2) mMSGHDR.0<1>:d wORIX<2;2,1>:w // Block origin |
mov (1) mMSGHDR.2<1>:ud nDPW_BLOCK_SIZE_Y:ud // Block width and height (16x8) |
///* Yoni - masking is not relevant for ILK?!? |
// |
// //Use the mask to determine which pixels shouldn't be over-written |
// cmp.ge.f0.0 (1) NULLREG BLOCK_MASK_D:ud 0x00FFFFFF:ud //Check if all pixels in the block need to be modified |
// (f0.0) jmpi WritePlanarToDataPort |
// |
// //If mask is not all 1's, then load the entire 16x8 block |
// //so that only those bytes may be modified that need to be (using the mask) |
// send (8) SRC_YD(0)<1> MSGHDR MSGSRC<8;8,1>:ud DWBRMSGDSC+0x00040000+BI_DEST_Y:ud //16x8 |
// |
// asr (2) MSGSRC.0<1>:ud ORIX<2;2,1>:w 1:w // U/V block origin should be half of Y's |
// mov (1) MSGSRC.2<1>:ud 0x00030007:ud // Block width and height (8x4) |
// send (8) SRC_UD(0)<1> MSGHDR MSGSRC<8;8,1>:ud DWBRMSGDSC+0x00010000+BI_DEST_U:ud |
// send (8) SRC_VD(0)<1> MSGHDR MSGSRC<8;8,1>:ud DWBRMSGDSC+0x00010000+BI_DEST_V:ud |
// |
// //Restore the origin information |
// mov (2) MSGSRC.0<1>:ud ORIX<2;2,1>:w // Block origin |
// mov (1) MSGSRC.2<1>:ud 0x0007000F:ud // Block width and height (16x8) |
// |
// //expand U and V to be aligned on word boundary |
// mov (16) SRC_UW(1)<1> SRC_U(0,16) |
// mov (16) SRC_UW(0)<1> SRC_U(0, 0) |
// mov (16) SRC_VW(1)<1> SRC_V(0,16) |
// mov (16) SRC_VW(0)<1> SRC_V(0, 0) |
// |
// //Merge the data |
// mov (1) f0.1:uw BLOCK_MASK_V:uw //Load the mask on flag reg |
// (f0.1) mov (8) TEMP0<1>:uw BLOCK_MASK_H:uw |
// (-f0.1) mov (8) TEMP0<1>:uw 0:uw |
// |
// // Destination is Word aligned |
// $for(0; <Y_ROW_SIZE; 2) { |
// mov (1) f0.1:uw TEMP(0,%1)<0;1,0> |
// (-f0.1) mov (16) DEST_Y(0, %1*32)<2> SRC_Y(0, %1*16) |
// (-f0.1) mov (16) DEST_U(0, %1*8)<1> SRC_U(0, %1*8) //only works for Word aligned Byte data |
// (-f0.1) mov (16) DEST_V(0, %1*8)<1> SRC_V(0, %1*8) //only works for Word aligned Byte data |
// |
// mov (1) f0.1:uw TEMP(0,1+%1)<0;1,0> |
// (-f0.1) mov (16) DEST_Y(0, 1+%1*32)<2> SRC_Y(0, 1+%1*16) |
// |
// } |
// |
//*/ Yoni - masking is not relevant for ILK?!? |
WritePlanarToDataPort: |
$for(0,0; <nY_NUM_OF_ROWS; 2,1) { |
mov (16) mubMSGPAYLOAD(%2,0)<1> ub2DEST_Y(%1)REGION(16,2) |
mov (16) mubMSGPAYLOAD(%2,16)<1> ub2DEST_Y(%1+1)REGION(16,2) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_Y+nBI_DESTINATION_Y:ud |
#endif |
// Save U/V data block in planar format (4x8) ---------------------------------- |
mov (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w // Block origin |
asr (1) rMSGSRC.0<1>:d rMSGSRC.0<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
$for(0,0; <nY_NUM_OF_ROWS;4,1) { |
mov (16) mubMSGPAYLOAD(%2,0)<2> ub2DEST_U(%2)REGION(16,2) |
mov (16) mubMSGPAYLOAD(%2,1)<2> ub2DEST_V(%2)REGION(16,2) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_UV+nBI_DESTINATION_UV:ud |
// End of PL4x8_Save_NV11 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL4x8_Save_NV11.inc |
---|
0,0 → 1,60 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//Module name: PL8x4_Save_NV11.inc |
// |
// Setup for storing planar data |
// |
#include "undefall.inc" //Undefine the SRC and DEST sysmbols |
#define nDPW_BLOCK_SIZE_Y nBLOCK_WIDTH_16+nBLOCK_HEIGHT_8 // Y block size 16x8 |
#define nDPW_MSG_SIZE_Y nMSGLEN_4 // # of MRF's to hold Y block data (4) |
#define nDPW_BLOCK_SIZE_UV nBLOCK_WIDTH_8+nBLOCK_HEIGHT_8 // U/V interleaved block width and height (8x8) |
#define nDPW_MSG_SIZE_UV nMSGLEN_2 // # of MRF's to hold U/V block data (2) |
#if (nSRC_REGION==nREGION_1) |
#define udSRC_Y udBOT_Y_IO |
#define udSRC_U udBOT_U_IO |
#define udSRC_V udBOT_V_IO |
#define ubSRC_Y ubBOT_Y |
#define ubSRC_U ubBOT_U |
#define ubSRC_V ubBOT_V |
#define uwSRC_U uwBOT_U //For masking operation |
#define uwSRC_V uwBOT_V |
#define ub2DEST_Y ub2TOP_Y |
#define ub2DEST_U ub2TOP_U |
#define ub2DEST_V ub2TOP_V |
#elif (nSRC_REGION==nREGION_2) |
#define udSRC_Y udTOP_Y_IO |
#define udSRC_U udTOP_U_IO |
#define udSRC_V udTOP_V_IO |
#define ubSRC_Y ubTOP_Y |
#define ubSRC_U ubTOP_U |
#define ubSRC_V ubTOP_V |
#define uwSRC_U uwTOP_U //For masking operation |
#define uwSRC_V uwTOP_V |
#define ub2DEST_Y ub2BOT_Y |
#define ub2DEST_U ub2BOT_U |
#define ub2DEST_V ub2BOT_V |
#endif |
///* Yoni - masking is not relevant for ILK?!? |
//#define TEMP0 REG(r,54) |
//.declare TEMP Base=TEMP0 ElementSize=2 SrcRegion=<8;8,1> Type=uw |
///* Yoni - masking is not relevant for ILK?!? |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL5x8_PL16x8.asm |
---|
0,0 → 1,29 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL5x8_PL16x8.asm |
#include "Expansion.inc" |
//------------------------------ Horizontal Upconversion ----------------------------- |
$for (nUV_NUM_OF_ROWS/2-1; >-1; -1) { |
avg.sat (16) uwDEST_U(0, %1*32+16) uwDEST_U(0, %1*16+7)<1;2,0> uwDEST_U(0, %1*16+7)<1;2,1> |
avg.sat (16) uwDEST_V(0, %1*32+16) uwDEST_V(0, %1*16+7)<1;2,0> uwDEST_V(0, %1*16+7)<1;2,1> |
avg.sat (16) uwDEST_U(0, %1*32) uwDEST_U(0, %1*16)<1;2,0> uwDEST_U(0, %1*16)<1;2,1> |
avg.sat (16) uwDEST_V(0, %1*32) uwDEST_V(0, %1*16)<1;2,0> uwDEST_V(0, %1*16)<1;2,1> |
} |
$for (nUV_NUM_OF_ROWS/2-1; >-1; -1) { |
avg.sat (16) uwDEST_U(0, %1*32+16) uwDEST_U(0, %1*32+18)<1;2,0> uwDEST_U(0, %1*32+18)<1;2,1> |
avg.sat (16) uwDEST_V(0, %1*32+16) uwDEST_V(0, %1*32+18)<1;2,0> uwDEST_V(0, %1*32+18)<1;2,1> |
avg.sat (16) uwDEST_U(0, %1*32) uwDEST_U(0, %1*32)<1;2,0> uwDEST_U(0, %1*32)<1;2,1> |
avg.sat (16) uwDEST_V(0, %1*32) uwDEST_V(0, %1*32)<1;2,0> uwDEST_V(0, %1*32)<1;2,1> |
} |
// End of PL5x8_PL16x8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL5x8_PL8x8.asm |
---|
0,0 → 1,21 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL5x8_PL8x8.asm |
#include "Expansion.inc" |
//------------------------------ Horizontal Upconversion ----------------------------- |
$for (0; <nUV_NUM_OF_ROWS; 1) { |
avg.sat (8) uwDEST_U(0, %1*8) uwDEST_U(0, %1*8)<1;2,0> uwDEST_U(0, %1*8)<1;2,1> |
avg.sat (8) uwDEST_V(0, %1*8) uwDEST_V(0, %1*8)<1;2,0> uwDEST_V(0, %1*8)<1;2,1> |
} |
// End of PL5x8_PL8x8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x4_Save_IMC3.asm |
---|
0,0 → 1,88 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL8x4_Save_IMC3.asm |
// |
// Save planar YUV420 frame data block of size 16x8 |
#include "PL8x4_Save_IMC3.inc" |
//Use the mask to determine which pixels shouldn't be over-written |
and (1) acc0.0<1>:ud udBLOCK_MASK<0;1,0>:ud 0x00FFFFFF:ud |
cmp.ge.f0.0(1) dNULLREG acc0.0<0;1,0>:ud 0x00FFFFFF:ud //Check if all pixels in the block need to be modified |
(f0.0) jmpi WritePlanarToDataPort |
//If mask is not all 1's, then load the entire 16x8 block |
//so that only those bytes may be modified that need to be (using the mask) |
// Load 16x8 planar Y ---------------------------------------------------------- |
mov (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w // Block origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_Y:ud // Block width and height (16x8) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_Y(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_DESTINATION_Y:ud |
// Load 8x4 planar U and V ----------------------------------------------------- |
asr (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_UV:ud // Block width and height (8x4) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_U(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_DESTINATION_U:ud |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
send (8) udSRC_V(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_DESTINATION_V:ud |
//expand U and V to be aligned on word boundary - Y remains in bytes |
$for (nUV_NUM_OF_ROWS/2-1; >-1; -1) { |
mov (16) uwSRC_U(0, %1*16)<1> ubSRC_U(0, %1*16) |
mov (16) uwSRC_V(0, %1*16)<1> ubSRC_V(0, %1*16) |
} |
//Merge the data |
mov (1) f0.0:uw ubBLOCK_MASK_V:ub //Load the mask on flag reg |
(f0.0) mov (8) rMASK_TEMP<1>:uw uwBLOCK_MASK_H:uw |
(-f0.0) mov (8) rMASK_TEMP<1>:uw 0:uw |
// Destination is Word aligned |
$for(0; <nY_NUM_OF_ROWS; 2) { |
mov (1) f0.1:uw uwMASK_TEMP(0,%1)<0;1,0> |
(-f0.1) mov (16) ub2DEST_Y(0, %1*32)<2> ubSRC_Y(0, %1*16) |
(-f0.1) mov (16) ub2DEST_U(0, %1*8)<1> ubSRC_U(0, %1*8) //only works for Word aligned Byte data |
(-f0.1) mov (16) ub2DEST_V(0, %1*8)<1> ubSRC_V(0, %1*8) //only works for Word aligned Byte data |
mov (1) f0.1:uw uwMASK_TEMP(0,1+%1)<0;1,0> |
(-f0.1) mov (16) ub2DEST_Y(0, 1+%1*32)<2> ubSRC_Y(0, 1+%1*16) |
} |
WritePlanarToDataPort: |
#if !defined(SAVE_UV_ONLY) |
// Save current planar frame Y block data (16x8) ------------------------------- |
mov (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w // Block origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_Y:ud // Block width and height (16x8) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
$for(0,0; <nY_NUM_OF_ROWS; 2,1) { |
mov(16) mubMSGPAYLOAD(%2,0)<1> ub2DEST_Y(%1)REGION(16,2) |
mov(16) mubMSGPAYLOAD(%2,16)<1> ub2DEST_Y(%1+1)REGION(16,2) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_Y+nBI_DESTINATION_Y:ud |
#endif |
// Save U/V data block in planar format (8x4) ---------------------------------- |
asr (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_UV:ud // Block width and height (8x4) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
// Save U picture data --------------------------------------------------------- |
mov (16) mubMSGPAYLOAD(0,0)<1> ub2DEST_U(0)REGION(16,2) // U rows 0,1 |
mov (16) mubMSGPAYLOAD(0,16)<1> ub2DEST_U(1)REGION(16,2) // U rows 2,3 |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_UV+nBI_DESTINATION_U:ud |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
// Save V picture data --------------------------------------------------------- |
mov (16) mubMSGPAYLOAD(0,0)<1> ub2DEST_V(0)REGION(16,2) // V rows 0,1 |
mov (16) mubMSGPAYLOAD(0,16)<1> ub2DEST_V(1)REGION(16,2) // V rows 2,3 |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_UV+nBI_DESTINATION_V:ud |
// End of PL8x4_Save_IMC3 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x4_Save_IMC3.inc |
---|
0,0 → 1,62 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL8x4_Save_IMC3.inc |
// |
// Setup for storing planar data |
// |
#include "undefall.inc" //Undefine the SRC and DEST sysmbols |
// For saving |
#define nDPW_BLOCK_SIZE_Y nBLOCK_WIDTH_16+nBLOCK_HEIGHT_8 // Y block size 16x8 |
#define nDPW_MSG_SIZE_Y nMSGLEN_4 // # of MRF's to hold Y block data (4) |
#define nDPW_BLOCK_SIZE_UV nBLOCK_WIDTH_8+nBLOCK_HEIGHT_4 // U/V block size 8x4 |
#define nDPW_MSG_SIZE_UV nMSGLEN_1 // # of MRF's to hold U/V block data (1) |
// For masking |
#undef nDPR_MSG_SIZE_Y |
#define nDPR_MSG_SIZE_Y nRESLEN_4 // # of MRF's to hold Y block data (4) |
#undef nDPR_MSG_SIZE_UV |
#define nDPR_MSG_SIZE_UV nRESLEN_1 // # of MRF's to hold U/V block data (1) |
#define rMASK_TEMP REG(r,nTEMP0) |
.declare uwMASK_TEMP Base=rMASK_TEMP ElementSize=2 SrcRegion=<8;8,1> Type=uw //1 GRF |
#if (nSRC_REGION==nREGION_1) |
// For saving |
#define ub2DEST_Y ub2TOP_Y |
#define ub2DEST_U ub2TOP_U |
#define ub2DEST_V ub2TOP_V |
//For masking operation |
#define udSRC_Y udBOT_Y_IO |
#define udSRC_U udBOT_U_IO |
#define udSRC_V udBOT_V_IO |
#define ubSRC_Y ubBOT_Y |
#define ubSRC_U ubBOT_U |
#define ubSRC_V ubBOT_V |
#define uwSRC_U uwBOT_U |
#define uwSRC_V uwBOT_V |
#elif (nSRC_REGION==nREGION_2) |
// For saving |
#define ub2DEST_Y ub2BOT_Y |
#define ub2DEST_U ub2BOT_U |
#define ub2DEST_V ub2BOT_V |
//For masking operation |
#define udSRC_Y udTOP_Y_IO |
#define udSRC_U udTOP_U_IO |
#define udSRC_V udTOP_V_IO |
#define ubSRC_Y ubTOP_Y |
#define ubSRC_U ubTOP_U |
#define ubSRC_V ubTOP_V |
#define uwSRC_U uwTOP_U |
#define uwSRC_V uwTOP_V |
#endif |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x4_Save_NV12.asm |
---|
0,0 → 1,102 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL8x4_Save_NV12.asm |
// |
// Save entire current planar frame data block of size 16x8 |
//--------------------------------------------------------------- |
// Symbols needed to be defined before including this module |
// |
// DWORD_ALIGNED_DEST: only if DEST_Y, DEST_U, DEST_V data are DWord aligned |
// ORIX: |
//--------------------------------------------------------------- |
#include "PL8x4_Save_NV12.inc" |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
#if !defined(SAVE_UV_ONLY) |
// Save current planar frame Y block data (16x8) ------------------------------- |
mov (2) mMSGHDR.0<1>:d wORIX<2;2,1>:w // Block origin |
mov (1) mMSGHDR.2<1>:ud nDPW_BLOCK_SIZE_Y:ud // Block width and height (16x8) |
#endif |
//Use the mask to determine which pixels shouldn't be over-written |
and (1) acc0<1>:ud udBLOCK_MASK<0;1,0>:ud 0x00FFFFFF:ud |
cmp.ge.f0.0 (1) dNULLREG acc0<0;1,0>:ud 0x00FFFFFF:ud //Check if all pixels in the block need to be modified |
(f0.0) jmpi WritePlanarToDataPort |
//If mask is not all 1's, then load the entire 16x8 block |
//so that only those bytes may be modified that need to be (using the mask) |
send (8) udSRC_Y(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_Y+nBI_DESTINATION_Y:ud //16x8 |
asr (1) rMSGSRC.1<1>:ud wORIY<0;1,0>:w 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_UV:ud { NoDDChk } // Block width and height (16x4) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud //move message desrcptor to the message header |
send (8) udSRC_U(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_UV+nBI_DESTINATION_UV:ud |
//Restore the origin information |
mov (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w // Block origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_Y:ud // Block width and height (16x8) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud //move message desrcptor to the message header |
//Merge the data |
mov (1) f0.1:uw ubBLOCK_MASK_V:ub //Load the mask on flag reg |
(f0.1) mov (8) rMASK_TEMP<1>:uw uwBLOCK_MASK_H:uw |
(-f0.1) mov (8) rMASK_TEMP<1>:uw 0:uw |
//convert the mask from 16bits to 8bits by selecting every other bit |
mov (1) udMASK_TEMP1(0,0)<1> 0x00040001:ud |
mov (1) udMASK_TEMP1(0,1)<1> 0x00400010:ud |
mov (1) udMASK_TEMP1(0,2)<1> 0x04000100:ud |
mov (1) udMASK_TEMP1(0,3)<1> 0x40001000:ud |
//merge the loaded block with the current block |
$for(0,0; <nY_NUM_OF_ROWS; 2,1) { |
mov (1) f0.1:uw uwMASK_TEMP(0, %1)<0;1,0> |
(-f0.1) mov (16) ubDEST_Y(0,%1*32)<2> ubSRC_Y(0,%1*16) |
and.nz.f0.1 (8) wNULLREG uwMASK_TEMP(0,%1)<0;1,0> uwMASK_TEMP1(0,0) //change the mask by selecting every other bit |
(-f0.1) mov (8) ubDEST_U(0, %2*16)<2> ub2SRC_U(0, %1*8)<16;8,2> |
(-f0.1) mov (8) ubDEST_V(0, %2*16)<2> ub2SRC_U(0, %1*8+1)<16;8,2> |
mov (1) f0.1:uw uwMASK_TEMP(0,1+%1)<0;1,0> |
(-f0.1) mov (16) ubDEST_Y(0, (1+%1)*32)<2> ubSRC_Y(0, (1+%1)*16) |
} |
WritePlanarToDataPort: |
#if !defined(SAVE_UV_ONLY) |
$for(0,0; <nY_NUM_OF_ROWS; 2,1) { |
mov (16) mubMSGPAYLOAD(%2,0)<1> ub2DEST_Y(%1)REGION(16,2) |
mov (16) mubMSGPAYLOAD(%2,16)<1> ub2DEST_Y(%1+1)REGION(16,2) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_Y+nBI_DESTINATION_Y:ud |
#endif |
//** Save 8x4 packed U and V ----------------------------------------------------- |
// we could write directly wORIX to mMSGHDR and then execute asr on it, that way we could |
// avoid using rMSGSRC as a buffer and have one command less in code, but it is unknown whether |
//it is possible to do asr on mMSGHDR so we use rMSGSRC. |
mov (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w // Block origin |
asr (1) rMSGSRC.1<1>:d rMSGSRC.1<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_UV:ud // U/V block width and height (16x4) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
$for(0,0; <nY_NUM_OF_ROWS;4,1) { |
mov (16) mubMSGPAYLOAD(%2,0)<2> ub2DEST_U(%2)REGION(16,2) |
mov (16) mubMSGPAYLOAD(%2,1)<2> ub2DEST_V(%2)REGION(16,2) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_UV+nBI_DESTINATION_UV:ud |
// End of PL8x4_Save_NV12 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x4_Save_NV12.inc |
---|
0,0 → 1,85 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//Module name: PL8x4_Save_NV12.inc |
// |
// Setup for storing planar data |
// |
#include "undefall.inc" //Undefine the SRC and DEST sysmbols |
#undef nDPW_BLOCK_SIZE_Y |
#undef nDPW_MSG_SIZE_Y |
#undef nDPW_BLOCK_SIZE_UV |
#undef nDPW_MSG_SIZE_UV |
#define nDPW_BLOCK_SIZE_Y nBLOCK_WIDTH_16+nBLOCK_HEIGHT_8 // Y block size 16x8 |
#define nDPW_MSG_SIZE_Y nMSGLEN_4 // # of MRF's to hold Y block data (4) |
#define nDPW_BLOCK_SIZE_UV nBLOCK_WIDTH_16+nBLOCK_HEIGHT_4 // U/V interleaved block width and height (16x4) |
#define nDPW_MSG_SIZE_UV nMSGLEN_2 // # of MRF's to hold U/V block data (2) |
// For masking |
#undef nDPR_MSG_SIZE_Y |
#define nDPR_MSG_SIZE_Y nRESLEN_4 // # of MRF's to hold Y block data (4) |
#undef nDPR_MSG_SIZE_UV |
#define nDPR_MSG_SIZE_UV nRESLEN_2 |
#define rMASK_TEMP REG(r,nTEMP0) |
.declare uwMASK_TEMP Base=rMASK_TEMP ElementSize=2 SrcRegion=<8;8,1> Type=uw //1 GRF |
#define rMASK_TEMP1 REG(r,nTEMP1) |
.declare udMASK_TEMP1 Base=rMASK_TEMP1 ElementSize=4 SrcRegion=<4;4,1> Type=ud //1 GRF |
.declare uwMASK_TEMP1 Base=rMASK_TEMP1 ElementSize=2 SrcRegion=<8;8,1> Type=uw //1 GRF |
#if (nSRC_REGION==nREGION_1) |
#define udSRC_Y udBOT_Y_IO |
#define udSRC_U udBOT_U_IO |
#define udSRC_V udBOT_V_IO |
#define ubSRC_Y ubBOT_Y |
#define ubSRC_U ubBOT_U |
#define ubSRC_V ubBOT_V |
#define uwSRC_U uwBOT_U //For masking operation |
#define uwSRC_V uwBOT_V |
#define ub2DEST_Y ub2TOP_Y |
#define ub2DEST_U ub2TOP_U |
#define ub2DEST_V ub2TOP_V |
#define ubDEST_Y ubTOP_Y |
#define ubDEST_U ubTOP_U |
#define ubDEST_V ubTOP_V |
#define ub2SRC_U ub2BOT_U |
#elif (nSRC_REGION==nREGION_2) |
#define udSRC_Y udTOP_Y_IO |
#define udSRC_U udTOP_U_IO |
#define udSRC_V udTOP_V_IO |
#define ubSRC_Y ubTOP_Y |
#define ubSRC_U ubTOP_U |
#define ubSRC_V ubTOP_V |
#define uwSRC_U uwTOP_U //For masking operation |
#define uwSRC_V uwTOP_V |
#define ub2DEST_Y ub2BOT_Y |
#define ub2DEST_U ub2BOT_U |
#define ub2DEST_V ub2BOT_V |
#define ubDEST_Y ubBOT_Y |
#define ubDEST_U ubBOT_U |
#define ubDEST_V ubBOT_V |
#define ub2SRC_U ub2TOP_U |
#endif |
///* Yoni - masking is not relevant for ILK?!? |
//#define TEMP0 REG(r,54) |
//.declare TEMP Base=TEMP0 ElementSize=2 SrcRegion=<8;8,1> Type=uw |
///* Yoni - masking is not relevant for ILK?!? |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x5_PL8x8.asm |
---|
0,0 → 1,27 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL8x5_PL8x8.asm |
#include "Expansion.inc" |
//------------------------------- Vertical Upconversion ------------------------------ |
avg.sat (8) uwDEST_U(0, 3*16+8)<1> uwDEST_U(0, 3*8) uwDEST_U(0, (1+3)*8) // Optimization |
avg.sat (8) uwDEST_V(0, 3*16+8)<1> uwDEST_V(0, 3*8) uwDEST_V(0, (1+3)*8) // Optimization |
$for(nUV_NUM_OF_ROWS/2-2; >-1; -1) { |
mov (8) uwDEST_U(0, (1+%1)*16)<1> uwDEST_U(0, (1+%1)*8) |
avg.sat (8) uwDEST_U(0, %1*16+8)<1> uwDEST_U(0, %1*8) uwDEST_U(0, (1+%1)*8) |
mov (8) uwDEST_V(0, (1+%1)*16)<1> uwDEST_V(0, (1+%1)*8) |
avg.sat (8) uwDEST_V(0, %1*16+8)<1> uwDEST_V(0, %1*8) uwDEST_V(0, (1+%1)*8) |
} |
// End of PL8x5_PL8x8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x8_PL8x4.asm |
---|
0,0 → 1,30 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL8x8_PL8x4.asm |
// |
// Convert PL 8x8 to PL8x4 in GRF |
//--------------------------------------------------------------- |
// Symbols needed to be defined before including this module |
// |
// DWORD_ALIGNED_DEST: only if DEST_Y, DEST_U, DEST_V data are DWord aligned |
// ORIX: |
//--------------------------------------------------------------- |
#include "PL8x8_PL8x4.inc" |
// Convert PL8x8 to PL8x4 --------------------------------------------------------- |
mov (8) ubDEST_U(0,16)<2> ubDEST_U(1)<16;8,2> //selecting U every other row |
mov (16) ubDEST_U(0,32)<2> ubDEST_U(2)<32;8,2> //selecting U every other row |
mov (8) ubDEST_V(0,16)<2> ubDEST_V(1)<16;8,2> //selecting V every other row |
mov (16) ubDEST_V(0,32)<2> ubDEST_V(2)<32;8,2> //selecting V every other row |
// End of PL8x8_PL8x4.asm ------------------------------------------------------- |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x8_PL8x4.inc |
---|
0,0 → 1,36 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL8x8_PL8x4.inc |
// |
// Setup module for convert PL8x8 to PL8x4 |
// |
// |
// Source/destination region definitions |
// |
#include "undefall.inc" //Undefine the SRC and DEST sysmbols |
#if (nSRC_REGION==nREGION_1) |
//REGION_1 selected |
#define ubDEST_Y ubTOP_Y |
#define ubDEST_U ubTOP_U |
#define ubDEST_V ubTOP_V |
#elif (nSRC_REGION==nREGION_2) |
//REGION_2 selected |
#define ubDEST_Y ubBOT_Y |
#define ubDEST_U ubBOT_U |
#define ubDEST_V ubBOT_V |
#endif |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x8_Save_P208.asm |
---|
0,0 → 1,56 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL8x8_Save_P208.asm |
// |
// Save entire current planar frame data block of size 16x8 |
//--------------------------------------------------------------- |
// Symbols needed to be defined before including this module |
// |
// DWORD_ALIGNED_DEST: only if DEST_Y, DEST_U, DEST_V data are DWord aligned |
// ORIX: |
//--------------------------------------------------------------- |
#include "PL8x8_Save_P208.inc" |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
#if !defined(SAVE_UV_ONLY) |
// Save current planar frame Y block data (16x8) ------------------------------- |
mov (2) mMSGHDR.0<1>:d wORIX<2;2,1>:w // Block origin |
mov (1) mMSGHDR.2<1>:ud nDPW_BLOCK_SIZE_Y:ud // Block width and height (16x8) |
WritePlanarToDataPort: |
$for(0,0; <nY_NUM_OF_ROWS; 2,1) { |
mov (16) mubMSGPAYLOAD(%2,0)<1> ub2DEST_Y(%1)REGION(16,2) |
mov (16) mubMSGPAYLOAD(%2,16)<1> ub2DEST_Y(%1+1)REGION(16,2) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_Y+nBI_DESTINATION_Y:ud |
#endif |
//** Save 8x8 packed U and V ----------------------------------------------------- |
// we could write directly wORIX to mMSGHDR and then execute asr on it, that way we could |
// avoid using rMSGSRC as a buffer and have one command less in code, but it is unknown whether |
//it is possible to do asr on mMSGHDR so we use rMSGSRC. |
mov (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w // Block origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_UV:ud // U/V block width and height (16x4) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
$for(0,0; <nY_NUM_OF_ROWS;2,1) { |
mov (16) mubMSGPAYLOAD(%2,0)<2> ub2DEST_U(%2)REGION(16,2) |
mov (16) mubMSGPAYLOAD(%2,1)<2> ub2DEST_V(%2)REGION(16,2) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_UV+nBI_DESTINATION_UV:ud |
//End of PL8x8_Save_P208.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x8_Save_P208.inc |
---|
0,0 → 1,61 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//Module name: PL8x8_Save_P208.inc |
// |
// Setup for storing planar data |
// |
#include "undefall.inc" //Undefine the SRC and DEST sysmbols |
#define nDPW_BLOCK_SIZE_Y nBLOCK_WIDTH_16+nBLOCK_HEIGHT_8 // Y block size 16x8 |
#define nDPW_MSG_SIZE_Y nMSGLEN_4 // # of MRF's to hold Y block data (4) |
#define nDPW_BLOCK_SIZE_UV nBLOCK_WIDTH_16+nBLOCK_HEIGHT_8 // U/V interleaved block width and height (16x8) |
#define nDPW_MSG_SIZE_UV nMSGLEN_4 // # of MRF's to hold U/V block data (4) |
#if (nSRC_REGION==nREGION_1) |
#define udSRC_Y udBOT_Y_IO |
#define udSRC_U udBOT_U_IO |
#define udSRC_V udBOT_V_IO |
#define ubSRC_Y ubBOT_Y |
#define ubSRC_U ubBOT_U |
#define ubSRC_V ubBOT_V |
#define uwSRC_U uwBOT_U //For masking operation |
#define uwSRC_V uwBOT_V |
#define ub2DEST_Y ub2TOP_Y |
#define ub2DEST_U ub2TOP_U |
#define ub2DEST_V ub2TOP_V |
#elif (nSRC_REGION==nREGION_2) |
#define udSRC_Y udTOP_Y_IO |
#define udSRC_U udTOP_U_IO |
#define udSRC_V udTOP_V_IO |
#define ubSRC_Y ubTOP_Y |
#define ubSRC_U ubTOP_U |
#define ubSRC_V ubTOP_V |
#define uwSRC_U uwTOP_U //For masking operation |
#define uwSRC_V uwTOP_V |
#define ub2DEST_Y ub2BOT_Y |
#define ub2DEST_U ub2BOT_U |
#define ub2DEST_V ub2BOT_V |
#endif |
///* Yoni - masking is not relevant for ILK?!? |
//#define TEMP0 REG(r,54) |
//.declare TEMP Base=TEMP0 ElementSize=2 SrcRegion=<8;8,1> Type=uw |
///* Yoni - masking is not relevant for ILK?!? |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x8_Save_PA.asm |
---|
0,0 → 1,71 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL8x8_Save_PA.asm |
// |
// Save planar YUV422 to packed YUV422 format data |
// |
// Note: SRC_* must reference to regions with data type "BYTE" |
// in order to save to byte-aligned byte location |
#include "PL8x8_Save_PA.inc" |
add (4) pCF_Y_OFFSET<1>:uw ubDEST_CF_OFFSET<4;4,1>:ub nDEST_YUV_REG*nGRFWIB:w // Initial Y,U,V offset in YUV422 block |
// Pack Y |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (16) r[pCF_Y_OFFSET, %1*nGRFWIB]<2> ubSRC_Y(0,%1*32) |
} |
// Pack U/V |
$for(0; <nUV_NUM_OF_ROWS; 1) { |
mov (8) r[pCF_U_OFFSET, %1*nGRFWIB]<4> ubSRC_U(0, %1*16) |
mov (8) r[pCF_V_OFFSET, %1*nGRFWIB]<4> ubSRC_V(0, %1*16) |
} |
shl (1) rMSGSRC.0<1>:d wORIX<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) rMSGSRC.1<1>:d wORIY<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_YUV:ud { NoDDChk } // Block width and height (32x8) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
//Use the mask to determine which pixels shouldn't be over-written |
and (1) acc0.0<1>:ud udBLOCK_MASK<0;1,0>:ud 0x00FFFFFF:ud |
cmp.ge.f0.0(1) dNULLREG acc0.0<0;1,0>:ud 0x00FFFFFF:ud //Check if all pixels in the block need to be modified |
(f0.0) jmpi WritePackedToDataPort |
//If mask is not all 1's, then load the entire 32x8 block |
//so that only those bytes may be modified that need to be (using the mask) |
// Load 32x8 packed YUV 422 ---------------------------------------------------- |
send (8) udSRC_YUV(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_YUV+nBI_DESTINATION_YUV:ud |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
//Merge the data |
mov (1) f0.0:uw ubBLOCK_MASK_V:ub //Load the mask on flag reg |
(f0.0) mov (8) rMASK_TEMP<1>:uw uwBLOCK_MASK_H:uw |
(-f0.0) mov (8) rMASK_TEMP<1>:uw 0:uw |
// Destination is Byte aligned |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (1) f0.1:uw uwMASK_TEMP(0,%1)<0;1,0> |
(-f0.1) mov (16) uwDEST_YUV(%1)<1> uwSRC_YUV(%1) //check the UV merge - vK |
} |
WritePackedToDataPort: |
// Packed YUV data are stored in one of the I/O regions before moving to MRF |
// Note: This is necessary since indirect addressing is not supported for MRF. |
// Packed data block should be saved as 32x8 pixel block |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (8) mudMSGPAYLOAD(%1)<1> udDEST_YUV(%1)REGION(8,1) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_YUV+nBI_DESTINATION_YUV:ud |
// End of PL8x8_Save_PA |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL8x8_Save_PA.inc |
---|
0,0 → 1,52 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL8x8_Save_PA.inc |
// |
// Setup for storing packed data |
// |
#include "undefall.inc" //Undefine the SRC and DEST sysmbols |
// For saving |
#define nDPW_BLOCK_SIZE_YUV nBLOCK_WIDTH_32+nBLOCK_HEIGHT_8 // YUV block size 32x8 |
#define nDPW_MSG_SIZE_YUV nMSGLEN_8 // # of MRF's to hold YUV block data (8) |
// For masking |
#undef nDPR_MSG_SIZE_YUV |
#define nDPR_MSG_SIZE_YUV nRESLEN_8 // # of MRF's to hold YUV block data (8) |
#define rMASK_TEMP REG(r,nTEMP0) |
.declare uwMASK_TEMP Base=rMASK_TEMP ElementSize=2 SrcRegion=<8;8,1> Type=uw //1 GRF |
#if (nSRC_REGION==nREGION_1) |
// For saving |
#define udSRC_YUV udTOP_Y_IO |
#define udDEST_YUV udBOT_Y_IO |
#define nDEST_YUV_REG nBOT_Y |
//For masking operation |
#define ubSRC_Y ub2TOP_Y |
#define ubSRC_U ub2TOP_U |
#define ubSRC_V ub2TOP_V |
#define uwSRC_YUV uwTOP_Y |
#define uwDEST_YUV uwBOT_Y |
#elif (nSRC_REGION==nREGION_2) |
// For saving |
#define udSRC_YUV udBOT_Y_IO |
#define udDEST_YUV udTOP_Y_IO |
#define nDEST_YUV_REG nTOP_Y |
//For masking operation |
#define ubSRC_Y ub2BOT_Y |
#define ubSRC_U ub2BOT_U |
#define ubSRC_V ub2BOT_V |
#define uwSRC_YUV uwBOT_Y |
#define uwDEST_YUV uwTOP_Y |
#endif |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL9x5_PL16x8.asm |
---|
0,0 → 1,37 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL9x5_PL16x8.asm |
#define EXPAND_9x5 |
#include "Expansion.inc" |
//------------------------------ Horizontal Upconversion ----------------------------- |
$for (nUV_NUM_OF_ROWS-2; >-1; -1) { |
avg.sat (16) uwDEST_U(0, %1*16)<1> uwDEST_U(0, %1*16)<1;2,0> uwDEST_U(0, %1*16)<1;2,1> |
avg.sat (16) uwDEST_V(0, %1*16)<1> uwDEST_V(0, %1*16)<1;2,0> uwDEST_V(0, %1*16)<1;2,1> |
} |
#undef nUV_NUM_OF_ROWS |
#define nUV_NUM_OF_ROWS 8 //use packed version of all post-processing kernels |
//------------------------------- Vertical Upconversion ------------------------------ |
avg.sat (16) uwDEST_U(0, 3*32+16)<1> uwDEST_U(0, 3*16) uwDEST_U(0, (1+3)*16) |
avg.sat (16) uwDEST_V(0, 3*32+16)<1> uwDEST_V(0, 3*16) uwDEST_V(0, (1+3)*16) |
$for(nUV_NUM_OF_ROWS/2-2; >-1; -1) { |
mov (16) uwDEST_U(0, (1+%1)*32)<1> uwDEST_U(0, (1+%1)*16) |
avg.sat (16) uwDEST_U(0, %1*32+16)<1> uwDEST_U(0, %1*16) uwDEST_U(0, (1+%1)*16) |
mov (16) uwDEST_V(0, (1+%1)*32)<1> uwDEST_V(0, (1+%1)*16) |
avg.sat (16) uwDEST_V(0, %1*32+16)<1> uwDEST_V(0, %1*16) uwDEST_V(0, (1+%1)*16) |
} |
// End of PL9x5_PL16x8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/PL9x8_PL16x8.asm |
---|
0,0 → 1,21 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: PL9x5_PL16x8.asm |
#include "Expansion.inc" |
//------------------------------ Horizontal Upconversion ----------------------------- |
$for (0; <nUV_NUM_OF_ROWS; 1) { |
avg.sat (16) uwDEST_U(0, %1*16)<1> uwDEST_U(0, %1*16)<1;2,0> uwDEST_U(0, %1*16)<1;2,1> |
avg.sat (16) uwDEST_V(0, %1*16)<1> uwDEST_V(0, %1*16)<1;2,0> uwDEST_V(0, %1*16)<1;2,1> |
} |
// End of PL9x5_PL16x8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/RGB16x8_Save_RGB.asm |
---|
0,0 → 1,88 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: RGB16x8_Save_RGB.asm |
// |
// Save packed ARGB 444 frame data block of size 16x8 |
// |
// To save 16x8 block (64x8 byte layout for ARGB8888) we need 2 send instructions |
// --------- |
// | 1 | 2 | |
// --------- |
#include "RGB16x8_Save_RGB.inc" |
shl (1) rMSGSRC.0<1>:d wORIX<0;1,0>:w 2:w { NoDDClr } // H. block origin need to be quadrupled |
mov (1) rMSGSRC.1<1>:d wORIY<0;1,0>:w { NoDDClr, NoDDChk } // Block origin (1st quadrant) |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_ARGB:ud { NoDDChk } // Block width and height (32x8) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
//Use the mask to determine which pixels shouldn't be over-written |
and (1) acc0.0<1>:ud udBLOCK_MASK<0;1,0>:ud 0x00FFFFFF:ud |
cmp.ge.f0.0(1) dNULLREG acc0.0<0;1,0>:ud 0x00FFFFFF:ud //Check if all pixels in the block need to be modified |
(f0.0) jmpi WriteARGBToDataPort |
//If mask is not all 1's, then load the entire 64x8 block |
//so that only those bytes may be modified that need to be (using the mask) |
// Load first block 16x8 packed ARGB 444 --------------------------------------- |
or (1) acc0.0<1>:ud udBLOCK_MASK<0;1,0>:ud 0xFF00FF00:ud //Check first block |
cmp.e.f0.0 (1) dNULLREG acc0.0<0;1,0>:ud 0xFFFFFFFF:ud |
(f0.0) jmpi SkipFirstBlockMerge //If full mask then skip this block |
send (8) udSRC_ARGB(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_ARGB+nBI_DESTINATION_RGB:ud |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
//Merge the data |
mov (1) f0.0:uw ubBLOCK_MASK_V:ub //Load the mask on flag reg |
(f0.0) mov (8) rMASK_TEMP<1>:uw uwBLOCK_MASK_H:uw //use sel instruction - vK |
(-f0.0) mov (8) rMASK_TEMP<1>:uw 0:uw |
$for(0, 0; <nY_NUM_OF_ROWS; 1, 2) { //take care of the lines in the block, they are different in the src and dest |
mov (1) f0.1:uw uwMASK_TEMP(0,%1)<0;1,0> |
(-f0.1) mov (8) udDEST_ARGB(%2)<1> udSRC_ARGB(%1) |
} |
SkipFirstBlockMerge: |
// Load second block 16x8 packed ARGB 444 --------------------------------------- |
or (1) acc0.0<1>:ud udBLOCK_MASK<0;1,0>:ud 0xFF0000FF:ud //Check second block |
cmp.e.f0.0 (1) dNULLREG acc0.0<0;1,0>:ud 0xFFFFFFFF:ud |
(f0.0) jmpi WriteARGBToDataPort //If full mask then skip this block |
add (1) mMSGHDR.0<1>:d rMSGSRC.0<0;1,0>:d 32:d // Point to 2nd part |
send (8) udSRC_ARGB(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_ARGB+nBI_DESTINATION_RGB:ud |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud // Point to 1st part again |
//Merge the data |
mov (1) f0.0:uw ubBLOCK_MASK_V:ub //Load the mask on flag reg |
(f0.0) shr (8) rMASK_TEMP<1>:uw uwBLOCK_MASK_H:uw 8:uw //load the mask for second block |
(-f0.0) mov (8) rMASK_TEMP<1>:uw 0:uw |
$for(0, 1; <nY_NUM_OF_ROWS; 1, 2) { //take care of the lines in the block, they are different in the src and dest |
mov (1) f0.1:uw uwMASK_TEMP(0,%1)<0;1,0> |
(-f0.1) mov (8) udDEST_ARGB(%2)<1> udSRC_ARGB(%1) |
} |
WriteARGBToDataPort: |
// Move packed data to MRF and output |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (8) mudMSGPAYLOAD(%1)<1> udDEST_ARGB(%1*2) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_ARGB+nBI_DESTINATION_RGB:ud |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
add (1) mMSGHDR.0<1>:d rMSGSRC.0<0;1,0>:d 32:d // Point to 2nd part |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (8) mudMSGPAYLOAD(%1)<1> udDEST_ARGB(%1*2+1) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_ARGB+nBI_DESTINATION_RGB:ud |
// End of RGB16x8_Save_RGB |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/RGB16x8_Save_RGB.inc |
---|
0,0 → 1,38 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: RGB16x8_Save_RGB.inc |
// |
#include "undefall.inc" //Undefine the SRC and DEST sysmbols |
// For saving |
#define nDPW_BLOCK_SIZE_ARGB nBLOCK_WIDTH_32+nBLOCK_HEIGHT_8 // ARGB block size 32x8 |
#define nDPW_MSG_SIZE_ARGB nMSGLEN_8 // # of MRF's to hold ARGB block data (8) |
// For masking |
#undef nDPR_MSG_SIZE_ARGB |
#define nDPR_MSG_SIZE_ARGB nRESLEN_8 // # of MRF's to hold ARGB block data (8) |
#define rMASK_TEMP REG(r,nTEMP0) |
.declare uwMASK_TEMP Base=rMASK_TEMP ElementSize=2 SrcRegion=<8;8,1> Type=uw //1 GRF |
#if (nSRC_REGION==nREGION_1) |
// For saving |
#define udDEST_ARGB udTOP_Y_IO //The output of previous stage is stored here; This is modified and is written to render cache |
//For masking operation |
#define udSRC_ARGB udBOT_Y_IO //To hold the destination data that shouldn't be modified |
#elif (nSRC_REGION==nREGION_2) |
// For saving |
#define udDEST_ARGB udBOT_Y_IO //The output of previous stage is stored here; This is modified and is written to render cache |
//For masking operation |
#define udSRC_ARGB udTOP_Y_IO //To hold the destination data that shouldn't be modified |
#endif |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/RGB16x8_Save_RGB16.asm |
---|
0,0 → 1,72 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: RGB16x8_Save_RGB16.asm |
// |
// Save packed RGB565 frame data block of size 16x8 |
// |
// To save 16x8 block (32x8 byte layout for RGB565) we need 1 send instruction |
// ----- |
// | 1 | |
// ----- |
#include "RGB16x8_Save_RGB16.inc" |
//convert 32 bit RGB to 16 bit RGB |
// Truncate A8R8G8B8 to A6R5G6B5 within byte. |
// That is keeping 5 MSB of R and B, and 6 MSB of G. |
$for (0, 0; <nY_NUM_OF_ROWS; 1, 2) { |
shr uwCSC_TEMP(%1,0)<1> ubDEST_ARGB(%2,0)<32;8,4> 3:w // B >> 3 |
shl (16) uwTEMP_RGB16(0)<1> uwDEST_ARGB(%2,1)<16;8,2> 8:w // R << 8 |
and (16) uwTEMP_RGB16(0)<1> uwTEMP_RGB16(0) 0xF800:uw |
or (16) uwCSC_TEMP(%1,0)<1> uwCSC_TEMP(%1,0)<16;16,1> uwTEMP_RGB16(0) |
shr (16) uwTEMP_RGB16(0)<1> uwDEST_ARGB(%2,0)<16;8,2> 5:w // G >> 5 |
and (16) uwTEMP_RGB16(0)<1> uwTEMP_RGB16(0) 0x07E0:uw |
or (16) uwCSC_TEMP(%1,0)<1> uwCSC_TEMP(%1,0)<16;16,1> uwTEMP_RGB16(0) |
} |
mov (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w // Block origin (1st quadrant) |
shl (1) rMSGSRC.0<1>:d wORIX<0;1,0>:w 1:w // H. block origin need to be doubled for byte offset |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_RGB16:ud // Block width and height (32x8) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
//Use the mask to determine which pixels shouldn't be over-written |
and (1) acc0.0<1>:ud udBLOCK_MASK<0;1,0>:ud 0x00FFFFFF:ud |
cmp.ge.f0.0(1) dNULLREG acc0.0<0;1,0>:ud 0x00FFFFFF:ud //Check if all pixels in the block need to be modified |
(f0.0) jmpi WriteRGB16ToDataPort |
//If mask is not all 1's, then load the entire 32x8 block |
//so that only those bytes may be modified that need to be (using the mask) |
// Load 32x8 packed RGB565 ----------------------------------------------------- |
send (8) udSRC_RGB16(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_RGB16+nBI_DESTINATION_RGB:ud |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
//Merge the data |
mov (1) f0.0:uw ubBLOCK_MASK_V:ub //Load the mask on flag reg |
(f0.0) mov (8) rMASK_TEMP<1>:uw uwBLOCK_MASK_H:uw //use sel instruction - vK |
(-f0.0) mov (8) rMASK_TEMP<1>:uw 0:uw |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (1) f0.1:uw uwMASK_TEMP(0,%1)<0;1,0> |
(-f0.1) mov (16) uwCSC_TEMP(%1)<1> uwSRC_RGB16(%1) |
} |
WriteRGB16ToDataPort: |
// Move packed data to MRF and output |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (8) mudMSGPAYLOAD(%1)<1> udCSC_TEMP(%1) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_RGB16+nBI_DESTINATION_RGB:ud |
// End of RGB16x8_Save_RGB16 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/RGB16x8_Save_RGB16.inc |
---|
0,0 → 1,49 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: RGB16x8_Save_RGB16.inc |
// |
#include "undefall.inc" //Undefine the SRC and DEST sysmbols |
// For saving |
#define nDPW_BLOCK_SIZE_RGB16 nBLOCK_WIDTH_32+nBLOCK_HEIGHT_8 // RGB16 block size 32x8 |
#define nDPW_MSG_SIZE_RGB16 nMSGLEN_8 // # of MRF's to hold RGB16 block data (8) |
// For conversion to 16bit |
.declare uwTEMP_RGB16 Base=REG(r,nTEMP1) ElementSize=2 SrcRegion=<16;16,1> Type=uw //1 GRF |
// For masking |
#undef nDPR_MSG_SIZE_RGB16 |
#define nDPR_MSG_SIZE_RGB16 nRESLEN_8 // # of MRF's to hold ARGB block data (8) |
#define rMASK_TEMP REG(r,nTEMP0) |
.declare uwMASK_TEMP Base=rMASK_TEMP ElementSize=2 SrcRegion=<8;8,1> Type=uw //1 GRF |
#if (nSRC_REGION==nREGION_1) |
// For saving |
#define ubDEST_ARGB ubTOP_Y //Data from previous module |
#define uwDEST_ARGB uwTOP_Y //Data from previous module |
#define udCSC_TEMP udBOT_Y_IO //Data Converted to 16 bits |
#define uwCSC_TEMP uwBOT_Y |
//For masking operation |
#define udSRC_RGB16 udTOP_Y_IO //To hold the destination data that shouldn't be modified |
#define uwSRC_RGB16 uwTOP_Y |
#elif (nSRC_REGION==nREGION_2) |
// For saving |
#define ubDEST_ARGB ubBOT_Y //Data from previous module |
#define uwDEST_ARGB uwBOT_Y //Data from previous module |
#define udCSC_TEMP udTOP_Y_IO //Data Converted to 16 bits |
#define uwCSC_TEMP uwTOP_Y |
//For masking operation |
#define udSRC_RGB16 udBOT_Y_IO //To hold the destination data that shouldn't be modified |
#define uwSRC_RGB16 uwBOT_Y |
#endif |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/RGB16x8_Save_Y416.asm |
---|
0,0 → 1,107 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: RGB16x8_Save_Y416.asm |
// |
// Save packed ARGB 444 frame data block of size 16x8 |
// |
// To save 16x8 block (128x8 byte layout for ARGB 16bit per component) we need 4 send instructions |
// ----------------- |
// | 1 | 2 | 3 | 4 | |
// ----------------- |
#include "RGB16x8_Save_RGB.inc" |
shl (1) rMSGSRC.0<1>:d wORIX<0;1,0>:w 3:w { NoDDClr } // H. block origin need to become 8 times |
mov (1) rMSGSRC.1<1>:d wORIY<0;1,0>:w { NoDDClr, NoDDChk } // Block origin (1st quadrant) |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_ARGB:ud { NoDDChk } // Block width and height (32x8) |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
/* Not needed for validation kernels for now -vK |
//Use the mask to determine which pixels shouldn't be over-written |
and (1) acc0.0<1>:ud udBLOCK_MASK<0;1,0>:ud 0x00FFFFFF:ud |
cmp.ge.f0.0(1) dNULLREG acc0.0<0;1,0>:ud 0x00FFFFFF:ud //Check if all pixels in the block need to be modified |
(f0.0) jmpi WriteARGBToDataPort |
//If mask is not all 1's, then load the entire 64x8 block |
//so that only those bytes may be modified that need to be (using the mask) |
// Load first block 16x8 packed ARGB 444 --------------------------------------- |
or (1) acc0.0<1>:ud udBLOCK_MASK<0;1,0>:ud 0xFF00FF00:ud //Check first block |
cmp.e.f0.0 (1) dNULLREG acc0.0<0;1,0>:ud 0xFFFFFFFF:ud |
(f0.0) jmpi SkipFirstBlockMerge //If full mask then skip this block |
send (8) udSRC_ARGB(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_ARGB+nBI_DESTINATION_RGB:ud |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
//Merge the data |
mov (1) f0.0:uw ubBLOCK_MASK_V:ub //Load the mask on flag reg |
(f0.0) mov (8) rMASK_TEMP<1>:uw uwBLOCK_MASK_H:uw //use sel instruction - vK |
(-f0.0) mov (8) rMASK_TEMP<1>:uw 0:uw |
$for(0, 0; <nY_NUM_OF_ROWS; 1, 2) { //take care of the lines in the block, they are different in the src and dest |
mov (1) f0.1:uw uwMASK_TEMP(0,%1)<0;1,0> |
(-f0.1) mov (8) udDEST_ARGB(%2)<1> udSRC_ARGB(%1) |
} |
SkipFirstBlockMerge: |
// Load second block 16x8 packed ARGB 444 --------------------------------------- |
or (1) acc0.0<1>:ud udBLOCK_MASK<0;1,0>:ud 0xFF0000FF:ud //Check second block |
cmp.e.f0.0 (1) dNULLREG acc0.0<0;1,0>:ud 0xFFFFFFFF:ud |
(f0.0) jmpi WriteARGBToDataPort //If full mask then skip this block |
add (1) mMSGHDR.0<1>:d rMSGSRC.0<0;1,0>:d 32:d // Point to 2nd part |
send (8) udSRC_ARGB(0)<1> mMSGHDR udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nDPR_MSG_SIZE_ARGB+nBI_DESTINATION_RGB:ud |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud // Point to 1st part again |
//Merge the data |
mov (1) f0.0:uw ubBLOCK_MASK_V:ub //Load the mask on flag reg |
(f0.0) shr (8) rMASK_TEMP<1>:uw uwBLOCK_MASK_H:uw 8:uw //load the mask for second block |
(-f0.0) mov (8) rMASK_TEMP<1>:uw 0:uw |
$for(0, 1; <nY_NUM_OF_ROWS; 1, 2) { //take care of the lines in the block, they are different in the src and dest |
mov (1) f0.1:uw uwMASK_TEMP(0,%1)<0;1,0> |
(-f0.1) mov (8) udDEST_ARGB(%2)<1> udSRC_ARGB(%1) |
} |
*/ |
WriteARGBToDataPort: |
// Move packed data to MRF and output |
//Write 1st 4X8 pixels |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (8) mudMSGPAYLOAD(%1)<1> udDEST_ARGB(%1*4) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_ARGB+nBI_DESTINATION_RGB:ud |
//Write 2nd 4X8 pixels |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
add (1) mMSGHDR.0<1>:d rMSGSRC.0<0;1,0>:d 32:d // Point to 2nd part |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (8) mudMSGPAYLOAD(%1)<1> udDEST_ARGB(%1*4+1) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_ARGB+nBI_DESTINATION_RGB:ud |
//Write 3rd 4X8 pixels |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
add (1) mMSGHDR.0<1>:d rMSGSRC.0<0;1,0>:d 64:d // Point to 2nd part |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (8) mudMSGPAYLOAD(%1)<1> udDEST_ARGB(%1*4+2) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_ARGB+nBI_DESTINATION_RGB:ud |
//Write 4th 4X8 pixels |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
add (1) mMSGHDR.0<1>:d rMSGSRC.0<0;1,0>:d 96:d // Point to 2nd part |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (8) mudMSGPAYLOAD(%1)<1> udDEST_ARGB(%1*4+3) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_ARGB+nBI_DESTINATION_RGB:ud |
// End of RGB16x8_Save_Y416 |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/RGB16x8_Save_Y416.inc |
---|
0,0 → 1,38 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: RGB16x8_Save_Y416.inc |
// |
#include "undefall.inc" //Undefine the SRC and DEST sysmbols |
// For saving |
#define nDPW_BLOCK_SIZE_ARGB nBLOCK_WIDTH_32+nBLOCK_HEIGHT_8 // ARGB block size 32x8 |
#define nDPW_MSG_SIZE_ARGB nMSGLEN_8 // # of MRF's to hold ARGB block data (8) |
// For masking |
#undef nDPR_MSG_SIZE_ARGB |
#define nDPR_MSG_SIZE_ARGB nRESLEN_8 // # of MRF's to hold ARGB block data (8) |
#define rMASK_TEMP REG(r,nTEMP0) |
.declare uwMASK_TEMP Base=rMASK_TEMP ElementSize=2 SrcRegion=<8;8,1> Type=uw //1 GRF |
#if (nSRC_REGION==nREGION_1) |
// For saving |
#define udDEST_ARGB udTOP_Y_IO //The output of previous stage is stored here; This is modified and is written to render cache |
//For masking operation |
#define udSRC_ARGB udBOT_Y_IO //To hold the destination data that shouldn't be modified |
#elif (nSRC_REGION==nREGION_2) |
// For saving |
#define udDEST_ARGB udBOT_Y_IO //The output of previous stage is stored here; This is modified and is written to render cache |
//For masking operation |
#define udSRC_ARGB udTOP_Y_IO //To hold the destination data that shouldn't be modified |
#endif |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/RGB_Pack.asm |
---|
0,0 → 1,40 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
.declare SRC_B Base=REG(r,10) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare SRC_G Base=REG(r,18) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare SRC_R Base=REG(r,26) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare SRC_A Base=REG(r,34) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
#define DEST_ARGB ubBOT_ARGB |
#undef nSRC_REGION |
#define nSRC_REGION nREGION_2 |
//Pack directly to mrf as optimization - vK |
$for(0, 0; <8; 1, 2) { |
// mov (16) DEST_ARGB(%2,0)<4> SRC_B(%1) { Compr, NoDDClr } // 16 B |
// mov (16) DEST_ARGB(%2,1)<4> SRC_G(%1) { Compr, NoDDClr, NoDDChk } // 16 G |
// mov (16) DEST_ARGB(%2,2)<4> SRC_R(%1) { Compr, NoDDClr, NoDDChk } // 16 R //these 2 inst can be merged - vK |
// mov (16) DEST_ARGB(%2,3)<4> SRC_A(%1) { Compr, NoDDChk } //DEST_RGB_FORMAT<0;1,0>:ub { Compr, NoDDChk } // 16 A |
mov (8) DEST_ARGB(%2, 0)<4> SRC_B(%1) { NoDDClr } // 8 B |
mov (8) DEST_ARGB(%2, 1)<4> SRC_G(%1) { NoDDClr, NoDDChk } // 8 G |
mov (8) DEST_ARGB(%2, 2)<4> SRC_R(%1) { NoDDClr, NoDDChk } // 8 R |
mov (8) DEST_ARGB(%2, 3)<4> SRC_A(%1) { NoDDChk } // 8 A |
mov (8) DEST_ARGB(%2+1,0)<4> SRC_B(%1,8) { NoDDClr } // 8 B |
mov (8) DEST_ARGB(%2+1,1)<4> SRC_G(%1,8) { NoDDClr, NoDDChk } // 8 G |
mov (8) DEST_ARGB(%2+1,2)<4> SRC_R(%1,8) { NoDDClr, NoDDChk } // 8 R |
mov (8) DEST_ARGB(%2+1,3)<4> SRC_A(%1,8) { NoDDChk } // 8 A |
} |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/SetupVPKernel.asm |
---|
0,0 → 1,34 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Modual name: SetupVPKernel.asm |
// |
// Initial setup for running video-processing kernels |
// |
#include "common.inc" |
// |
// Now, begin source code.... |
// |
.code |
#include "Init_All_Regs.asm" |
mov (8) rMSGSRC.0<1>:ud r0.0<8;8,1>:ud // Initialize message payload header with R0 |
#if defined (INC_BLENDING) |
mul (1) fALPHA_STEP_X:f fSCALING_STEP_RATIO:f fVIDEO_STEP_X:f //StepX_ratio = AlphaStepX / VideoStepX |
#endif |
// End of SetupVPKernel |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/common.inc |
---|
0,0 → 1,610 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#ifndef COMMON_INC |
#define COMMON_INC |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 80 |
.reg_count_payload 4 |
//========== Common constants ========== |
// Bit position constants |
#define BIT0 0x01 |
#define BIT1 0x02 |
#define BIT2 0x04 |
#define BIT3 0x08 |
#define BIT4 0x10 |
#define BIT5 0x20 |
#define BIT6 0x40 |
#define BIT7 0x80 |
#define BIT8 0x0100 |
#define BIT9 0x0200 |
#define BIT10 0x0400 |
#define BIT11 0x0800 |
#define BIT12 0x1000 |
#define BIT13 0x2000 |
#define BIT14 0x4000 |
#define BIT15 0x8000 |
#define BIT16 0x00010000 |
#define BIT17 0x00020000 |
#define BIT18 0x00040000 |
#define BIT19 0x00080000 |
#define BIT20 0x00100000 |
#define BIT21 0x00200000 |
#define BIT22 0x00400000 |
#define BIT23 0x00800000 |
#define BIT24 0x01000000 |
#define BIT25 0x02000000 |
#define BIT26 0x04000000 |
#define BIT27 0x08000000 |
#define BIT28 0x10000000 |
#define BIT29 0x20000000 |
#define BIT30 0x40000000 |
#define BIT31 0x80000000 |
#define nGRFWIB 32 // GRF register width in byte |
#define nGRFWIW 16 // GRF register width in word |
#define nGRFWID 8 // GRF register width in dword |
#define nTOP_FIELD 0 |
#define nBOTTOM_FIELD 1 |
#define nPREVIOUS_FRAME 0 // Previous frame |
#define nCURRENT_FRAME 1 // Current frame |
#define nNEXT_FRAME 2 // Next frame |
#ifdef GT |
// GT DI Kernel |
#else // ILK |
// ILK DI Kernel |
#endif |
//=================================== |
//========== Macros ========== |
#define REGION(Width,HStride) <Width*HStride;Width,HStride> // Region definition when ExecSize = Width |
#define RegFile(a) a |
#define REG(r,n) _REG(RegFile(r),n) |
#define _REG(r,n) __REG(r,n) |
#define __REG(r,n) r##n.0 |
#define REG2(r,n,s) _REG2(RegFile(r),n,s) |
#define _REG2(r,n,s) __REG2(r,n,s) |
#define __REG2(r,n,s) r##n.##s |
#define dNULLREG null<1>:d |
#define wNULLREG null<1>:w |
#define KERNEL_ID(kernel_ID) mov NULLREG kernel_ID:ud |
#define NODDCLR |
#define NODDCLR_NODDCHK |
#define NODDCHK |
//#define NODDCLR { NoDDClr } |
//#define NODDCLR_NODDCHK { NoDDClr, NoDDChk } |
//#define NODDCHK { NoDDChk } |
//========== Defines ==================== |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r5 (5 GRFS) |
// Inline parameters : r6 - r7 (2 GRFs) |
// MSGSRC : r9 (1 GRF) |
// Top IO region : r10 - r33 (24 GRFS 8 for each component Y,U,V 16X8:w) |
// Free space : r34 - r55 (22 GRFS) |
// Bottom IO region : r56 - r79 (24 GRFS 8 for each component Y,U,V 16X8:w) |
//=================================== |
//========== Static Parameters ========== |
// r1 |
#define fPROCAMP_C0 r1.0 // DWORD 0, Procamp constant C0 in :f |
#define wPROCAMP_C0 r1.0 // DWORD 0, Procamp constant C0 in :w |
#define NUMBER_0002 r1.1 // DWORD 0, 0x0002 used in procamp for GT |
#define udCP_MessageFormat r1.0 // DWORD 0, bits 2:3 of DWORD. (CE) |
#define udCP_StatePointer r1.0 // DWORD 0, bits 31:5 of DWORD.(CE) |
#define ubSRC_CF_OFFSET r1.4 // DWORD 1, byte 0-2. SRC packed color format YUV offset in :ub |
#define ubDEST_RGB_FORMAT r1.8 // DWORD 2, byte 0. Dest RGB color format (0:ARGB FF:XRGB) |
#define ubDEST_CF_OFFSET r1.8 // DWORD 2, byte 0-2. Dest packed color format YUV offset in :ub |
#define fPROCAMP_C1 r1.3 // DWORD 3, Procamp constant C1 in :f |
#define wPROCAMP_C1 r1.6 // DWORD 3, Procamp constant C1 in :w |
#define NUMBER_0100 r1.7 // DWORD 3, 0x0100 used in procamp for GT |
#define fPROCAMP_C2 r1.4 // DWORD 4, Procamp constant C2 in :f |
#define wPROCAMP_C2 r1.8 // DWORD 4, Procamp constant C2 in :w |
#define uwSPITCH_DIV2 r1.10 // DWORD 5, byte 0-1. statistics surface pitch divided by 2 |
#define fVIDEO_STEP_Y r1.6 // DWORD 6, :f, AVS normalized reciprocal of Y Scaling factor |
#define ubSTMM_SHIFT r1.24 // DWORD 6, byte 0. Amount of right shift for the DI blending equation |
#define ubSTMM_MIN r1.25 // DWORD 6, byte 1. Min STMM for DI blending equation |
#define ubSTMM_MAX r1.26 // DWORD 6, byte 2. Max STMM for DI blending equation |
#define ubTFLD_FIRST r1.27 // DWORD 6, byte 3. Field parity order |
#define fPROCAMP_C5 r1.7 // DWORD 7, Procamp constant C3 in :f |
#define wPROCAMP_C5 r1.14 // DWORD 7, Procamp constant C3 in :w |
// r2 |
#define fPROCAMP_C3 r2.0 // DWORD 0, Procamp constant C4 in :f |
#define wPROCAMP_C3 r2.0 // DWORD 0, Procamp constant C4 in :w |
#define fCSC_C5 r2.2 // DWORD 2. WG+CSC constant C5 |
#define wCSC_C5 r2.4 // DWORD 2. WG+CSC constant C5 |
#define fPROCAMP_C4 r2.3 // DWORD 3, Procamp constant C5 in :f |
#define wPROCAMP_C4 r2.6 // DWORD 3, Procamp constant C5 in :w |
#define fCSC_C8 r2.4 // DWORD 4. WG+CSC constant C8 |
#define wCSC_C8 r2.8 // DWORD 4. WG+CSC constant C8 |
#define fCSC_C9 r2.7 // DWORD 7. WG+CSC constant C9 |
#define wCSC_C9 r2.14 // DWORD 7. WG+CSC constant C9 |
// r3 |
#define fCSC_C0 r3.0 // DWORD 0. WG+CSC constant C0 |
#define wCSC_C0 r3.0 // DWORD 0. WG+CSC constant C0 |
#define fSCALING_STEP_RATIO r3.1 // DWORD 1, = Alpha_X_Scaling_Step / Video_X_scaling_Step :f (blending) |
#define fALPHA_STEP_X r3.1 // DWORD 1, = 1/Scale X, 0.5 = 2x, in :f (blending) |
#define fALPHA_STEP_Y r3.2 // DWORD 2, = 1/Scale Y, in :f |
#define fCSC_C4 r3.3 // DWORD 3. WG+CSC constant C4 |
#define wCSC_C4 r3.6 // DWORD 3. WG+CSC constant C4 |
#define fCSC_C1 r3.4 // DWORD 4. WG+CSC constant C1 |
#define wCSC_C1 r3.8 // DWORD 4. WG+CSC constant C1 |
#define wSRC_H_ORI_OFFSET r3.10 // DWORD 5, bytes 0,1 :w |
#define wSRC_V_ORI_OFFSET r3.11 // DWORD 5, bytes 2,3 :w |
#define dCOLOR_PIXEL r3.6 // DWORD 6. Color pixel for Colorfill |
#define fCSC_C2 r3.6 // DWORD 6. WG+CSC constant C2 |
#define wCSC_C2 r3.12 // DWORD 6. WG+CSC constant C2 |
#define fCSC_C3 r3.7 // DWORD 7. WG+CSC constant C3 |
#define wCSC_C3 r3.14 // DWORD 7. WG+CSC constant C3 |
// r4 |
#define fCSC_C6 r4.0 // DWORD 0. WG+CSC constant C6 |
#define wCSC_C6 r4.0 // DWORD 0. WG+CSC constant C6 |
#define wFRAME_ENDX r4.2 // DWORD 1, word 0. Horizontal end = Origin+Width (in pixels)(for multiple blocks) |
#define wNUM_BLKS r4.3 // DWORD 1, word 1. Number of blocks to process (for multiple blocks) |
#define wCOPY_ORIX r4.5 // DWORD 2, word 1. A copy of X origin (for multiple blocks) |
#define uwNLAS_ENABLE r4.4 // DWORD 2, bit 15, NLAS enble bit |
#define fCSC_C7 r4.3 // DWORD 3. WG+CSC constant C7 |
#define wCSC_C7 r4.6 // DWORD 3. WG+CSC constant C7 |
#define fCSC_C10 r4.4 // DWORD 4. WG+CSC constant C10 |
#define wCSC_C10 r4.8 // DWORD 4. WG+CSC constant C10 |
#define fFRAME_VID_ORIX r4.5 // DWORD 5, Frame horizontal origin normalized for scale kernel |
#define fFRAME_ALPHA_ORIX r4.6 // DWORD 6. Normalized alpha horiz origin for the frame |
#define fCSC_C11 r4.7 // DWORD 7. WG+CSC constant C11 |
#define wCSC_C11 r4.14 // DWORD 7. WG+CSC constant C11 |
//======================================== |
//========== Inline parameters =========== |
// r5 |
#define wORIX r5.0 // DWORD 0, byte 0-1. :w, Destination Block Horizontal Origin in pel |
#define wORIY r5.1 // DWORD 0, byte 2-3. :w, Destination Block Vertical Origin in pel |
#define fSRC_VID_H_ORI r5.1 // DWORD 1, :f, SRC Y horizontal origin normalized for scale kernel |
#define fSRC_VID_V_ORI r5.2 // DWORD 2, :f, SRC Y vertical origin normalized for scale kernel |
#define fSRC_ALPHA_H_ORI r5.3 // DWORD 3, :f, Normalized alpha horizontal origin |
#define fSRC_ALPHA_V_ORI r5.4 // DWORD 4, :f, Normalized alpha vertical origin |
#define uwALPHA_MASK_X r5.10 // DWORD 5, byte 0-1 :w, H. alpha mask |
#define ubALPHA_MASK_Y r5.22 // DWORD 5, byte 2. :ub,V. alpha mask |
#define ubBLK_CNT_X r5.23 // DWORD 5, byte 3, :ub, Horizontal Block Count per thread |
#define udBLOCK_MASK r5.6 // DWORD 6 |
#define uwBLOCK_MASK_H r5.12 // DWORD 6, byte 0-1 :uw, Block horizontal mask used in non-DWord aligned kernels |
#define ubBLOCK_MASK_V r5.26 // DWORD 6, byte 2 :ub, Block vertical mask used in non-DWord aligned kernels |
#define ubNUM_BLKS r5.27 // DWORD 6, byte 3, :ub, Total Block Count per thread |
#define fVIDEO_STEP_X r5.7 // DWORD 7. :f, AVS normalized reciprocal of X Scaling factor |
// r6 |
#define fVIDEO_STEP_DELTA r6.0 // DWORD 0. :f, AVS normalized delta between 2 adjacent scaling steps (used for non-linear scaling) |
//====================== Binding table ========================================= |
#if defined(DNDI) |
// DNDI Surface Binding Table |
//#define nBI_SRC_CURR 0 // Current input frame surface |
//#define nBI_SRC_PRIV 1 // Denoised previous input frame surface |
//#define nBI_SRC_STAT 2 // Statistics input surface (STMM / Noise motion history) |
//#define nBI_DEST_1ST 3 // 1st deinterlaced output frame surface |
// #define nBI_DEST_YUV 3 // Dest frame YUV (for DN only) |
//#define nBI_DEST_Y 3 // Dest frame Y (for DN only) |
//#define nBI_DEST_2ND 4 // 2nd deinterlaced output frame surface |
//#define nBI_DEST_DN_CURR 6 // Denoised current output frame surface |
//#define nBI_DEST_STAT 7 // Statistics output surface (STMM / Noise motion history) |
// #define nBI_DEST_U 8 // Dest frame U (for DN only) |
// #define nBI_DEST_V 9 // Dest frame V (for DN only) |
// #define nBI_SRC_U 10 // Src frame U (for DN only) |
// #define nBI_SRC_V 11 // Src frame V (for DN only) |
// #define nBI_SRC_UV 10 // Current src frame for UV |
#endif |
#if defined(INPUT_PL3) |
// PL3 Surface Binding Table |
// #define nBI_SRC_ALPHA 0 // Alpha |
// #define nBI_SRC_Y 1 // Current src frame |
// #define nBI_SRC_U 2 // Current src frame |
// #define nBI_SRC_V 3 // Current src frame |
// #define nBI_DEST_Y 10 // Dest frame |
// #define nBI_DEST_U 11 // Dest frame |
// #define nBI_DEST_V 12 // Dest frame |
// #define nBI_DEST_YUV 7 // Dest frame |
// #define nBI_DEST_RGB 7 // same num as BI_DEST_YUV, never used at the same time |
#endif |
#if defined(INPUT_PL2) |
// PL2 Surface Binding Table |
// #define nBI_SRC_ALPHA 0 // Alpha |
// #define nBI_SRC_Y 1 // Current src frame for Y + offseted UV |
// #define nBI_SRC_YUV 1 // Current src frame for YUV in case of NV12_AVS |
// #define nBI_SRC_UV 2 // Current src frame for UV |
// #define nBI_DEST_YUV 7 // Current dest frame for Y + offseted UV |
// #define nBI_DEST_RGB 7 // same num as BI_DEST_YUV, never used at the same time |
// #define nBI_DEST_Y 10 // Dest frame |
// #define nBI_DEST_U 11 // Dest frame |
// #define nBI_DEST_V 12 // Dest frame |
#endif |
#if defined(INPUT_PA) || defined(COLORFILL) |
// Packed Surface Binding Table |
// #define nBI_SRC_ALPHA 0 // Alpha |
// #define nBI_SRC_YUV 1 // Current src frame |
// #define nBI_DEST_YUV 3 // Dest frame |
// #define nBI_DEST_RGB 3 // same num as BI_DEST_YUV, never used at the same time |
#endif |
//supper binding table |
#define nBI_ALPHA_SRC 0 |
#define nBI_CURRENT_SRC_YUV 1 |
#define nBI_FIELD_COPY_SRC_1_YUV 1 |
#define nBI_CURRENT_SRC_Y 1 |
#define nBI_FIELD_COPY_SRC_1_Y 1 |
#define nBI_CURRENT_SRC_RGB 1 |
#define nBI_CURRENT_SRC_UV 2 |
#define nBI_FIELD_COPY_SRC_1_UV 2 |
#define nBI_CURRENT_SRC_U 2 |
#define nBI_FIELD_COPY_SRC_1_U 2 |
#define nBI_CURRENT_SRC_V 3 |
#define nBI_FIELD_COPY_SRC_1_V 3 |
#define nBI_TEMPORAL_REFERENCE_YUV 4 |
#define nBI_FIELD_COPY_SRC_2_YUV 4 |
#define nBI_TEMPORAL_REFERENCE_Y 4 |
#define nBI_FIELD_COPY_SRC_2_Y 4 |
#define nBI_CURRENT_SRC_YUV_HW_DI 4 |
#define nBI_TEMPORAL_REFERENCE_UV 5 |
#define nBI_FIELD_COPY_SRC_2_UV 5 |
#define nBI_TEMPORAL_REFERENCE_U 5 |
#define nBI_FIELD_COPY_SRC_2_U 5 |
#define nBI_DENOISED_PREV_HW_DI 5 |
#define nBI_TEMPORAL_REFERENCE_V 6 |
#define nBI_FIELD_COPY_SRC_2_V 6 |
#define nBI_STMM_HISTORY 6 |
#define nBI_DESTINATION_YUV 7 |
#define nBI_DESTINATION_RGB 7 |
#define nBI_DESTINATION_Y 7 |
#define nBI_DESTINATION_UV 8 |
#define nBI_DESTINATION_U 8 |
#define nBI_DESTINATION_V 9 |
#define nBI_DESTINATION_1_YUV 10 |
#define nBI_DESTINATION_1_Y 10 |
#define nBI_DESTINATION_1_UV 11 |
#define nBI_DESTINATION_1_U 11 |
#define nBI_DESTINATION_1_V 12 |
#define nBI_DESTINATION_2_YUV 13 |
#define nBI_DESTINATION_2_Y 13 |
#define nBI_DESTINATION_2_UV 14 |
#define nBI_DESTINATION_2_U 14 |
#define nBI_DESTINATION_2_V 15 |
#define nBI_STMM_HISTORY_OUTPUT 20 |
#define nBI_TEMPORAL_REFERENCE_YUV_PDI 21 |
#define nBI_TEMPORAL_REFERENCE_Y_PDI 21 |
#define nBI_TEMPORAL_REFERENCE_UV_PDI 22 |
#define nBI_TEMPORAL_REFERENCE_U_PDI 22 |
#define nBI_TEMPORAL_REFERENCE_V_PDI 23 |
#define nBI_SUBVIDEO_YUV 26 |
#define nBI_SUBVIDEO_Y 26 |
#define nBI_SUBVIDEO_UV 27 |
#define nBI_SUBVIDEO_U 27 |
#define nBI_SUBVIDEO_V 28 |
#define nBI_SUBPICTURE_YUV 29 |
#define nBI_SUBPICTURE_P8 29 |
#define nBI_SUBPICTURE_A8 30 |
#define nBI_GRAPHIC_YUV 31 |
#define nBI_GRAPHIC_P8 31 |
#define nBI_GRAPHIC_A8 32 |
//========== Planar Sampler State Table Index ========== |
#define nSI_SRC_ALPHA 0x000 // Sampler State for Alpha |
//Sampler Index for AVS/IEF messages |
#define nSI_SRC_Y 0x400 // Sampler State for Y |
#define nSI_SRC_U 0x800 // Sampler State for U |
#define nSI_SRC_V 0xC00 // Sampler State for V |
#define nSI_SRC_UV 0x800 // For NV12 surfaces |
#define nSI_SRC_YUV 0x400 // For Packed surfaces |
#define nSI_SRC_RGB 0x400 // For ARGB surfaces |
//Sampler Index for SIMD16 sampler messages |
#define nSI_SRC_SIMD16_Y 0x100 // Sampler State for Y |
#define nSI_SRC_SIMD16_U 0x200 // Sampler State for U |
#define nSI_SRC_SIMD16_V 0x300 // Sampler State for V |
#define nSI_SRC_SIMD16_UV 0x200 // For NV12 surfaces |
#define nSI_SRC_SIMD16_YUV 0x100 // For Packed surfaces |
#define nSI_SRC_SIMD16_RGB 0x100 // For ARGB surfaces |
// Common Registers |
#define pCF_Y_OFFSET a0.4 // Address register holding Y offset |
#define pCF_U_OFFSET a0.5 // Address register holding U offset |
#define pCF_V_OFFSET a0.6 // Address register holding V offset |
// #define YUV_ORI ORIX // Used by writing packed data to dport |
//================= Message Payload Header fields ============================== |
#define IDP r0.2:ud // Interface Descriptor Pointer |
//================= Common Message Descriptor TBD add common load and save ===== |
// Message descriptor for dataport media write |
#ifdef GT |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 0 1010 (media block write) 00000 |
// 00000000 (binding table index - set later) |
// = 0x02094000 |
#define nDPMW_MSGDSC 0x02094000 |
#define nDPMR_MSGDSC 0x02098000 // Data Port Media Block Read Message Descriptor |
// TBD |
#else // ILK |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 000 0 010 (media block write) 0000 |
// 00000000 (binding table index - set later) |
// = 0x02082000 |
#define nDPMW_MSGDSC 0x02082000 // Data Port Media Block Write Message Descriptor |
#define nDPMR_MSGDSC 0x0208A000 // Data Port Media Block Read Message Descriptor |
#endif |
// Message Length defines |
#define nMSGLEN_1 0x02000000 // Message Length of 1 GRF for Send |
#define nMSGLEN_2 0x04000000 // Message Length of 2 GRF for Send |
#define nMSGLEN_4 0x08000000 // Message Length of 4 GRF for Send |
#define nMSGLEN_8 0x10000000 // Message Length of 8 GRF for Send |
// Response Length defines |
#define nRESLEN_1 0x00100000 // Message Response Length of 1 GRF from Send |
#define nRESLEN_2 0x00200000 // Message Response Length of 2 GRF from Send |
#define nRESLEN_3 0x00300000 // Message Response Length of 3 GRF from Send |
#define nRESLEN_4 0x00400000 // Message Response Length of 4 GRF from Send |
#define nRESLEN_5 0x00500000 // Message Response Length of 5 GRF from Send |
#define nRESLEN_8 0x00800000 // Message Response Length of 8 GRF from Send |
#define nRESLEN_9 0x00900000 // Message Response Length of 9 GRF from Send |
#define nRESLEN_11 0x00B00000 // Message Response Length of 11 GRF from Send |
#define nRESLEN_12 0x00C00000 // Message Response Length of 12 GRF from Send |
#define nRESLEN_16 0x01000000 // Message Response Length of 16 GRF from Send |
// Block Width and Height Size defines |
#define nBLOCK_WIDTH_4 0x00000003 // Block Width 4 |
#define nBLOCK_WIDTH_5 0x00000004 // Block Width 5 |
#define nBLOCK_WIDTH_8 0x00000007 // Block Width 8 |
#define nBLOCK_WIDTH_9 0x00000008 // Block Width 9 |
#define nBLOCK_WIDTH_12 0x0000000B // Block Width 12 |
#define nBLOCK_WIDTH_16 0x0000000F // Block Width 16 |
#define nBLOCK_WIDTH_20 0x00000013 // Block Width 20 |
#define nBLOCK_WIDTH_32 0x0000001F // Block Width 32 |
#define nBLOCK_HEIGHT_1 0x00000000 // Block Height 1 |
#define nBLOCK_HEIGHT_2 0x00010000 // Block Height 2 |
#define nBLOCK_HEIGHT_4 0x00030000 // Block Height 4 |
#define nBLOCK_HEIGHT_5 0x00040000 // Block Height 5 |
#define nBLOCK_HEIGHT_8 0x00070000 // Block Height 8 |
// Extended Message Descriptors |
#define nEXTENDED_MATH 0x1 |
#define nSMPL_ENGINE 0x2 |
#define nMESSAGE_GATEWAY 0x3 |
#define nDATAPORT_READ 0x4 |
#define nDATAPORT_WRITE 0x5 |
#define nURB 0x6 |
#define nTS_EOT 0x27 // with End-Of-Thread bit ON |
// Common message descriptors: |
#ifdef GT |
#define nEOT_MSGDSC 0x02000010 // End of Thread Message Descriptor |
#define IF_NULL null:uw null:uw null:uw //for different if instructions on ILK and Gen6 |
#else //ILK |
#define nEOT_MSGDSC 0x02000000 // End of Thread Message Descriptor |
#define IF_NULL |
#endif |
//===================== Math Function Control =================================== |
#define mfcINV 0x1 // reciprocal |
#define mfcLOG 0x2 // log |
#define mfcEXP 0x3 // exponent |
#define mfcSQRT 0x4 // square root |
#define mfcRSQ 0x5 // reciprocal square root |
#define mfcSIN 0x6 // sine (in radians) |
#define mfcCOS 0x7 // cosine (in radians) |
#define mfcSINCOS 0x8 // dst0 = sin of src0, dst1 = cosine of src0 (in radians) - GT+ ONLY |
#define mfcPOW 0xA // abs(src0) raised to the src1 power |
#define mfcINT_DIV_QR 0xB // return quotient and remainder |
#define mfcINT_DIV_Q 0xC // return quotient |
#define mfcINT_DIV_R 0xD // return remainder |
//=================== Message related registers ================================= |
#ifdef GT |
#define udDUMMY_NULL |
#else // _ILK |
#define udDUMMY_NULL null:ud // Used in send inst as src0 |
#endif |
//----------- Message Registers ------------ |
#define mMSGHDR m1 // Message Payload Header |
#define mMSGHDRY m1 // Message Payload Header register for Y data |
#define mMSGHDRU m2 // Message Payload Header register for U data |
#define mMSGHDRV m3 // Message Payload Header register for V data |
#define mMSGHDRYA m4 // Second Message Payload Header register for Y data |
#define mMSGHDRH m5 // Message Payload Header register for motion history |
#define mMSGHDRY1 m1 // Message Payload Header register for first Y data |
#define mMSGHDRY2 m2 // Message Payload Header register for second Y data |
#define mMSGHDRY3 m3 // Message Payload Header register for third Y data |
#define mMSGHDRY4 m4 // Message Payload Header register for fourth Y data |
#define mMSGHDRY5 m5 // Message Payload Header register for fifth Y data |
#define mMSGHDRY6 m6 // Message Payload Header register for sixth Y data |
#define mMSGHDR_EOT m15 // Dummy Message Register for EOT |
#define rMSGSRC r8 // Message source register |
#define pMSGDSC a0.0:ud // Message Descriptor register (type DWORD) |
#define udMH_ORI rMSGSRC.0 // Data Port Media Block R/W message header block offset |
#define udMH_ORIX rMSGSRC.0 // Data Port Media Block R/W message header X offset |
#define udMH_ORIY rMSGSRC.1 // Data Port Media Block R/W message header Y offset |
#define udMH_SIZE rMSGSRC.2 // Data Port Media Block R/W message header block width & height |
// M2 - M9 for message data payload |
.declare mubMSGPAYLOAD Base=m2 ElementSize=1 SrcRegion=REGION(16,1) Type=ub |
.declare muwMSGPAYLOAD Base=m2 ElementSize=2 SrcRegion=REGION(16,1) Type=uw |
.declare mudMSGPAYLOAD Base=m2 ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
.declare mfMSGPAYLOAD Base=m2 ElementSize=4 SrcRegion=REGION(8,1) Type=f |
//=================== End of thread instruction =========================== |
#ifdef GT |
#define END_THREAD mov (8) mMSGHDR_EOT<1>:ud r0.0<8;8,1>:ud \n\ |
send (1) null<1>:d mMSGHDR_EOT nTS_EOT nEOT_MSGDSC |
#else // ILK This should be changed to 1 instruction; I have tested it and it works - vK |
#define END_THREAD mov (8) mMSGHDR_EOT<1>:ud r0.0<8;8,1>:ud \n\ |
send (1) dNULLREG mMSGHDR_EOT udDUMMY_NULL nTS_EOT nEOT_MSGDSC:ud |
#endif |
//======================================================================= |
// Region declarations for SRC and DEST as TOP and BOT |
// Common I/O regions |
#define nREGION_1 1 |
#define nREGION_2 2 |
//*** These region base GRFs are fixed regardless planar/packed, and data alignment. |
//*** Each kernel is responsible to select the correct region declaration below. |
//*** YUV regions are not necessarily next to each other. |
#define nTOP_Y 10 // r10 - r17 (8 GRFs) |
#define nTOP_U 18 // r18 - r25 (8 GRFs) |
#define nTOP_V 26 // r26 - r33 (8 GRFs) |
#define nBOT_Y 56 // r56 - r63 (8 GRFs) |
#define nBOT_U 64 // r64 - r71 (8 GRFs) |
#define nBOT_V 72 // r72 - r79 (8 GRFs) |
// Define temp space for any usages |
#define nTEMP0 34 |
#define nTEMP1 35 |
#define nTEMP2 36 |
#define nTEMP3 37 |
#define nTEMP4 38 |
#define nTEMP5 39 |
#define nTEMP6 40 |
#define nTEMP7 41 |
#define nTEMP8 42 |
#define nTEMP10 44 |
#define nTEMP12 46 |
#define nTEMP14 48 |
#define nTEMP16 50 |
#define nTEMP17 51 |
#define nTEMP18 52 |
#define nTEMP24 58 |
// Common region 1 |
.declare ubTOP_Y Base=REG(r,nTOP_Y) ElementSize=1 SrcRegion=REGION(16,1) DstRegion=<1> Type=ub |
.declare ubTOP_U Base=REG(r,nTOP_U) ElementSize=1 SrcRegion=REGION(8,1) DstRegion=<1> Type=ub |
.declare ubTOP_V Base=REG(r,nTOP_V) ElementSize=1 SrcRegion=REGION(8,1) DstRegion=<1> Type=ub |
.declare uwTOP_Y Base=REG(r,nTOP_Y) ElementSize=2 SrcRegion=REGION(16,1) DstRegion=<1> Type=uw |
.declare uwTOP_U Base=REG(r,nTOP_U) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare uwTOP_V Base=REG(r,nTOP_V) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare ub2TOP_Y Base=REG(r,nTOP_Y) ElementSize=1 SrcRegion=REGION(16,2) DstRegion=<1> Type=ub |
.declare ub2TOP_U Base=REG(r,nTOP_U) ElementSize=1 SrcRegion=REGION(8,2) DstRegion=<1> Type=ub |
.declare ub2TOP_V Base=REG(r,nTOP_V) ElementSize=1 SrcRegion=REGION(8,2) DstRegion=<1> Type=ub |
.declare ub4TOP_Y Base=REG(r,nTOP_Y) ElementSize=1 SrcRegion=REGION(8,4) Type=ub |
.declare ub4TOP_U Base=REG(r,nTOP_U) ElementSize=1 SrcRegion=REGION(8,4) Type=ub |
.declare ub4TOP_V Base=REG(r,nTOP_V) ElementSize=1 SrcRegion=REGION(8,4) Type=ub |
.declare ubTOP_ARGB Base=REG(r,nTOP_Y) ElementSize=1 SrcRegion=REGION(8,4) Type=ub |
// Used by "send" instruction |
.declare udTOP_Y_IO Base=REG(r,nTOP_Y) ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
.declare udTOP_U_IO Base=REG(r,nTOP_U) ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
.declare udTOP_V_IO Base=REG(r,nTOP_V) ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
// Common region 2 |
.declare ubBOT_Y Base=REG(r,nBOT_Y) ElementSize=1 SrcRegion=REGION(16,1) DstRegion=<1> Type=ub |
.declare ubBOT_U Base=REG(r,nBOT_U) ElementSize=1 SrcRegion=REGION(8,1) DstRegion=<1> Type=ub |
.declare ubBOT_V Base=REG(r,nBOT_V) ElementSize=1 SrcRegion=REGION(8,1) DstRegion=<1> Type=ub |
.declare uwBOT_Y Base=REG(r,nBOT_Y) ElementSize=2 SrcRegion=REGION(16,1) DstRegion=<1> Type=uw |
.declare uwBOT_U Base=REG(r,nBOT_U) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare uwBOT_V Base=REG(r,nBOT_V) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare ub2BOT_Y Base=REG(r,nBOT_Y) ElementSize=1 SrcRegion=REGION(16,2) DstRegion=<1> Type=ub |
.declare ub2BOT_U Base=REG(r,nBOT_U) ElementSize=1 SrcRegion=REGION(8,2) DstRegion=<1> Type=ub |
.declare ub2BOT_V Base=REG(r,nBOT_V) ElementSize=1 SrcRegion=REGION(8,2) DstRegion=<1> Type=ub |
.declare ubBOT_ARGB Base=REG(r,nBOT_Y) ElementSize=1 SrcRegion=REGION(8,4) Type=ub |
// Used by "send" instruction |
.declare udBOT_Y_IO Base=REG(r,nBOT_Y) ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
.declare udBOT_U_IO Base=REG(r,nBOT_U) ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
.declare udBOT_V_IO Base=REG(r,nBOT_V) ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
// End of common.inc |
#endif // COMMON_INC |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/readSampler16x1.asm |
---|
0,0 → 1,55 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: readSampler16x1.asm |
// |
// Read one row of pix through sampler |
// |
//#define SAMPLER_MSG_DSC 0x166A0000 // ILK Sampler Message Descriptor |
// Send Message [DevILK] Message Descriptor |
// MBZ MsgL=5 MsgR=8 H MBZ SIMD MsgType SmplrIndx BindTab |
// 000 0 101 0 1000 1 0 10 0000 0000 00000000 |
// 0 A 8 A 0 0 0 0 |
// MsgL=1+2*2(u,v)=5 MsgR=8 |
#define SAMPLER_MSG_DSC 0x0A8A0000 // ILK Sampler Message Descriptor |
// Assume MSGSRC is set already in the caller |
//mov (8) rMSGSRC.0<1>:ud 0:ud // Unused fileds |
// Read 16 sampled pixels and stored them in float32 in 8 GRFs |
// 422 data is expanded to 444, return 8 GRF in the order of RGB- (UYV-). |
// 420 data has three surfaces, return 8 GRF. Valid is always in the 1st GRF when in R8. Make sure no overwrite the following 3 GRFs. |
// alpha data is expanded to 4444, return 8 GRF in the order of RGBA (UYVA). |
mov(16) mMSGHDR<1>:uw rMSGSRC<16;16,1>:uw |
send (16) DATABUF(0)<1> mMSGHDR udDUMMY_NULL 0x2 SAMPLER_MSG_DSC+SAMPLER_IDX+BINDING_IDX:ud |
/drivers/video/i965/shaders/post_processing/gen5_6/Common/undefall.inc |
---|
0,0 → 1,65 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Modual name: undefall.inc |
// |
// undefine all global symbol for new process |
// |
//Source definitions |
#undef ubSRC_Y |
#undef ubSRC_U |
#undef ubSRC_V |
#undef ub2SRC_Y |
#undef ub2SRC_U |
#undef ub2SRC_V |
#undef ub4SRC_Y |
#undef ub4SRC_U |
#undef ub4SRC_V |
#undef uwSRC_Y |
#undef uwSRC_U |
#undef uwSRC_V |
#undef udSRC_Y |
#undef udSRC_U |
#undef udSRC_V |
#undef udSRC_YUV |
#undef nSRC_YUV_REG |
//Destination definitions |
#undef ubDEST_Y |
#undef ubDEST_U |
#undef ubDEST_V |
#undef ub2DEST_Y |
#undef ub2DEST_U |
#undef ub2DEST_V |
#undef ub4DEST_Y |
#undef ub4DEST_U |
#undef ub4DEST_V |
#undef uwDEST_Y |
#undef uwDEST_U |
#undef uwDEST_V |
#undef udDEST_Y |
#undef udDEST_U |
#undef udDEST_V |
#undef udDEST_YUV |
#undef nDEST_YUV_REG |
#undef ubDEST_ARGB |
// End of undefall.inc |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/AVS_IEF.inc |
---|
0,0 → 1,108 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: AVS_IEF.inc |
#ifndef _AVS_INF_INC_ |
#define _AVS_INF_INC_ |
#include "undefall.inc" //Undefine the SRC and DEST sysmbols |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (V) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (U) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
#define mAVS_8x8_HDR m0 // Message Header |
#define mAVS_PAYLOAD m1 // Message Payload Header |
#define mAVS_8x8_HDR_2 m2 // Message Header |
#define mAVS_PAYLOAD_2 m3 // Message Payload Header |
#define mAVS_8x8_HDR_UV m2 // Message Header |
#define mAVS_PAYLOAD_UV m3 // Message Payload Header |
#define rAVS_8x8_HDR rMSGSRC // Mirror of Message Header |
#define rAVS_PAYLOAD r9 // Mirror of Message Payload Header |
// AVS payload |
// m1.7 Ignored |
// m1.6 Pixel 0 V Address ---> ORIY (Y0) |
// m1.5 Delta V ---> Step Y |
// m1.4 Ignored |
// m1.3 Ignored |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 U 2nd Derivative ---> NLAS dx |
// m1.0 Delta U ---> Step X |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel |
// 19 Header Present 1 |
// 18 MBZ 0 |
// 17:16 SIMD Mode 11 ---> SIMD64 |
// 15:12 Message Type 0011 ---> sample_8x8 |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
#define nAVS_MSG_DSC_1CH 0x044BB000 |
#define nAVS_MSG_DSC_2CH 0x048BB000 |
#define nAVS_MSG_DSC_3CH 0x04CBB000 |
#define nAVS_MSG_DSC_4CH 0x050BB000 |
#define nAVS_RED_CHANNEL_ONLY 0x0000E000 // Enable Red channel only |
#define nAVS_GREEN_CHANNEL_ONLY 0x0000D000 // Enable Green channel only |
#define nAVS_RED_BLUE_CHANNELS 0x0000A000 // Enable Red and Blue channels |
#define nAVS_RGB_CHANNELS 0x00008000 // Enable RGB(YUV) channels |
#define nAVS_ALL_CHANNELS 0x00000000 // Enable all channels (ARGB\AYUV) |
.declare ubAVS_RESPONSE Base=REG(r,nTEMP8) ElementSize=1 SrcRegion=REGION(16,1) Type=ub |
.declare uwAVS_RESPONSE Base=REG(r,nTEMP8) ElementSize=2 SrcRegion=REGION(16,1) Type=uw |
.declare ubAVS_RESPONSE_2 Base=REG(r,nTEMP24) ElementSize=1 SrcRegion=REGION(16,1) Type=ub |
.declare uwAVS_RESPONSE_2 Base=REG(r,nTEMP24) ElementSize=2 SrcRegion=REGION(16,1) Type=uw |
#if (nSRC_REGION==nREGION_2) |
#define uwDEST_Y uwBOT_Y |
#define uwDEST_U uwBOT_U |
#define uwDEST_V uwBOT_V |
#define ubDEST_Y ubBOT_Y |
#undef nSRC_REGION |
#define nSRC_REGION nREGION_2 |
#else //(nSRC_REGION==nREGION_1) |
#define uwDEST_Y uwTOP_Y |
#define uwDEST_U uwTOP_U |
#define uwDEST_V uwTOP_V |
#define ubDEST_Y ubTOP_Y |
#undef nSRC_REGION |
#define nSRC_REGION nREGION_1 |
#endif |
#endif //_AVS_INF_INC_ |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/AVS_SetupFirstBlock.asm |
---|
0,0 → 1,35 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//------------------------------------------------------------------------------ |
// AVS_SetupFirstBlock.asm |
//------------------------------------------------------------------------------ |
// Setup Message Header |
// mov (8) mAVS_8x8_HDR<1>:ud rMSGSRC<8;8,1>:ud |
// Check NLAS Enable bit |
and.z.f0.0 (1) wNULLREG uwNLAS_ENABLE:uw BIT15:uw |
(f0.0)mov (1) fVIDEO_STEP_DELTA:f 0.0:f |
// Setup Message Payload Header for 1st block of Media Sampler 8x8 |
mov (1) rAVS_PAYLOAD.0:f fVIDEO_STEP_DELTA:f //NLAS dx |
mov (1) rAVS_PAYLOAD.1:f fVIDEO_STEP_X:f //Step X |
mov (1) rAVS_PAYLOAD.5:f fVIDEO_STEP_Y:f //Step Y |
mov (2) rAVS_PAYLOAD.2<4>:f fSRC_VID_H_ORI<2;2,1>:f //Orig X and Y |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/AVS_SetupSecondBlock.asm |
---|
0,0 → 1,27 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//------------------------------------------------------------------------------ |
// AVS_SetupSecondBlock.asm |
//------------------------------------------------------------------------------ |
//NLAS calculations for 2nd block of Media Sampler 8x8: |
// X(i) = X0 + dx*i + ddx*i*(i-1)/2 ==> X(8) = X0 + dx*8 +ddx*28 |
// dx(i)= dx(0) + ddx*i ==> dx(8)= dx + ddx*8 |
// Calculating X(8) |
mov (1) acc0.2<1>:f fSRC_VID_H_ORI:f |
mac (1) acc0.2<1>:f fVIDEO_STEP_X:f 8.0:f |
mac (1) rAVS_PAYLOAD.2:f fVIDEO_STEP_DELTA:f 28.0:f |
// Calculating dx(8) |
mov (1) acc0.1<1>:f fVIDEO_STEP_X:f |
mac (1) rAVS_PAYLOAD.1:f fVIDEO_STEP_DELTA:f 8.0:f |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/DI.inc |
---|
0,0 → 1,194 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: DI.inc |
#ifdef GT |
// GT DI Kernel |
#else // ILK |
// ILK DI Kernel |
#endif |
//--------------------------------------------------------------------------- |
// Binding table indices |
//--------------------------------------------------------------------------- |
#define nBIDX_DI_PRV 10 // Previous DI-ed frame |
#define nBIDX_DI_CUR 13 // Current DI-ed frame |
#define nBIDX_DN 7 // Denoised frame |
#define nBIDX_STAT 20 // Statistics |
#define nBIDX_DI_Source 4 // Source Surface |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
#define nSMPL_ENGINE 0x2 |
#define nDATAPORT_WRITE 0x5 |
#define nTS_EOT 0x27 // with End-Of-Thread bit ON |
// Message descriptor for end-of-thread |
// = 000 0001 (message len) 00000 (resp len) |
// 0 (header present 0) 00000000000000 0 (URB dereferenced) 0000 |
#define nEOT_MSGDSC 0x02000000 |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// comment begin |
// The following is commented out because of walker feature |
// It corresponds to the #ifdef GT #else and #endif |
//#define nSMPL_MSGDSC 0x040b8000 |
//#define nSMPL_RESP_LEN_DI 0x00c00000 // 12 |
//#define nSMPL_RESP_LEN_NODI_PL 0x00500000 // 5 |
//#define nSMPL_RESP_LEN_NODI_PA 0x00900000 // 9 |
//#define nSMPL_RESP_LEN_NODN 0x00900000 // 9 |
//#define nSMPL_RESP_LEN_PDI 0x00b00000 // 11 |
// comment end |
#ifdef GT |
#define nSMPL_MSGDSC 0x040b8000 |
#define nSMPL_RESP_LEN_DI 0x00c00000 // 12 |
#define nSMPL_RESP_LEN_NODI_PL 0x00500000 // 5 //DI disable, the XY stored in 5th GRF, no impact to return length |
#define nSMPL_RESP_LEN_NODI_PA 0x00900000 // 9 //DI disable, the XY stored in 5th GRF, no impact to return length |
#define nSMPL_RESP_LEN_NODN 0x00a00000 // 10 //NO DN, originally use 9, now we need use 10 to store the XY with walker |
#define nSMPL_RESP_LEN_PDI 0x00b00000 // 11 |
#else |
#define nSMPL_MSGDSC 0x040b8000 |
#define nSMPL_RESP_LEN_DI 0x00c00000 // 12 |
#define nSMPL_RESP_LEN_NODI_PL 0x00500000 // 5 |
#define nSMPL_RESP_LEN_NODI_PA 0x00900000 // 9 |
#define nSMPL_RESP_LEN_NODN 0x00900000 // 9 |
#define nSMPL_RESP_LEN_PDI 0x00b00000 // 11 |
#endif |
// Message descriptor for dataport media write |
#ifdef GT |
// = 000 0000 (message len - set later) 00000 (resp len 0) |
// 1 (header present 1) 0 0 1010 (media block write) 00000 |
// 00000000 (binding table index - set later) |
// = 0x00094000 |
#define nDPMW_MSGDSC 0x00094000 |
#else // ILK |
// = 000 0000 (message len - set later) 00000 (resp len 0) |
// 1 (header present 1) 000 0 010 (media block write) 0000 |
// 00000000 (binding table index - set later) |
// = 0x00082000 |
#define nDPMW_MSGDSC 0x00082000 |
#endif |
#define nDPMW_MSG_LEN_STMM 0x04000000 // 2 - STMM |
#define nDPMW_MSG_LEN_DH 0x04000000 // 2 - Denoise history |
#define nDPMW_MSG_LEN_PA_DN 0x0a000000 // 5 - Denoised output |
#define nDPMW_MSG_LEN_PA_NODI 0x12000000 // 9 - Denoised output - denoise only - DI disabled |
#define nDPMW_MSG_LEN_PL_DN 0x06000000 // 3 - Denoised output |
#define nDPMW_MSG_LEN_PL_NODI 0x0a000000 // 5 - Denoised output - denoise only - DI disabled |
#define nDPMW_MSG_LEN_DI 0x0a000000 // 5 - DI output |
//--------------------------------------------------------------------------- |
// Static and inline parameters |
//--------------------------------------------------------------------------- |
// Static parameters |
.declare ubTFLD_FIRST Base=r1.27 ElementSize=1 Type=ub // top field first |
.declare ubSRCYUVOFFSET Base=r1.4 ElementSize=1 Type=ub // source packed format |
.declare ubDSTYUVOFFSET Base=r1.8 ElementSize=1 Type=ub // destination packed format |
.declare uwSPITCH_DIV2 Base=r1.10 ElementSize=2 Type=uw // statistics surface pitch divided by 2 |
// Inline parameters |
.declare uwXORIGIN Base=r5.0 ElementSize=2 Type=uw // X and Y origin |
.declare uwYORIGIN Base=r5.1 ElementSize=2 Type=uw |
//--------------------------------------------------------------------------- |
// Kernel GRF variables |
//--------------------------------------------------------------------------- |
// Message response (Denoised & DI-ed pixels & statistics) |
.declare dRESP Base=r8 ElementSize=4 Type=d // Response message (12 or 5 or 11) |
.declare ubRESP Base=r8 ElementSize=1 Type=ub |
.declare dSTMM Base=r16 ElementSize=4 Type=d // STMM |
.declare ubDN_HIST_NODI Base=r12 ElementSize=1 Type=ub // Denoise history data (DI disabled) |
.declare ubDN_HIST_DI Base=r17 ElementSize=1 Type=ub // Denoise history data (DI enabled) |
.declare uwRETURNED_POSITION_DI Base=r17 ElementSize=2 Type=uw // XY_Return_Data (DI enabled) |
.declare uwRETURNED_POSITION_DN Base=r12 ElementSize=2 Type=uw // XY_Return_Data (DI disabled) |
.declare ub1ST_FLD_DN Base=r12 ElementSize=1 Type=ub // 1st field Denoised data (DI enabled) |
.declare d1ST_FLD_DN Base=r12 ElementSize=4 Type=d |
.declare ub2ND_FLD_DN Base=r18 ElementSize=1 Type=ub // 2nd field Denoised data (DI enabled) |
.declare d2ND_FLD_DN Base=r18 ElementSize=4 Type=d |
.declare ubPRV_DI Base=r8 ElementSize=1 Type=ub // Previous frame DI (DI enabled) |
.declare ubCUR_DI Base=r12 ElementSize=1 Type=ub // Previous frame DI (DI enabled) |
// Packed denoised output |
.declare ubDN_YUV Base=r22 ElementSize=1 Type=ub // Denoised YUV422 |
.declare dDN_YUV Base=r22 ElementSize=4 Type=d |
#define npDN_YUV 704 // = 22*32 = 0x280 |
// Packed DI output |
.declare dDI_YUV_PRV Base=r32 ElementSize=4 Type=d // Previous frame DI output |
.declare dDI_YUV_CUR Base=r36 ElementSize=4 Type=d // Current frame DI output |
#define npDI_YUV 1024 // = 32*32 = 0x |
// For packed output |
#define p422_YOFFSET a0.2 |
#define p422_UOFFSET a0.3 |
#define p422_VOFFSET a0.4 |
#define pDN_TFLDSRC a0.6 |
#define pDN_BFLDSRC a0.7 |
#define npRESP 192 // = 6*32 |
// Message source |
.declare udMSGSRC Base=r70 ElementSize=4 Type=ud |
.declare uwMSGSRC Base=r70 ElementSize=2 Type=uw |
.declare dMSGSRC Base=r70 ElementSize=4 Type=d |
//--------------------------------------------------------------------------- |
// Kernel MRF variables |
//--------------------------------------------------------------------------- |
#define mMSGHDR_SMPL m1 // Sampler response: m1~m2 |
.declare mudMSGHDR_SMPL Base=m1 ElementSize=4 Type=ud |
.declare muwMSGHDR_SMPL Base=m1 ElementSize=2 Type=uw |
#define mMSGHDR_DN m3 // Denoise output: m3~m7 for PA, m3~m5 for PL |
.declare mdMSGHDR_DN Base=m3 ElementSize=4 Type=d |
#define mMSGHDR_STAT m8 // Statistics output: m8~m9 |
.declare mdMSGHDR_STAT Base=m8 ElementSize=4 Type=d |
.declare mubMSGHDR_STAT Base=m8 ElementSize=1 Type=ub |
#define mMSGHDR_DI m10 // DI output: m10~m14 |
.declare mdMSGHDR_DI Base=m10 ElementSize=4 Type=d |
#define mMSGHDR_EOT m15 // EOT |
#ifdef GT |
#define MSGSRC |
#else |
#define MSGSRC null:ud |
#endif |
//--------------------------------------------------------------------------- |
// End of thread instruction |
//--------------------------------------------------------------------------- |
#ifdef GT |
#define END_THREAD send (8) null<1>:d mMSGHDR_EOT nTS_EOT nEOT_MSGDSC |
#else // ILK |
#define END_THREAD send (8) null<1>:d mMSGHDR_EOT null:ud nTS_EOT nEOT_MSGDSC |
#endif |
// end of DI.inc |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/DI_Hist_Save.asm |
---|
0,0 → 1,24 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Write denoise history to memory |
shr (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w 2:w NODDCLR // X,Y origin / 4 |
add (1) rMSGSRC.0<1>:ud rMSGSRC.0<0;1,0>:ud uwSPITCH_DIV2<0;1,0>:uw NODDCLR_NODDCHK // Add pitch to X origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_HIST:ud NODDCHK // block width and height (4x2) |
mov (8) mMSGHDR_HIST<1>:ud rMSGSRC.0<8;8,1>:ud // message header |
mov (1) mudMSGHDR_HIST(1)<1> udRESP(nDI_HIST_OFFSET,0)<0;1,0> // Move denoise history to MRF |
send (8) dNULLREG mMSGHDR_HIST udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_HIST+nBI_STMM_HISTORY_OUTPUT:ud |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/DI_SAVE_PA.asm |
---|
0,0 → 1,56 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
shl (1) rMSGSRC.0<1>:ud wORIX<0;1,0>:w 1:w NODDCLR // H. block origin need to be doubled |
mov (1) rMSGSRC.1<1>:ud wORIY<0;1,0>:w NODDCLR_NODDCHK // Block origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_DI:ud NODDCHK // Block width and height (32x8) |
add (4) pCF_Y_OFFSET<1>:uw ubDEST_CF_OFFSET<4;4,1>:ub nDEST_YUV_REG*nGRFWIB:w // Initial Y,U,V offset in YUV422 block |
// Pack 2nd field Y |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (16) r[pCF_Y_OFFSET, %1*nGRFWIB]<2> ubRESP(nDI_PREV_FRAME_LUMA_OFFSET,%1*16) |
} |
// Pack 1st field Y |
$for(0; <nY_NUM_OF_ROWS; 1) { |
mov (16) r[pCF_Y_OFFSET, %1+4*nGRFWIB]<2> ubRESP(nDI_CURR_FRAME_LUMA_OFFSET,%1*16) |
} |
// Pack 2nd field U |
$for(0; <nUV_NUM_OF_ROWS; 1) { |
mov (8) r[pCF_U_OFFSET, %1*nGRFWIB]<4> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
} |
// Pack 1st field U |
$for(0; <nUV_NUM_OF_ROWS; 1) { |
mov (8) r[pCF_U_OFFSET, %1+4*nGRFWIB]<4> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
} |
// Pack 2nd field V |
$for(0; <nUV_NUM_OF_ROWS; 1) { |
mov (8) r[pCF_V_OFFSET, %1*nGRFWIB]<4> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //Vpixels |
} |
// Packs1st field V |
$for(0; <nUV_NUM_OF_ROWS; 1) { |
mov (8) r[pCF_V_OFFSET, %1+4*nGRFWIB]<4> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //Vpixels |
} |
//save the previous frame |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
$for(0; <4; 1) { |
mov (8) mudMSGPAYLOAD(%1)<1> udDEST_YUV(%1)REGION(8,1) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_DI+nBI_DESTINATION_1_YUV:ud |
//save the current frame |
mov (8) mMSGHDR<1>:ud rMSGSRC<8;8,1>:ud |
$for(0; <4; 1) { |
mov (8) mudMSGPAYLOAD(%1)<1> udDEST_YUV(%1+4)REGION(8,1) |
} |
send (8) dNULLREG mMSGHDR udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPW_MSG_SIZE_DI+nBI_DESTINATION_2_YUV:ud |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/DNDI.inc |
---|
0,0 → 1,162 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Module name: DI.inc |
#ifdef GT |
// GT DI Kernel |
#else // ILK |
// ILK DI Kernel |
#endif |
#include "undefall.inc" |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// // = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// // 1 (header present 1) 0 11 (SIMD32/64 mode) |
// // 1000 (message type) 0000 (DI state index) |
// // 00000000 (binding table index - set later) |
// // = 0x040b8000 |
#define nSMPL_DI_MSGDSC 0x040b8000 |
#define nSMPL_RESP_LEN_DNDI nRESLEN_12 // 12 - for DN + DI Alg |
#define nSMPL_RESP_LEN_DN_PL nRESLEN_5 // 5 - for DN Planar Alg |
#define nSMPL_RESP_LEN_DN_PA nRESLEN_9 // 9 - for DN Packed Alg |
#define nSMPL_RESP_LEN_DI nRESLEN_9 // 9 - for DI Only Alg |
#define nSMPL_RESP_LEN_PDI nRESLEN_11 // 11 - for Partial DI Alg |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
#define nDPMW_MSG_LEN_STMM nMSGLEN_1 // 1 - For STMM Save |
#define nDPMW_MSG_LEN_HIST nMSGLEN_1 // 1 - For Denoise History Save |
#define nDPMW_MSG_LEN_PA_DN_DI nMSGLEN_4 // 4 - For DN Curr Save |
#define nDPMW_MSG_LEN_PA_DN_NODI nMSGLEN_8 // 8 - For DN Curr Save (denoise only - DI disabled) |
#define nDPMW_MSG_LEN_PL_DN_DI nMSGLEN_2 // 2 - For DN Curr Save |
#define nDPMW_MSG_LEN_PL_DN_NODI nMSGLEN_4 // 4 - For DN Curr Save (denoise only - DI disabled) |
#define nDPW_BLOCK_SIZE_STMM nBLOCK_WIDTH_8+nBLOCK_HEIGHT_4 // Y block size 8x4 |
#undef nDPW_BLOCK_SIZE_DI |
#undef nDPW_MSG_SIZE_DI |
#define nDPW_BLOCK_SIZE_DI nBLOCK_WIDTH_32+nBLOCK_HEIGHT_4 |
#define nDPW_MSG_SIZE_DI nMSGLEN_4 |
//--------------------------------------------------------------------------- |
// Kernel GRF variables |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
#define nDI_PREV_FRAME_LUMA_OFFSET 0 |
#define nDI_PREV_FRAME_CHROMA_OFFSET 2 |
#define nDI_CURR_FRAME_LUMA_OFFSET 4 |
#define nDI_CURR_FRAME_CHROMA_OFFSET 6 |
#define nDI_STMM_OFFSET 8 |
#define nDI_HIST_OFFSET 9 |
#define nDI_CURR_2ND_FIELD_LUMA_OFFSET 10 |
#define nDI_CURR_2ND_FIELD_CHROMA_OFFSET 11 |
// Defines for DI disabled |
#define nNODI_LUMA_OFFSET 0 |
#define nNODI_HIST_OFFSET 4 |
#define nNODI_CHROMA_OFFSET 5 |
#ifdef DI_ENABLE |
#define nHIST_OFFSET nDI_HIST_OFFSET |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block (4 rows for each frame) |
#undef nUV_NUM_OF_ROWS |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#endif |
#ifdef DI_DISABLE |
#define nHIST_OFFSET nNODI_HIST_OFFSET |
#endif |
#if (nSRC_REGION==nREGION_2) |
#define ub2SRC_Y ub2BOT_Y |
#define ub2SRC_U ub2BOT_U |
#define ub2SRC_V ub2BOT_V |
#define uwDEST_Y uwBOT_Y |
#define uwDEST_U uwBOT_U |
#define uwDEST_V uwBOT_V |
#define nDEST_YUV_REG nTOP_Y |
#define udDEST_YUV udTOP_Y_IO |
#define nRESP nTEMP0 // DI return message requires 12 GRFs |
#define nDN_YUV nTOP_Y // Space for Packing DN for next run requires 8 GRFs |
#undef nSRC_REGION |
#define nSRC_REGION nREGION_2 |
#else |
#define ub2SRC_Y ub2TOP_Y |
#define ub2SRC_U ub2TOP_U |
#define ub2SRC_V ub2TOP_V |
#define uwDEST_Y uwTOP_Y |
#define uwDEST_U uwTOP_U |
#define uwDEST_V uwTOP_V |
#define nDEST_YUV_REG nBOT_Y |
#define udDEST_YUV udBOT_Y_IO |
#define nRESP nTEMP0 // DI return message requires 12 GRFs |
#define nDN_YUV nBOT_Y // Space for Packing DN for next run requires 8 GRFs |
#undef nSRC_REGION |
#define nSRC_REGION nREGION_1 // REGION_1 will be the source region for first kernel |
#endif |
// Message response (Denoised & DI-ed pixels & statistics) |
.declare udRESP Base=REG(r,nRESP) ElementSize=4 SrcRegion=REGION(8,1) DstRegion=<1> Type=ud |
.declare ubRESP Base=REG(r,nRESP) ElementSize=1 SrcRegion=REGION(16,1) DstRegion=<1> Type=ub |
// For Denoised Curr Output (Used as Priv in Next Run) |
.declare ubDN_YUV Base=REG(r,nDN_YUV) ElementSize=1 Type=ub |
.declare udDN_YUV Base=REG(r,nDN_YUV) ElementSize=4 Type=ud |
#define npDN_YUV nDN_YUV*nGRFWIB |
// For DI Process Output (1st and 2nd Frames Output) |
//.declare udDI_YUV_PRIV Base=REG(r,nTEMP0) ElementSize=4 Type=ud // Previous frame DI output |
//.declare udDI_YUV_CURR Base=REG(r,nTEMP0) ElementSize=4 Type=ud // Current frame DI output |
//#define npDI_YUV nTEMP0*nGRFWIB |
//--------------------------------------------------------------------------- |
// Kernel MRF variables |
//--------------------------------------------------------------------------- |
#define mMSG_SMPL m1 // Sampler Command is in: m1~m2 |
.declare mudMSG_SMPL Base=mMSG_SMPL ElementSize=4 Type=ud |
.declare muwMSG_SMPL Base=mMSG_SMPL ElementSize=2 Type=uw |
#define mMSGHDR_DN m1 // Denoise Output: m1~m9 for PA, m3~m5 for PL |
.declare mudMSGHDR_DN Base=mMSGHDR_DN ElementSize=4 Type=ud |
.declare mubMSGHDR_DN Base=mMSGHDR_DN ElementSize=1 Type=ub |
#define mMSGHDR_STMM m11 // STMM Output: m11~m12 |
.declare mudMSGHDR_STMM Base=mMSGHDR_STMM ElementSize=4 Type=ud |
#define mMSGHDR_HIST m13 // HIST Output: m13~m14 |
.declare mudMSGHDR_HIST Base=mMSGHDR_HIST ElementSize=1 Type=ud |
#define mMSGHDR_DI_1ST m1 // DI output: m1~m5 |
.declare mudMSGHDR_DI_1ST Base=mMSGHDR_DI_1ST ElementSize=4 Type=ud |
#define mMSGHDR_DI_2ND m6 // DI output: m6~m10 |
.declare mudMSGHDR_DI_2ND Base=mMSGHDR_DI_2ND ElementSize=4 Type=ud |
// end of DNDI.inc |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/DNDI_COMMAND.asm |
---|
0,0 → 1,17 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Activate the DNDI send command |
mov (8) mudMSG_SMPL(0)<1> rMSGSRC.0<8;8,1>:ud NODDCLR // message header |
mov (1) muwMSG_SMPL(1,4)<1> wORIX<0;1,0>:w NODDCLR_NODDCHK// horizontal origin |
mov (1) muwMSG_SMPL(1,12)<1> wORIY<0;1,0>:w NODDCLR_NODDCHK // vertical origin |
//mov (2) muwMSG_SMPL(1,4)<2> wORIX<2;2,1>:w NODDCHK// problem during compile !! when using this line |
send (8) udRESP(0)<1> mMSG_SMPL udDUMMY_NULL nSMPL_ENGINE nSMPL_DI_MSGDSC+nSMPL_RESP_LEN+nBI_CURRENT_SRC_YUV_HW_DI:ud |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/DNDI_Hist_Save.asm |
---|
0,0 → 1,20 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// Write denoise history to memory |
shr (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w 2:w NODDCLR // X,Y origin / 4 |
add (1) rMSGSRC.0<1>:ud rMSGSRC.0<0;1,0>:ud uwSPITCH_DIV2<0;1,0>:uw NODDCLR_NODDCHK// Add pitch to X origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_HIST:ud NODDCHK // block width and height (4x2) |
mov (8) mMSGHDR_HIST<1>:ud rMSGSRC.0<8;8,1>:ud // message header |
mov (2) mudMSGHDR_HIST(1)<1> udRESP(nNODI_HIST_OFFSET,0)<2;2,1> // Move denoise history to MRF |
send (8) dNULLREG mMSGHDR_HIST udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_HIST+nBI_STMM_HISTORY_OUTPUT:ud |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PA_AVS_IEF_16x8.asm |
---|
0,0 → 1,26 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PA_AVS_IEF_16x8.asm ---------- |
#include "AVS_IEF.inc" |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 YUV packed |
//------------------------------------------------------------------------------ |
#include "PA_AVS_IEF_Sample.asm" |
//------------------------------------------------------------------------------ |
// Unpacking sampler reads to 4:4:4 internal planar |
//------------------------------------------------------------------------------ |
#include "PA_AVS_IEF_Unpack_16x8.asm" |
//------------------------------------------------------------------------------ |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PA_AVS_IEF_8x4.asm |
---|
0,0 → 1,25 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PA_AVS_IEF_8x4.asm ---------- |
#include "AVS_IEF.inc" |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 YUV packed |
//------------------------------------------------------------------------------ |
#include "PA_AVS_IEF_Sample.asm" |
//------------------------------------------------------------------------------ |
// Unpacking sampler data to 4:2:0 internal planar |
//------------------------------------------------------------------------------ |
#include "PA_AVS_IEF_Unpack_8x4.asm" |
//------------------------------------------------------------------------------ |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PA_AVS_IEF_8x8.asm |
---|
0,0 → 1,25 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PA_AVS_IEF_8x8.asm ---------- |
#include "AVS_IEF.inc" |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 YUV packed |
//------------------------------------------------------------------------------ |
#include "PA_AVS_IEF_Sample.asm" |
//------------------------------------------------------------------------------ |
// Unpacking sampler data to 4:2:2 internal planar |
//------------------------------------------------------------------------------ |
#include "PA_AVS_IEF_Unpack_8x8.asm" |
//------------------------------------------------------------------------------ |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PA_AVS_IEF_Sample.asm |
---|
0,0 → 1,34 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PA_AVS_IEF_Sample.asm ---------- |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 YUV packed |
//------------------------------------------------------------------------------ |
// 1st 8x8 setup |
#include "AVS_SetupFirstBlock.asm" |
// Enable RGB(YUV) channels |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RGB_CHANNELS:ud |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_3CH+nSI_SRC_YUV+nBI_CURRENT_SRC_YUV |
// Return YUV in 12 GRFs |
// 2nd 8x8 setup |
#include "AVS_SetupSecondBlock.asm" |
mov (16) mAVS_8x8_HDR_2.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE_2(0)<1> mAVS_8x8_HDR_2 udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_3CH+nSI_SRC_YUV+nBI_CURRENT_SRC_YUV |
// Return YUV in 12 GRFs |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PA_AVS_IEF_Unpack_16x8.asm |
---|
0,0 → 1,288 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PA_AVS_IEF_Unpack_16x8.asm ---------- |
#ifdef AVS_OUTPUT_16_BIT //Output is packed in AVYU format |
// Move first 8x8 words of Y to dest GRF (as packed) |
mov (4) uwDEST_Y(0,1)<4> uwAVS_RESPONSE(2,0)<4;4,1> |
mov (4) uwDEST_Y(1,1)<4> uwAVS_RESPONSE(2,8)<4;4,1> |
mov (4) uwDEST_Y(4,1)<4> uwAVS_RESPONSE(2,4)<4;4,1> |
mov (4) uwDEST_Y(5,1)<4> uwAVS_RESPONSE(2,12)<4;4,1> |
mov (4) uwDEST_Y(8,1)<4> uwAVS_RESPONSE(3,0)<4;4,1> |
mov (4) uwDEST_Y(9,1)<4> uwAVS_RESPONSE(3,8)<4;4,1> |
mov (4) uwDEST_Y(12,1)<4> uwAVS_RESPONSE(3,4)<4;4,1> |
mov (4) uwDEST_Y(13,1)<4> uwAVS_RESPONSE(3,12)<4;4,1> |
mov (4) uwDEST_Y(16,1)<4> uwAVS_RESPONSE(8,0)<4;4,1> |
mov (4) uwDEST_Y(17,1)<4> uwAVS_RESPONSE(8,8)<4;4,1> |
mov (4) uwDEST_Y(20,1)<4> uwAVS_RESPONSE(8,4)<4;4,1> |
mov (4) uwDEST_Y(21,1)<4> uwAVS_RESPONSE(8,12)<4;4,1> |
mov (4) uwDEST_Y(24,1)<4> uwAVS_RESPONSE(9,0)<4;4,1> |
mov (4) uwDEST_Y(25,1)<4> uwAVS_RESPONSE(9,8)<4;4,1> |
mov (4) uwDEST_Y(28,1)<4> uwAVS_RESPONSE(9,4)<4;4,1> |
mov (4) uwDEST_Y(29,1)<4> uwAVS_RESPONSE(9,12)<4;4,1> |
// Move first 8x8 words of U to dest GRF (as packed) |
mov (4) uwDEST_Y(0,0)<4> uwAVS_RESPONSE(4,0)<4;4,1> |
mov (4) uwDEST_Y(1,0)<4> uwAVS_RESPONSE(4,8)<4;4,1> |
mov (4) uwDEST_Y(4,0)<4> uwAVS_RESPONSE(4,4)<4;4,1> |
mov (4) uwDEST_Y(5,0)<4> uwAVS_RESPONSE(4,12)<4;4,1> |
mov (4) uwDEST_Y(8,0)<4> uwAVS_RESPONSE(5,0)<4;4,1> |
mov (4) uwDEST_Y(9,0)<4> uwAVS_RESPONSE(5,8)<4;4,1> |
mov (4) uwDEST_Y(12,0)<4> uwAVS_RESPONSE(5,4)<4;4,1> |
mov (4) uwDEST_Y(13,0)<4> uwAVS_RESPONSE(5,12)<4;4,1> |
mov (4) uwDEST_Y(16,0)<4> uwAVS_RESPONSE(10,0)<4;4,1> |
mov (4) uwDEST_Y(17,0)<4> uwAVS_RESPONSE(10,8)<4;4,1> |
mov (4) uwDEST_Y(20,0)<4> uwAVS_RESPONSE(10,4)<4;4,1> |
mov (4) uwDEST_Y(21,0)<4> uwAVS_RESPONSE(10,12)<4;4,1> |
mov (4) uwDEST_Y(24,0)<4> uwAVS_RESPONSE(11,0)<4;4,1> |
mov (4) uwDEST_Y(25,0)<4> uwAVS_RESPONSE(11,8)<4;4,1> |
mov (4) uwDEST_Y(28,0)<4> uwAVS_RESPONSE(11,4)<4;4,1> |
mov (4) uwDEST_Y(29,0)<4> uwAVS_RESPONSE(11,12)<4;4,1> |
// Move first 8x8 words of V to dest GRF (as packed) |
mov (4) uwDEST_Y(0,2)<4> uwAVS_RESPONSE(0,0)<4;4,1> |
mov (4) uwDEST_Y(1,2)<4> uwAVS_RESPONSE(0,8)<4;4,1> |
mov (4) uwDEST_Y(4,2)<4> uwAVS_RESPONSE(0,4)<4;4,1> |
mov (4) uwDEST_Y(5,2)<4> uwAVS_RESPONSE(0,12)<4;4,1> |
mov (4) uwDEST_Y(8,2)<4> uwAVS_RESPONSE(1,0)<4;4,1> |
mov (4) uwDEST_Y(9,2)<4> uwAVS_RESPONSE(1,8)<4;4,1> |
mov (4) uwDEST_Y(12,2)<4> uwAVS_RESPONSE(1,4)<4;4,1> |
mov (4) uwDEST_Y(13,2)<4> uwAVS_RESPONSE(1,12)<4;4,1> |
mov (4) uwDEST_Y(16,2)<4> uwAVS_RESPONSE(6,0)<4;4,1> |
mov (4) uwDEST_Y(17,2)<4> uwAVS_RESPONSE(6,8)<4;4,1> |
mov (4) uwDEST_Y(20,2)<4> uwAVS_RESPONSE(6,4)<4;4,1> |
mov (4) uwDEST_Y(21,2)<4> uwAVS_RESPONSE(6,12)<4;4,1> |
mov (4) uwDEST_Y(24,2)<4> uwAVS_RESPONSE(7,0)<4;4,1> |
mov (4) uwDEST_Y(25,2)<4> uwAVS_RESPONSE(7,8)<4;4,1> |
mov (4) uwDEST_Y(28,2)<4> uwAVS_RESPONSE(7,4)<4;4,1> |
mov (4) uwDEST_Y(29,2)<4> uwAVS_RESPONSE(7,12)<4;4,1> |
// Move first 8x8 words of A to dest GRF (as packed) |
mov (4) uwDEST_Y(0,3)<4> 0:uw |
mov (4) uwDEST_Y(1,3)<4> 0:uw |
mov (4) uwDEST_Y(4,3)<4> 0:uw |
mov (4) uwDEST_Y(5,3)<4> 0:uw |
mov (4) uwDEST_Y(8,3)<4> 0:uw |
mov (4) uwDEST_Y(9,3)<4> 0:uw |
mov (4) uwDEST_Y(12,3)<4> 0:uw |
mov (4) uwDEST_Y(13,3)<4> 0:uw |
mov (4) uwDEST_Y(16,3)<4> 0:uw |
mov (4) uwDEST_Y(17,3)<4> 0:uw |
mov (4) uwDEST_Y(20,3)<4> 0:uw |
mov (4) uwDEST_Y(21,3)<4> 0:uw |
mov (4) uwDEST_Y(24,3)<4> 0:uw |
mov (4) uwDEST_Y(25,3)<4> 0:uw |
mov (4) uwDEST_Y(28,3)<4> 0:uw |
mov (4) uwDEST_Y(29,3)<4> 0:uw |
// Move second 8x8 words of Y to dest GRF |
mov (4) uwDEST_Y(2,1)<4> uwAVS_RESPONSE_2(2,0)<4;4,1> |
mov (4) uwDEST_Y(3,1)<4> uwAVS_RESPONSE_2(2,8)<4;4,1> |
mov (4) uwDEST_Y(6,1)<4> uwAVS_RESPONSE_2(2,4)<4;4,1> |
mov (4) uwDEST_Y(7,1)<4> uwAVS_RESPONSE_2(2,12)<4;4,1> |
mov (4) uwDEST_Y(10,1)<4> uwAVS_RESPONSE_2(3,0)<4;4,1> |
mov (4) uwDEST_Y(11,1)<4> uwAVS_RESPONSE_2(3,8)<4;4,1> |
mov (4) uwDEST_Y(14,1)<4> uwAVS_RESPONSE_2(3,4)<4;4,1> |
mov (4) uwDEST_Y(15,1)<4> uwAVS_RESPONSE_2(3,12)<4;4,1> |
mov (4) uwDEST_Y(18,1)<4> uwAVS_RESPONSE_2(8,0)<4;4,1> |
mov (4) uwDEST_Y(19,1)<4> uwAVS_RESPONSE_2(8,8)<4;4,1> |
mov (4) uwDEST_Y(22,1)<4> uwAVS_RESPONSE_2(8,4)<4;4,1> |
mov (4) uwDEST_Y(23,1)<4> uwAVS_RESPONSE_2(8,12)<4;4,1> |
mov (4) uwDEST_Y(26,1)<4> uwAVS_RESPONSE_2(9,0)<4;4,1> |
mov (4) uwDEST_Y(27,1)<4> uwAVS_RESPONSE_2(9,8)<4;4,1> |
mov (4) uwDEST_Y(30,1)<4> uwAVS_RESPONSE_2(9,4)<4;4,1> |
mov (4) uwDEST_Y(31,1)<4> uwAVS_RESPONSE_2(9,12)<4;4,1> |
// Move second 8x8 words of U to dest GRF |
mov (4) uwDEST_Y(2,0)<4> uwAVS_RESPONSE_2(4,0)<4;4,1> |
mov (4) uwDEST_Y(3,0)<4> uwAVS_RESPONSE_2(4,8)<4;4,1> |
mov (4) uwDEST_Y(6,0)<4> uwAVS_RESPONSE_2(4,4)<4;4,1> |
mov (4) uwDEST_Y(7,0)<4> uwAVS_RESPONSE_2(4,12)<4;4,1> |
mov (4) uwDEST_Y(10,0)<4> uwAVS_RESPONSE_2(5,0)<4;4,1> |
mov (4) uwDEST_Y(11,0)<4> uwAVS_RESPONSE_2(5,8)<4;4,1> |
mov (4) uwDEST_Y(14,0)<4> uwAVS_RESPONSE_2(5,4)<4;4,1> |
mov (4) uwDEST_Y(15,0)<4> uwAVS_RESPONSE_2(5,12)<4;4,1> |
mov (4) uwDEST_Y(18,0)<4> uwAVS_RESPONSE_2(10,0)<4;4,1> |
mov (4) uwDEST_Y(19,0)<4> uwAVS_RESPONSE_2(10,8)<4;4,1> |
mov (4) uwDEST_Y(22,0)<4> uwAVS_RESPONSE_2(10,4)<4;4,1> |
mov (4) uwDEST_Y(23,0)<4> uwAVS_RESPONSE_2(10,12)<4;4,1> |
mov (4) uwDEST_Y(26,0)<4> uwAVS_RESPONSE_2(11,0)<4;4,1> |
mov (4) uwDEST_Y(27,0)<4> uwAVS_RESPONSE_2(11,8)<4;4,1> |
mov (4) uwDEST_Y(30,0)<4> uwAVS_RESPONSE_2(11,4)<4;4,1> |
mov (4) uwDEST_Y(31,0)<4> uwAVS_RESPONSE_2(11,12)<4;4,1> |
// Move second 8x8 words of V to dest GRF |
mov (4) uwDEST_Y(2,2)<4> uwAVS_RESPONSE_2(0,0)<4;4,1> |
mov (4) uwDEST_Y(3,2)<4> uwAVS_RESPONSE_2(0,8)<4;4,1> |
mov (4) uwDEST_Y(6,2)<4> uwAVS_RESPONSE_2(0,4)<4;4,1> |
mov (4) uwDEST_Y(7,2)<4> uwAVS_RESPONSE_2(0,12)<4;4,1> |
mov (4) uwDEST_Y(10,2)<4> uwAVS_RESPONSE_2(1,0)<4;4,1> |
mov (4) uwDEST_Y(11,2)<4> uwAVS_RESPONSE_2(1,8)<4;4,1> |
mov (4) uwDEST_Y(14,2)<4> uwAVS_RESPONSE_2(1,4)<4;4,1> |
mov (4) uwDEST_Y(15,2)<4> uwAVS_RESPONSE_2(1,12)<4;4,1> |
mov (4) uwDEST_Y(18,2)<4> uwAVS_RESPONSE_2(6,0)<4;4,1> |
mov (4) uwDEST_Y(19,2)<4> uwAVS_RESPONSE_2(6,8)<4;4,1> |
mov (4) uwDEST_Y(22,2)<4> uwAVS_RESPONSE_2(6,4)<4;4,1> |
mov (4) uwDEST_Y(23,2)<4> uwAVS_RESPONSE_2(6,12)<4;4,1> |
mov (4) uwDEST_Y(26,2)<4> uwAVS_RESPONSE_2(7,0)<4;4,1> |
mov (4) uwDEST_Y(27,2)<4> uwAVS_RESPONSE_2(7,8)<4;4,1> |
mov (4) uwDEST_Y(30,2)<4> uwAVS_RESPONSE_2(7,4)<4;4,1> |
mov (4) uwDEST_Y(31,2)<4> uwAVS_RESPONSE_2(7,12)<4;4,1> |
// Move second 8x8 words of A to dest GRF |
mov (4) uwDEST_Y(2,3)<4> 0:uw |
mov (4) uwDEST_Y(3,3)<4> 0:uw |
mov (4) uwDEST_Y(6,3)<4> 0:uw |
mov (4) uwDEST_Y(7,3)<4> 0:uw |
mov (4) uwDEST_Y(10,3)<4> 0:uw |
mov (4) uwDEST_Y(11,3)<4> 0:uw |
mov (4) uwDEST_Y(14,3)<4> 0:uw |
mov (4) uwDEST_Y(15,3)<4> 0:uw |
mov (4) uwDEST_Y(18,3)<4> 0:uw |
mov (4) uwDEST_Y(19,3)<4> 0:uw |
mov (4) uwDEST_Y(22,3)<4> 0:uw |
mov (4) uwDEST_Y(23,3)<4> 0:uw |
mov (4) uwDEST_Y(26,3)<4> 0:uw |
mov (4) uwDEST_Y(27,3)<4> 0:uw |
mov (4) uwDEST_Y(30,3)<4> 0:uw |
mov (4) uwDEST_Y(31,3)<4> 0:uw |
/* This section will be used if 16-bit output is needed in planar format -vK |
// Move first 8x8 words of Y to dest GRF |
mov (8) uwDEST_Y(0)<1> uwAVS_RESPONSE(2,0)<8;4,1> |
mov (8) uwDEST_Y(1)<1> uwAVS_RESPONSE(2,8)<8;4,1> |
mov (8) uwDEST_Y(2)<1> uwAVS_RESPONSE(3,0)<8;4,1> |
mov (8) uwDEST_Y(3)<1> uwAVS_RESPONSE(3,8)<8;4,1> |
mov (8) uwDEST_Y(4)<1> uwAVS_RESPONSE(8,0)<8;4,1> |
mov (8) uwDEST_Y(5)<1> uwAVS_RESPONSE(8,8)<8;4,1> |
mov (8) uwDEST_Y(6)<1> uwAVS_RESPONSE(9,0)<8;4,1> |
mov (8) uwDEST_Y(7)<1> uwAVS_RESPONSE(9,8)<8;4,1> |
// Move first 8x8 words of V to dest GRF |
mov (8) uwDEST_V(0)<1> ubAVS_RESPONSE(0,0)<8;4,1> |
mov (8) uwDEST_V(1)<1> ubAVS_RESPONSE(0,8)<8;4,1> |
mov (8) uwDEST_V(2)<1> ubAVS_RESPONSE(1,0)<8;4,1> |
mov (8) uwDEST_V(3)<1> ubAVS_RESPONSE(1,8)<8;4,1> |
mov (8) uwDEST_V(4)<1> ubAVS_RESPONSE(6,0)<8;4,1> |
mov (8) uwDEST_V(5)<1> ubAVS_RESPONSE(6,8)<8;4,1> |
mov (8) uwDEST_V(6)<1> ubAVS_RESPONSE(7,0)<8;4,1> |
mov (8) uwDEST_V(7)<1> ubAVS_RESPONSE(7,8)<8;4,1> |
// Move first 8x8 words of U to dest GRF |
mov (8) uwDEST_U(0)<1> ubAVS_RESPONSE(4,0)<8;4,1> |
mov (8) uwDEST_U(1)<1> ubAVS_RESPONSE(4,8)<8;4,1> |
mov (8) uwDEST_U(2)<1> ubAVS_RESPONSE(5,0)<8;4,1> |
mov (8) uwDEST_U(3)<1> ubAVS_RESPONSE(5,8)<8;4,1> |
mov (8) uwDEST_U(4)<1> ubAVS_RESPONSE(10,0)<8;4,1> |
mov (8) uwDEST_U(5)<1> ubAVS_RESPONSE(10,8)<8;4,1> |
mov (8) uwDEST_U(6)<1> ubAVS_RESPONSE(11,0)<8;4,1> |
mov (8) uwDEST_U(7)<1> ubAVS_RESPONSE(11,8)<8;4,1> |
// Move second 8x8 words of Y to dest GRF |
mov (8) uwDEST_Y(0,8)<1> uwAVS_RESPONSE_2(2,0)<8;4,1> |
mov (8) uwDEST_Y(1,8)<1> uwAVS_RESPONSE_2(2,8)<8;4,1> |
mov (8) uwDEST_Y(2,8)<1> uwAVS_RESPONSE_2(3,0)<8;4,1> |
mov (8) uwDEST_Y(3,8)<1> uwAVS_RESPONSE_2(3,8)<8;4,1> |
mov (8) uwDEST_Y(4,8)<1> uwAVS_RESPONSE_2(8,0)<8;4,1> |
mov (8) uwDEST_Y(5,8)<1> uwAVS_RESPONSE_2(8,8)<8;4,1> |
mov (8) uwDEST_Y(6,8)<1> uwAVS_RESPONSE_2(9,0)<8;4,1> |
mov (8) uwDEST_Y(7,8)<1> uwAVS_RESPONSE_2(9,8)<8;4,1> |
// Move second 8x8 words of V to dest GRF |
mov (8) uwDEST_V(0,8)<1> ubAVS_RESPONSE_2(0,0)<8;4,1> |
mov (8) uwDEST_V(1,8)<1> ubAVS_RESPONSE_2(0,8)<8;4,1> |
mov (8) uwDEST_V(2,8)<1> ubAVS_RESPONSE_2(1,0)<8;4,1> |
mov (8) uwDEST_V(3,8)<1> ubAVS_RESPONSE_2(1,8)<8;4,1> |
mov (8) uwDEST_V(4,8)<1> ubAVS_RESPONSE_2(6,0)<8;4,1> |
mov (8) uwDEST_V(5,8)<1> ubAVS_RESPONSE_2(6,8)<8;4,1> |
mov (8) uwDEST_V(6,8)<1> ubAVS_RESPONSE_2(7,0)<8;4,1> |
mov (8) uwDEST_V(7,8)<1> ubAVS_RESPONSE_2(7,8)<8;4,1> |
// Move second 8x8 words of U to dest GRF |
mov (8) uwDEST_U(0,8)<1> ubAVS_RESPONSE_2(4,0)<8;4,1> |
mov (8) uwDEST_U(1,8)<1> ubAVS_RESPONSE_2(4,8)<8;4,1> |
mov (8) uwDEST_U(2,8)<1> ubAVS_RESPONSE_2(5,0)<8;4,1> |
mov (8) uwDEST_U(3,8)<1> ubAVS_RESPONSE_2(5,8)<8;4,1> |
mov (8) uwDEST_U(4,8)<1> ubAVS_RESPONSE_2(10,0)<8;4,1> |
mov (8) uwDEST_U(5,8)<1> ubAVS_RESPONSE_2(10,8)<8;4,1> |
mov (8) uwDEST_U(6,8)<1> ubAVS_RESPONSE_2(11,0)<8;4,1> |
mov (8) uwDEST_U(7,8)<1> ubAVS_RESPONSE_2(11,8)<8;4,1> |
*/ |
#else /* OUTPUT_8_BIT */ |
// Move first 8x8 words of Y to dest GRF |
mov (8) uwDEST_Y(0)<1> ubAVS_RESPONSE(2,1)<16;4,2> |
mov (8) uwDEST_Y(1)<1> ubAVS_RESPONSE(2,8+1)<16;4,2> |
mov (8) uwDEST_Y(2)<1> ubAVS_RESPONSE(3,1)<16;4,2> |
mov (8) uwDEST_Y(3)<1> ubAVS_RESPONSE(3,8+1)<16;4,2> |
mov (8) uwDEST_Y(4)<1> ubAVS_RESPONSE(8,1)<16;4,2> |
mov (8) uwDEST_Y(5)<1> ubAVS_RESPONSE(8,8+1)<16;4,2> |
mov (8) uwDEST_Y(6)<1> ubAVS_RESPONSE(9,1)<16;4,2> |
mov (8) uwDEST_Y(7)<1> ubAVS_RESPONSE(9,8+1)<16;4,2> |
// Move first 8x8 words of V to dest GRF |
mov (8) uwDEST_V(0)<1> ubAVS_RESPONSE(0,1)<16;4,2> |
mov (8) uwDEST_V(1)<1> ubAVS_RESPONSE(0,8+1)<16;4,2> |
mov (8) uwDEST_V(2)<1> ubAVS_RESPONSE(1,1)<16;4,2> |
mov (8) uwDEST_V(3)<1> ubAVS_RESPONSE(1,8+1)<16;4,2> |
mov (8) uwDEST_V(4)<1> ubAVS_RESPONSE(6,1)<16;4,2> |
mov (8) uwDEST_V(5)<1> ubAVS_RESPONSE(6,8+1)<16;4,2> |
mov (8) uwDEST_V(6)<1> ubAVS_RESPONSE(7,1)<16;4,2> |
mov (8) uwDEST_V(7)<1> ubAVS_RESPONSE(7,8+1)<16;4,2> |
// Move first 8x8 words of U to dest GRF |
mov (8) uwDEST_U(0)<1> ubAVS_RESPONSE(4,1)<16;4,2> |
mov (8) uwDEST_U(1)<1> ubAVS_RESPONSE(4,8+1)<16;4,2> |
mov (8) uwDEST_U(2)<1> ubAVS_RESPONSE(5,1)<16;4,2> |
mov (8) uwDEST_U(3)<1> ubAVS_RESPONSE(5,8+1)<16;4,2> |
mov (8) uwDEST_U(4)<1> ubAVS_RESPONSE(10,1)<16;4,2> |
mov (8) uwDEST_U(5)<1> ubAVS_RESPONSE(10,8+1)<16;4,2> |
mov (8) uwDEST_U(6)<1> ubAVS_RESPONSE(11,1)<16;4,2> |
mov (8) uwDEST_U(7)<1> ubAVS_RESPONSE(11,8+1)<16;4,2> |
// Move second 8x8 words of Y to dest GRF |
mov (8) uwDEST_Y(0,8)<1> ubAVS_RESPONSE_2(2,1)<16;4,2> |
mov (8) uwDEST_Y(1,8)<1> ubAVS_RESPONSE_2(2,8+1)<16;4,2> |
mov (8) uwDEST_Y(2,8)<1> ubAVS_RESPONSE_2(3,1)<16;4,2> |
mov (8) uwDEST_Y(3,8)<1> ubAVS_RESPONSE_2(3,8+1)<16;4,2> |
mov (8) uwDEST_Y(4,8)<1> ubAVS_RESPONSE_2(8,1)<16;4,2> |
mov (8) uwDEST_Y(5,8)<1> ubAVS_RESPONSE_2(8,8+1)<16;4,2> |
mov (8) uwDEST_Y(6,8)<1> ubAVS_RESPONSE_2(9,1)<16;4,2> |
mov (8) uwDEST_Y(7,8)<1> ubAVS_RESPONSE_2(9,8+1)<16;4,2> |
// Move second 8x8 words of V to dest GRF |
mov (8) uwDEST_V(0,8)<1> ubAVS_RESPONSE_2(0,1)<16;4,2> |
mov (8) uwDEST_V(1,8)<1> ubAVS_RESPONSE_2(0,8+1)<16;4,2> |
mov (8) uwDEST_V(2,8)<1> ubAVS_RESPONSE_2(1,1)<16;4,2> |
mov (8) uwDEST_V(3,8)<1> ubAVS_RESPONSE_2(1,8+1)<16;4,2> |
mov (8) uwDEST_V(4,8)<1> ubAVS_RESPONSE_2(6,1)<16;4,2> |
mov (8) uwDEST_V(5,8)<1> ubAVS_RESPONSE_2(6,8+1)<16;4,2> |
mov (8) uwDEST_V(6,8)<1> ubAVS_RESPONSE_2(7,1)<16;4,2> |
mov (8) uwDEST_V(7,8)<1> ubAVS_RESPONSE_2(7,8+1)<16;4,2> |
// Move second 8x8 words of U to dest GRF |
mov (8) uwDEST_U(0,8)<1> ubAVS_RESPONSE_2(4,1)<16;4,2> |
mov (8) uwDEST_U(1,8)<1> ubAVS_RESPONSE_2(4,8+1)<16;4,2> |
mov (8) uwDEST_U(2,8)<1> ubAVS_RESPONSE_2(5,1)<16;4,2> |
mov (8) uwDEST_U(3,8)<1> ubAVS_RESPONSE_2(5,8+1)<16;4,2> |
mov (8) uwDEST_U(4,8)<1> ubAVS_RESPONSE_2(10,1)<16;4,2> |
mov (8) uwDEST_U(5,8)<1> ubAVS_RESPONSE_2(10,8+1)<16;4,2> |
mov (8) uwDEST_U(6,8)<1> ubAVS_RESPONSE_2(11,1)<16;4,2> |
mov (8) uwDEST_U(7,8)<1> ubAVS_RESPONSE_2(11,8+1)<16;4,2> |
#endif |
//------------------------------------------------------------------------------ |
// Re-define new number of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PA_AVS_IEF_Unpack_8x4.asm |
---|
0,0 → 1,77 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PA_AVS_IEF_Unpack_8x8.asm ---------- |
// Yoni: In order to optimize unpacking, 3 methods are being checked: |
// 1. AVS_ORIGINAL |
// 2. AVS_ROUND_TO_8_BITS |
// 3. AVS_INDIRECT_ACCESS |
// |
// Only 1 method should stay in the code |
//#define AVS_ROUND_TO_8_BITS |
//#define AVS_INDIRECT_ACCESS |
// Move first 8x8 words of Y to dest GRF |
mov (8) uwDEST_Y(0)<1> ubAVS_RESPONSE(2,1)<16;4,2> |
mov (8) uwDEST_Y(1)<1> ubAVS_RESPONSE(2,8+1)<16;4,2> |
mov (8) uwDEST_Y(2)<1> ubAVS_RESPONSE(3,1)<16;4,2> |
mov (8) uwDEST_Y(3)<1> ubAVS_RESPONSE(3,8+1)<16;4,2> |
mov (8) uwDEST_Y(4)<1> ubAVS_RESPONSE(8,1)<16;4,2> |
mov (8) uwDEST_Y(5)<1> ubAVS_RESPONSE(8,8+1)<16;4,2> |
mov (8) uwDEST_Y(6)<1> ubAVS_RESPONSE(9,1)<16;4,2> |
mov (8) uwDEST_Y(7)<1> ubAVS_RESPONSE(9,8+1)<16;4,2> |
// Move first 4x8 words of V to dest GRF |
mov (4) uwDEST_V(0)<1> ubAVS_RESPONSE(0,1)<16;2,4> |
mov (4) uwDEST_V(0,8)<1> ubAVS_RESPONSE(1,1)<16;2,4> |
mov (4) uwDEST_V(1)<1> ubAVS_RESPONSE(6,1)<16;2,4> |
mov (4) uwDEST_V(1,8)<1> ubAVS_RESPONSE(7,1)<16;2,4> |
// Move first 4x8 words of U to dest GRF |
mov (4) uwDEST_U(0)<1> ubAVS_RESPONSE(4,1)<16;2,4> |
mov (4) uwDEST_U(0,8)<1> ubAVS_RESPONSE(5,1)<16;2,4> |
mov (4) uwDEST_U(1)<1> ubAVS_RESPONSE(10,1)<16;2,4> |
mov (4) uwDEST_U(1,8)<1> ubAVS_RESPONSE(11,1)<16;2,4> |
// Move second 8x8 words of Y to dest GRF |
mov (8) uwDEST_Y(0,8)<1> ubAVS_RESPONSE_2(2,1)<16;4,2> |
mov (8) uwDEST_Y(1,8)<1> ubAVS_RESPONSE_2(2,8+1)<16;4,2> |
mov (8) uwDEST_Y(2,8)<1> ubAVS_RESPONSE_2(3,1)<16;4,2> |
mov (8) uwDEST_Y(3,8)<1> ubAVS_RESPONSE_2(3,8+1)<16;4,2> |
mov (8) uwDEST_Y(4,8)<1> ubAVS_RESPONSE_2(8,1)<16;4,2> |
mov (8) uwDEST_Y(5,8)<1> ubAVS_RESPONSE_2(8,8+1)<16;4,2> |
mov (8) uwDEST_Y(6,8)<1> ubAVS_RESPONSE_2(9,1)<16;4,2> |
mov (8) uwDEST_Y(7,8)<1> ubAVS_RESPONSE_2(9,8+1)<16;4,2> |
// Move second 4x8 words of V to dest GRF |
mov (4) uwDEST_V(0,4)<1> ubAVS_RESPONSE_2(0,1)<16;2,4> |
mov (4) uwDEST_V(0,12)<1> ubAVS_RESPONSE_2(1,1)<16;2,4> |
mov (4) uwDEST_V(1,4)<1> ubAVS_RESPONSE_2(6,1)<16;2,4> |
mov (4) uwDEST_V(1,12)<1> ubAVS_RESPONSE_2(7,1)<16;2,4> |
// Move second 4x8 words of U to dest GRF |
mov (4) uwDEST_U(0,4)<1> ubAVS_RESPONSE_2(4,1)<16;2,4> |
mov (4) uwDEST_U(0,12)<1> ubAVS_RESPONSE_2(5,1)<16;2,4> |
mov (4) uwDEST_U(1,4)<1> ubAVS_RESPONSE_2(10,1)<16;2,4> |
mov (4) uwDEST_U(1,12)<1> ubAVS_RESPONSE_2(11,1)<16;2,4> |
//------------------------------------------------------------------------------ |
// Re-define new number of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PA_AVS_IEF_Unpack_8x8.asm |
---|
0,0 → 1,93 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PA_AVS_IEF_Unpack_8x8.asm ---------- |
// Yoni: In order to optimize unpacking, 3 methods are being checked: |
// 1. AVS_ORIGINAL |
// 2. AVS_ROUND_TO_8_BITS |
// 3. AVS_INDIRECT_ACCESS |
// |
// Only 1 method should stay in the code |
//#define AVS_ROUND_TO_8_BITS |
//#define AVS_INDIRECT_ACCESS |
// Move first 8x8 words of Y to dest GRF |
mov (8) uwDEST_Y(0)<1> ubAVS_RESPONSE(2,1)<16;4,2> |
mov (8) uwDEST_Y(1)<1> ubAVS_RESPONSE(2,8+1)<16;4,2> |
mov (8) uwDEST_Y(2)<1> ubAVS_RESPONSE(3,1)<16;4,2> |
mov (8) uwDEST_Y(3)<1> ubAVS_RESPONSE(3,8+1)<16;4,2> |
mov (8) uwDEST_Y(4)<1> ubAVS_RESPONSE(8,1)<16;4,2> |
mov (8) uwDEST_Y(5)<1> ubAVS_RESPONSE(8,8+1)<16;4,2> |
mov (8) uwDEST_Y(6)<1> ubAVS_RESPONSE(9,1)<16;4,2> |
mov (8) uwDEST_Y(7)<1> ubAVS_RESPONSE(9,8+1)<16;4,2> |
// Move first 4x8 words of V to dest GRF |
mov (4) uwDEST_V(0)<1> ubAVS_RESPONSE(0,1)<16;2,4> |
mov (4) uwDEST_V(0,8)<1> ubAVS_RESPONSE(0,8+1)<16;2,4> |
mov (4) uwDEST_V(1)<1> ubAVS_RESPONSE(1,1)<16;2,4> |
mov (4) uwDEST_V(1,8)<1> ubAVS_RESPONSE(1,8+1)<16;2,4> |
mov (4) uwDEST_V(2)<1> ubAVS_RESPONSE(6,1)<16;2,4> |
mov (4) uwDEST_V(2,8)<1> ubAVS_RESPONSE(6,8+1)<16;2,4> |
mov (4) uwDEST_V(3)<1> ubAVS_RESPONSE(7,1)<16;2,4> |
mov (4) uwDEST_V(3,8)<1> ubAVS_RESPONSE(7,8+1)<16;2,4> |
// Move first 4x8 words of U to dest GRF |
mov (4) uwDEST_U(0)<1> ubAVS_RESPONSE(4,1)<16;2,4> |
mov (4) uwDEST_U(0,8)<1> ubAVS_RESPONSE(4,8+1)<16;2,4> |
mov (4) uwDEST_U(1)<1> ubAVS_RESPONSE(5,1)<16;2,4> |
mov (4) uwDEST_U(1,8)<1> ubAVS_RESPONSE(5,8+1)<16;2,4> |
mov (4) uwDEST_U(2)<1> ubAVS_RESPONSE(10,1)<16;2,4> |
mov (4) uwDEST_U(2,8)<1> ubAVS_RESPONSE(10,8+1)<16;2,4> |
mov (4) uwDEST_U(3)<1> ubAVS_RESPONSE(11,1)<16;2,4> |
mov (4) uwDEST_U(3,8)<1> ubAVS_RESPONSE(11,8+1)<16;2,4> |
// Move second 8x8 words of Y to dest GRF |
mov (8) uwDEST_Y(0,8)<1> ubAVS_RESPONSE_2(2,1)<16;4,2> |
mov (8) uwDEST_Y(1,8)<1> ubAVS_RESPONSE_2(2,8+1)<16;4,2> |
mov (8) uwDEST_Y(2,8)<1> ubAVS_RESPONSE_2(3,1)<16;4,2> |
mov (8) uwDEST_Y(3,8)<1> ubAVS_RESPONSE_2(3,8+1)<16;4,2> |
mov (8) uwDEST_Y(4,8)<1> ubAVS_RESPONSE_2(8,1)<16;4,2> |
mov (8) uwDEST_Y(5,8)<1> ubAVS_RESPONSE_2(8,8+1)<16;4,2> |
mov (8) uwDEST_Y(6,8)<1> ubAVS_RESPONSE_2(9,1)<16;4,2> |
mov (8) uwDEST_Y(7,8)<1> ubAVS_RESPONSE_2(9,8+1)<16;4,2> |
// Move second 4x8 words of V to dest GRF |
mov (4) uwDEST_V(0,4)<1> ubAVS_RESPONSE_2(0,1)<16;2,4> |
mov (4) uwDEST_V(0,12)<1> ubAVS_RESPONSE_2(0,8+1)<16;2,4> |
mov (4) uwDEST_V(1,4)<1> ubAVS_RESPONSE_2(1,1)<16;2,4> |
mov (4) uwDEST_V(1,12)<1> ubAVS_RESPONSE_2(1,8+1)<16;2,4> |
mov (4) uwDEST_V(2,4)<1> ubAVS_RESPONSE_2(6,1)<16;2,4> |
mov (4) uwDEST_V(2,12)<1> ubAVS_RESPONSE_2(6,8+1)<16;2,4> |
mov (4) uwDEST_V(3,4)<1> ubAVS_RESPONSE_2(7,1)<16;2,4> |
mov (4) uwDEST_V(3,12)<1> ubAVS_RESPONSE_2(7,8+1)<16;2,4> |
// Move second 4x8 words of U to dest GRF |
mov (4) uwDEST_U(0,4)<1> ubAVS_RESPONSE_2(4,1)<16;2,4> |
mov (4) uwDEST_U(0,12)<1> ubAVS_RESPONSE_2(4,8+1)<16;2,4> |
mov (4) uwDEST_U(1,4)<1> ubAVS_RESPONSE_2(5,1)<16;2,4> |
mov (4) uwDEST_U(1,12)<1> ubAVS_RESPONSE_2(5,8+1)<16;2,4> |
mov (4) uwDEST_U(2,4)<1> ubAVS_RESPONSE_2(10,1)<16;2,4> |
mov (4) uwDEST_U(2,12)<1> ubAVS_RESPONSE_2(10,8+1)<16;2,4> |
mov (4) uwDEST_U(3,4)<1> ubAVS_RESPONSE_2(11,1)<16;2,4> |
mov (4) uwDEST_U(3,12)<1> ubAVS_RESPONSE_2(11,8+1)<16;2,4> |
//------------------------------------------------------------------------------ |
// Re-define new number of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PA_DNDI_ALG.asm |
---|
0,0 → 1,139 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#define DI_ENABLE |
#include "DNDI.inc" |
#ifdef DI_ONLY |
#undef nSMPL_RESP_LEN |
#define nSMPL_RESP_LEN nSMPL_RESP_LEN_DI // set the number of GRF |
#else |
#undef nSMPL_RESP_LEN |
#define nSMPL_RESP_LEN nSMPL_RESP_LEN_DNDI // set the number of GRF |
#endif |
#undef nDPW_BLOCK_SIZE_HIST |
#define nDPW_BLOCK_SIZE_HIST nBLOCK_WIDTH_4+nBLOCK_HEIGHT_1 // HIST Block Size for Write is 4x2 |
#undef nDPW_BLOCK_SIZE_DN |
#define nDPW_BLOCK_SIZE_DN nBLOCK_WIDTH_32+nBLOCK_HEIGHT_4 // DN Block Size for Write is 32x4 |
////////////////////////////////////// Run the DN Algorithm /////////////////////////////////////// |
#include "DNDI_Command.asm" |
////////////////////////////////////// Rearrange for Internal Planar ////////////////////////////// |
//// move the previous frame Y component to internal planar format |
//$for (0; <nY_NUM_OF_ROWS/2; 1) { |
// mov (16) uwDEST_Y(%1,0)<1> ubRESP(nDI_PREV_FRAME_LUMA_OFFSET,%1*16) |
//} |
//// move the previous frame U,V components to internal planar format |
//$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
// mov (8) uwDEST_U(0,%1*8)<1> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
// mov (8) uwDEST_V(0,%1*8)<1> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //V pixels |
//} |
//// move the current frame Y component to internal planar format |
//$for (0; <nY_NUM_OF_ROWS/2; 1) { |
// mov (16) uwDEST_Y(%1+4,0)<1> ubRESP(nDI_CURR_FRAME_LUMA_OFFSET,%1*16) |
//} |
//// move the current frame U,V components to internal planar format |
//$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
// mov (8) uwDEST_U(2,%1*8)<1> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
// mov (8) uwDEST_V(2,%1*8)<1> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //V pixels |
//} |
////////////////////////////////////// Save the STMM Data for Next Run ///////////////////////// |
// Write STMM to memory |
shr (1) rMSGSRC.0<1>:ud wORIX<0;1,0>:w 1:w NODDCLR // X origin / 2 |
mov (1) rMSGSRC.1<1>:ud wORIY<0;1,0>:w NODDCLR_NODDCHK // Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_STMM:ud NODDCHK // block width and height (8x4) |
mov (8) mudMSGHDR_STMM(0)<1> rMSGSRC.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udRESP(nDI_STMM_OFFSET,0) // Move STMM to MRF |
send (8) dNULLREG mMSGHDR_STMM udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_STMM+nBI_STMM_HISTORY_OUTPUT:ud |
////////////////////////////////////// Save the History Data for Next Run ///////////////////////// |
#ifdef DI_ONLY |
#else |
#include "DI_Hist_Save.asm" |
////////////////////////////////////// Pack and Save the DN Curr Frame for Next Run /////////////// |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w ubTFLD_FIRST<0;1,0>:ub 1:w |
add (4) pCF_Y_OFFSET<1>:uw ubSRC_CF_OFFSET<4;4,1>:ub npDN_YUV:uw |
//set the save DN position |
shl (1) rMSGSRC.0<1>:ud wORIX<0;1,0>:w 1:w NODDCLR // X origin * 2 |
mov (1) rMSGSRC.1<1>:ud wORIY<0;1,0>:w NODDCLR_NODDCHK // Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_DN:ud NODDCHK // block width and height (8x4) |
mov (8) mudMSGHDR_DN(0)<1> rMSGSRC.0<8;8,1>:ud |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
//$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
// mov (16) r[pCF_Y_OFFSET, %1*32]<2>:ub ubRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*16) // 2nd field luma from current frame (line 0,2) |
// mov (16) r[pCF_Y_OFFSET, %1+1*32]<2>:ub ubRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,16) // 1st field luma from current frame (line 1,3) |
// mov (8) r[pCF_U_OFFSET, %1*32]<4>:ub ubRESP(nDI_CURR_2ND_FIELD_CHROMA_OFFSET,%2*16+1)<16;8,2> // 2nd field U from current frame (line 0,2) |
// mov (8) r[pCF_V_OFFSET, %1*32]<4>:ub ubRESP(nDI_CURR_2ND_FIELD_CHROMA_OFFSET,%2*16)<16;8,2> // 2nd field V from current frame (line 0,2) |
// mov (8) r[pCF_U_OFFSET, %1+1*32]<4>:ub ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET+%2,16+1)<16;8,2> // 1st field U from current frame (line 1,3) |
// mov (8) r[pCF_V_OFFSET, %1+1*32]<4>:ub ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET+%2,16)<16;8,2> // 1st field U from current frame (line 1,3) |
//} |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (16) r[pCF_Y_OFFSET, %1*32]<2>:ub ubRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*16) // 2nd field luma from current frame (line 0,2) |
mov (16) r[pCF_Y_OFFSET, %1+1*32]<2>:ub ubRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,16) // 1st field luma from current frame (line 1,3) |
} |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (8) r[pCF_U_OFFSET, %1*32]<4>:ub ubRESP(nDI_CURR_2ND_FIELD_CHROMA_OFFSET,%2*16+1)<16;8,2> // 2nd field U from current frame (line 0,2) |
mov (8) r[pCF_U_OFFSET, %1+1*32]<4>:ub ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET+%2,16+1)<16;8,2> // 1st field U from current frame (line 1,3) |
} |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (8) r[pCF_V_OFFSET, %1*32]<4>:ub ubRESP(nDI_CURR_2ND_FIELD_CHROMA_OFFSET,%2*16)<16;8,2> // 2nd field V from current frame (line 0,2) |
mov (8) r[pCF_V_OFFSET, %1+1*32]<4>:ub ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET+%2,16)<16;8,2> // 1st field U from current frame (line 1,3) |
} |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
//$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
// mov (16) r[pCF_Y_OFFSET, %1*32]<2>:ub ubRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,0) // 1st field luma from current frame (line 0,2) |
// mov (16) r[pCF_Y_OFFSET, %1+1*32]<2>:ub ubRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*16) // 2nd field luma from current frame (line 1,3) |
// mov (8) r[pCF_U_OFFSET, %1*32]<4>:ub ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET+%2,1)<16;8,2> // 1st field U from current frame (line 0,2) |
// mov (8) r[pCF_V_OFFSET, %1*32]<4>:ub ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET+%2,0)<16;8,2> // 1st field V from current frame (line 0,2) |
// mov (8) r[pCF_U_OFFSET, %1+1*32]<4>:ub ubRESP(nDI_CURR_2ND_FIELD_CHROMA_OFFSET,%2*16+1)<16;8,2> // 2nd field U from current frame (line 1,3) |
// mov (8) r[pCF_V_OFFSET, %1+1*32]<4>:ub ubRESP(nDI_CURR_2ND_FIELD_CHROMA_OFFSET,%2*16)<16;8,2> // 2nd field V from current frame (line 1,3) |
//} |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (16) r[pCF_Y_OFFSET, %1*32]<2>:ub ubRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,0) // 1st field luma from current frame (line 0,2) |
mov (16) r[pCF_Y_OFFSET, %1+1*32]<2>:ub ubRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*16) // 2nd field luma from current frame (line 1,3) |
} |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (8) r[pCF_U_OFFSET, %1*32]<4>:ub ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET+%2,1)<16;8,2> // 1st field U from current frame (line 0,2) |
mov (8) r[pCF_U_OFFSET, %1+1*32]<4>:ub ubRESP(nDI_CURR_2ND_FIELD_CHROMA_OFFSET,%2*16+1)<16;8,2> // 2nd field U from current frame (line 1,3) |
} |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (8) r[pCF_V_OFFSET, %1*32]<4>:ub ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET+%2,0)<16;8,2> // 1st field V from current frame (line 0,2) |
mov (8) r[pCF_V_OFFSET, %1+1*32]<4>:ub ubRESP(nDI_CURR_2ND_FIELD_CHROMA_OFFSET,%2*16)<16;8,2> // 2nd field V from current frame (line 1,3) |
} |
SAVE_DN_CURR: |
$for(0; <nY_NUM_OF_ROWS/2; 1) { |
mov (8) mudMSGHDR_DN(%1+1)<1> udDN_YUV(%1)REGION(8,1) |
} |
send (8) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_PA_DN_DI+nBI_DESTINATION_YUV:ud |
#endif |
// Save Processed frames |
#include "DI_Save_PA.asm" |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PA_DN_ALG.asm |
---|
0,0 → 1,54 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#define DI_DISABLE |
#include "DNDI.inc" |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block |
#undef nUV_NUM_OF_ROWS |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#undef nSMPL_RESP_LEN |
#define nSMPL_RESP_LEN nSMPL_RESP_LEN_DN_PA // Set the Number of GRFs in DNDI response |
#undef nDPW_BLOCK_SIZE_DN |
#define nDPW_BLOCK_SIZE_DN nBLOCK_WIDTH_32+nBLOCK_HEIGHT_8 // DN Curr Block Size for Write is 32x8 |
#undef nDPW_BLOCK_SIZE_HIST |
#define nDPW_BLOCK_SIZE_HIST nBLOCK_WIDTH_4+nBLOCK_HEIGHT_2 // HIST Block Size for Write is 4x2 |
////////////////////////////////////// Run the DN Algorithm /////////////////////////////////////// |
#include "DNDI_COMMAND.asm" |
////////////////////////////////////// Save the History Data for Next Run ///////////////////////// |
#include "DNDI_Hist_Save.asm" |
////////////////////////////////////// Pack and Save the DN Curr Frame for Next Run /////////////// |
add (4) pCF_Y_OFFSET<1>:uw ubDEST_CF_OFFSET<4;4,1>:ub npDN_YUV:w |
$for (0; <nY_NUM_OF_ROWS; 1) { |
mov (16) r[pCF_Y_OFFSET, %1*32]<2>:ub ubRESP(nNODI_LUMA_OFFSET,%1*16)<16;16,1> // copy line of Y |
} |
$for (0; <nUV_NUM_OF_ROWS; 1) { |
mov (8) r[pCF_U_OFFSET, %1*32]<4>:ub ubRESP(nNODI_CHROMA_OFFSET,%1*16+1)<16;8,2> // copy line of U |
mov (8) r[pCF_V_OFFSET, %1*32]<4>:ub ubRESP(nNODI_CHROMA_OFFSET,%1*16)<16;8,2> // copy line of V |
} |
shl (1) rMSGSRC.0<1>:ud wORIX<0;1,0>:w 1:w // X origin * 2 (422 output) |
mov (1) rMSGSRC.1<1>:ud wORIY<0;1,0>:w // Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_DN:ud // block width and height (32x8) |
mov (8) mMSGHDR_DN<1>:ud rMSGSRC<8;8,1>:ud // message header |
$for(0; <nY_NUM_OF_ROWS; 2) { |
mov (16) mudMSGHDR_DN(1+%1)<1> udDN_YUV(%1)REGION(8,1) // Move DN Curr to MRF |
} |
send (8) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_PA_DN_NODI+nBI_DESTINATION_YUV:ud |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PA_Scaling.asm |
---|
0,0 → 1,70 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PA_Scaling.asm ---------- |
#include "Scaling.inc" |
// Build 16 elements ramp in float32 and normalized it |
// mov (8) SAMPLER_RAMP(0)<1> 0x76543210:v |
// add (8) SAMPLER_RAMP(1)<1> SAMPLER_RAMP(0) 8.0:f |
mov (4) SAMPLER_RAMP(0)<1> 0x48403000:vf //3, 2, 1, 0 in float vector |
mov (4) SAMPLER_RAMP(0,4)<1> 0x5C585450:vf //7, 6, 5, 4 in float vector |
add (8) SAMPLER_RAMP(1)<1> SAMPLER_RAMP(0) 8.0:f |
//Module: PrepareScaleCoord.asm |
// Setup for sampler msg hdr |
mov (2) rMSGSRC.0<1>:ud 0:ud { NoDDClr } // Unused fields |
mov (1) rMSGSRC.2<1>:ud 0:ud { NoDDChk } // Write and offset |
// Calculate 16 v based on the step Y and vertical origin |
mov (16) mfMSGPAYLOAD(2)<1> fSRC_VID_V_ORI<0;1,0>:f |
mov (16) SCALE_COORD_Y<1>:f fSRC_VID_V_ORI<0;1,0>:f |
// Calculate 16 u based on the step X and hori origin |
// line (16) mfMSGPAYLOAD(0)<1> SCALE_STEP_X<0;1,0>:f SAMPLER_RAMP(0) // Assign to mrf directly |
mov (16) acc0:f fSRC_VID_H_ORI<0;1,0>:f { Compr } |
mac (16) mfMSGPAYLOAD(0)<1> fVIDEO_STEP_X<0;1,0>:f SAMPLER_RAMP(0) { Compr } |
//Setup the constants for line instruction |
mov (1) SCALE_LINE_P255<1>:f 255.0:f { NoDDClr } //{ NoDDClr, NoDDChk } |
mov (1) SCALE_LINE_P0_5<1>:f 0.5:f { NoDDChk } |
//------------------------------------------------------------------------------ |
$for (0; <nY_NUM_OF_ROWS; 1) { |
// Read 16 sampled pixels and store them in float32 in 8 GRFs in the order of BGRA (VYUA). |
mov (8) MSGHDR_SCALE.0:ud rMSGSRC.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (16) SCALE_RESPONSE_YW(0)<1> MSGHDR_SCALE udDUMMY_NULL nSMPL_ENGINE SMPLR_MSG_DSC+nSI_SRC_SIMD16_YUV+nBI_CURRENT_SRC_YUV |
// Calculate 16 v for next line |
add (16) mfMSGPAYLOAD(2)<1> SCALE_COORD_Y<8;8,1>:f fVIDEO_STEP_Y<0;1,0>:f // Assign to mrf directly |
add (16) SCALE_COORD_Y<1>:f SCALE_COORD_Y<8;8,1>:f fVIDEO_STEP_Y<0;1,0>:f // Assign to mrf directly |
// Scale back to [0, 255], convert f to ud |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_YF(0) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_YD(0)<1> acc0:f { Compr } |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_YF(2) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_YD(2)<1> acc0:f { Compr } |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_YF(4) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_YD(4)<1> acc0:f { Compr } |
mov (16) DEST_V(%1)<1> SCALE_RESPONSE_YB(0) //possible error due to truncation - vK |
mov (16) DEST_Y(%1)<1> SCALE_RESPONSE_YB(2) //possible error due to truncation - vK |
mov (16) DEST_U(%1)<1> SCALE_RESPONSE_YB(4) //possible error due to truncation - vK |
} |
#define nSRC_REGION nREGION_1 |
//------------------------------------------------------------------------------ |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL2_AVS_IEF_16x8.asm |
---|
0,0 → 1,60 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL2_AVS_IEF_16x8.asm ---------- |
#include "AVS_IEF.inc" |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 Y each |
// 2 sampler read for 8x8 U and 8x8 V (NV11\P208 input surface) |
//------------------------------------------------------------------------------ |
// 1st 8x8 setup |
#include "AVS_SetupFirstBlock.asm" |
// Enable green channel only |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
// Return Y in 4 GRFs |
// 8x8 U and V sampling |
// Enable red and blue channels |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_BLUE_CHANNELS:ud |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(4)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_2CH+nSI_SRC_UV+nBI_CURRENT_SRC_UV |
// Return U and V in 8 GRFs |
// 2nd 8x8 setup |
#include "AVS_SetupSecondBlock.asm" |
// 2nd 8x8 Y sampling |
// Enable green channel only |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE_2(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
// 2nd 8x8 U and V sampling |
// Enable red and blue channels |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_BLUE_CHANNELS:ud |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE_2(4)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_2CH+nSI_SRC_UV+nBI_CURRENT_SRC_UV |
// Return U and V in 8 GRFs |
//------------------------------------------------------------------------------ |
// Unpacking sampler reads to 4:4:4 internal planar |
//------------------------------------------------------------------------------ |
#include "PL2_AVS_IEF_Unpack_16x8.asm" |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL2_AVS_IEF_8x4.asm |
---|
0,0 → 1,58 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL2_AVS_IEF_8x4.asm ---------- |
#include "AVS_IEF.inc" |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 Y each |
// 1 sampler read for 8x8 U and 8x8 V (NV11\NV12 input surface) |
//------------------------------------------------------------------------------ |
// 1st 8x8 setup |
#include "AVS_SetupFirstBlock.asm" |
// Enable green channel only |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
// Return Y in 4 GRFs |
// 8x8 U and V sampling |
// Enable red and blue channels |
//Only 8x4 wil be used |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_BLUE_CHANNELS:ud |
// Calculate Chroma Step Size: |
// for H direction: 16 Luma samples are covered by 8 Chroma samples. Thus Chroma_Step_X = 2 * Luma_Step_X |
// for V direction: 8 Luma samples are covered by 8 Chroma samples. Thus Chroma_Step_Y = Luma_Step_Y |
mul (1) rAVS_PAYLOAD.1:f fVIDEO_STEP_X:f 2.0:f // Step X for chroma |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(4)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_2CH+nSI_SRC_UV+nBI_CURRENT_SRC_UV |
// Return U and V in 8 GRFs |
// 2nd 8x8 setup |
#include "AVS_SetupSecondBlock.asm" |
// 2nd 8x8 Y sampling |
// Enable green channel only |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE_2(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
//------------------------------------------------------------------------------ |
// Unpacking sampler reads to 4:2:0 internal planar |
//------------------------------------------------------------------------------ |
#include "PL2_AVS_IEF_Unpack_8x4.asm" |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL2_AVS_IEF_8x8.asm |
---|
0,0 → 1,57 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL2_AVS_IEF_8x8.asm ---------- |
#include "AVS_IEF.inc" |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 Y each |
// 1 sampler read for 8x8 U and 8x8 V (NV11\NV12 input surface) |
//------------------------------------------------------------------------------ |
// 1st 8x8 setup |
#include "AVS_SetupFirstBlock.asm" |
// Enable green channel only |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
// Return Y in 4 GRFs |
// 8x8 U and V sampling |
// Enable red and blue channels |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_BLUE_CHANNELS:ud |
// Calculate Chroma Step Size: |
// for H direction: 16 Luma samples are covered by 8 Chroma samples. Thus Chroma_Step_X = 2 * Luma_Step_X |
// for V direction: 8 Luma samples are covered by 8 Chroma samples. Thus Chroma_Step_Y = Luma_Step_Y |
mul (1) rAVS_PAYLOAD.1:f fVIDEO_STEP_X:f 2.0:f // Step X for chroma |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(4)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_2CH+nSI_SRC_UV+nBI_CURRENT_SRC_UV |
// Return U and V in 8 GRFs |
// 2nd 8x8 setup |
#include "AVS_SetupSecondBlock.asm" |
// 2nd 8x8 Y sampling |
// Enable green channel only |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE_2(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
//------------------------------------------------------------------------------ |
// Unpacking sampler reads to 4:2:2 internal planar |
//------------------------------------------------------------------------------ |
#include "PL2_AVS_IEF_Unpack_8x8.asm" |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL2_AVS_IEF_Unpack_16x8.asm |
---|
0,0 → 1,271 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL2_AVS_IEF_Unpack_16x8.asm ---------- |
#ifdef AVS_OUTPUT_16_BIT //Output is packed in AVYU format |
// Move first 8x8 words of Y to dest GRF (as packed) |
mov (4) uwDEST_Y(0,1)<4> uwAVS_RESPONSE(0,0)<4;4,1> |
mov (4) uwDEST_Y(1,1)<4> uwAVS_RESPONSE(0,8)<4;4,1> |
mov (4) uwDEST_Y(4,1)<4> uwAVS_RESPONSE(0,4)<4;4,1> |
mov (4) uwDEST_Y(5,1)<4> uwAVS_RESPONSE(0,12)<4;4,1> |
mov (4) uwDEST_Y(8,1)<4> uwAVS_RESPONSE(1,0)<4;4,1> |
mov (4) uwDEST_Y(9,1)<4> uwAVS_RESPONSE(1,8)<4;4,1> |
mov (4) uwDEST_Y(12,1)<4> uwAVS_RESPONSE(1,4)<4;4,1> |
mov (4) uwDEST_Y(13,1)<4> uwAVS_RESPONSE(1,12)<4;4,1> |
mov (4) uwDEST_Y(16,1)<4> uwAVS_RESPONSE(2,0)<4;4,1> |
mov (4) uwDEST_Y(17,1)<4> uwAVS_RESPONSE(2,8)<4;4,1> |
mov (4) uwDEST_Y(20,1)<4> uwAVS_RESPONSE(2,4)<4;4,1> |
mov (4) uwDEST_Y(21,1)<4> uwAVS_RESPONSE(2,12)<4;4,1> |
mov (4) uwDEST_Y(24,1)<4> uwAVS_RESPONSE(3,0)<4;4,1> |
mov (4) uwDEST_Y(25,1)<4> uwAVS_RESPONSE(3,8)<4;4,1> |
mov (4) uwDEST_Y(28,1)<4> uwAVS_RESPONSE(3,4)<4;4,1> |
mov (4) uwDEST_Y(29,1)<4> uwAVS_RESPONSE(3,12)<4;4,1> |
// Move first 8x8 words of U to dest GRF (as packed) |
mov (4) uwDEST_Y(0,0)<4> uwAVS_RESPONSE(4,0)<4;4,1> |
mov (4) uwDEST_Y(1,0)<4> uwAVS_RESPONSE(4,8)<4;4,1> |
mov (4) uwDEST_Y(4,0)<4> uwAVS_RESPONSE(4,4)<4;4,1> |
mov (4) uwDEST_Y(5,0)<4> uwAVS_RESPONSE(4,12)<4;4,1> |
mov (4) uwDEST_Y(8,0)<4> uwAVS_RESPONSE(5,0)<4;4,1> |
mov (4) uwDEST_Y(9,0)<4> uwAVS_RESPONSE(5,8)<4;4,1> |
mov (4) uwDEST_Y(12,0)<4> uwAVS_RESPONSE(5,4)<4;4,1> |
mov (4) uwDEST_Y(13,0)<4> uwAVS_RESPONSE(5,12)<4;4,1> |
mov (4) uwDEST_Y(16,0)<4> uwAVS_RESPONSE(8,0)<4;4,1> |
mov (4) uwDEST_Y(17,0)<4> uwAVS_RESPONSE(8,8)<4;4,1> |
mov (4) uwDEST_Y(20,0)<4> uwAVS_RESPONSE(8,4)<4;4,1> |
mov (4) uwDEST_Y(21,0)<4> uwAVS_RESPONSE(8,12)<4;4,1> |
mov (4) uwDEST_Y(24,0)<4> uwAVS_RESPONSE(9,0)<4;4,1> |
mov (4) uwDEST_Y(25,0)<4> uwAVS_RESPONSE(9,8)<4;4,1> |
mov (4) uwDEST_Y(28,0)<4> uwAVS_RESPONSE(9,4)<4;4,1> |
mov (4) uwDEST_Y(29,0)<4> uwAVS_RESPONSE(9,12)<4;4,1> |
// Move first 8x8 words of V to dest GRF (as packed) |
mov (4) uwDEST_Y(0,2)<4> uwAVS_RESPONSE(6,0)<4;4,1> |
mov (4) uwDEST_Y(1,2)<4> uwAVS_RESPONSE(6,8)<4;4,1> |
mov (4) uwDEST_Y(4,2)<4> uwAVS_RESPONSE(6,4)<4;4,1> |
mov (4) uwDEST_Y(5,2)<4> uwAVS_RESPONSE(6,12)<4;4,1> |
mov (4) uwDEST_Y(8,2)<4> uwAVS_RESPONSE(7,0)<4;4,1> |
mov (4) uwDEST_Y(9,2)<4> uwAVS_RESPONSE(7,8)<4;4,1> |
mov (4) uwDEST_Y(12,2)<4> uwAVS_RESPONSE(7,4)<4;4,1> |
mov (4) uwDEST_Y(13,2)<4> uwAVS_RESPONSE(7,12)<4;4,1> |
mov (4) uwDEST_Y(16,2)<4> uwAVS_RESPONSE(10,0)<4;4,1> |
mov (4) uwDEST_Y(17,2)<4> uwAVS_RESPONSE(10,8)<4;4,1> |
mov (4) uwDEST_Y(20,2)<4> uwAVS_RESPONSE(10,4)<4;4,1> |
mov (4) uwDEST_Y(21,2)<4> uwAVS_RESPONSE(10,12)<4;4,1> |
mov (4) uwDEST_Y(24,2)<4> uwAVS_RESPONSE(11,0)<4;4,1> |
mov (4) uwDEST_Y(25,2)<4> uwAVS_RESPONSE(11,8)<4;4,1> |
mov (4) uwDEST_Y(28,2)<4> uwAVS_RESPONSE(11,4)<4;4,1> |
mov (4) uwDEST_Y(29,2)<4> uwAVS_RESPONSE(11,12)<4;4,1> |
// Move first 8x8 words of A to dest GRF (as packed) |
mov (4) uwDEST_Y(0,3)<4> 0:uw |
mov (4) uwDEST_Y(1,3)<4> 0:uw |
mov (4) uwDEST_Y(4,3)<4> 0:uw |
mov (4) uwDEST_Y(5,3)<4> 0:uw |
mov (4) uwDEST_Y(8,3)<4> 0:uw |
mov (4) uwDEST_Y(9,3)<4> 0:uw |
mov (4) uwDEST_Y(12,3)<4> 0:uw |
mov (4) uwDEST_Y(13,3)<4> 0:uw |
mov (4) uwDEST_Y(16,3)<4> 0:uw |
mov (4) uwDEST_Y(17,3)<4> 0:uw |
mov (4) uwDEST_Y(20,3)<4> 0:uw |
mov (4) uwDEST_Y(21,3)<4> 0:uw |
mov (4) uwDEST_Y(24,3)<4> 0:uw |
mov (4) uwDEST_Y(25,3)<4> 0:uw |
mov (4) uwDEST_Y(28,3)<4> 0:uw |
mov (4) uwDEST_Y(29,3)<4> 0:uw |
// Move second 8x8 words of Y to dest GRF |
mov (4) uwDEST_Y(2,1)<4> uwAVS_RESPONSE_2(0,0)<4;4,1> |
mov (4) uwDEST_Y(3,1)<4> uwAVS_RESPONSE_2(0,8)<4;4,1> |
mov (4) uwDEST_Y(6,1)<4> uwAVS_RESPONSE_2(0,4)<4;4,1> |
mov (4) uwDEST_Y(7,1)<4> uwAVS_RESPONSE_2(0,12)<4;4,1> |
mov (4) uwDEST_Y(10,1)<4> uwAVS_RESPONSE_2(1,0)<4;4,1> |
mov (4) uwDEST_Y(11,1)<4> uwAVS_RESPONSE_2(1,8)<4;4,1> |
mov (4) uwDEST_Y(14,1)<4> uwAVS_RESPONSE_2(1,4)<4;4,1> |
mov (4) uwDEST_Y(15,1)<4> uwAVS_RESPONSE_2(1,12)<4;4,1> |
mov (4) uwDEST_Y(18,1)<4> uwAVS_RESPONSE_2(2,0)<4;4,1> |
mov (4) uwDEST_Y(19,1)<4> uwAVS_RESPONSE_2(2,8)<4;4,1> |
mov (4) uwDEST_Y(22,1)<4> uwAVS_RESPONSE_2(2,4)<4;4,1> |
mov (4) uwDEST_Y(23,1)<4> uwAVS_RESPONSE_2(2,12)<4;4,1> |
mov (4) uwDEST_Y(26,1)<4> uwAVS_RESPONSE_2(3,0)<4;4,1> |
mov (4) uwDEST_Y(27,1)<4> uwAVS_RESPONSE_2(3,8)<4;4,1> |
mov (4) uwDEST_Y(30,1)<4> uwAVS_RESPONSE_2(3,4)<4;4,1> |
mov (4) uwDEST_Y(31,1)<4> uwAVS_RESPONSE_2(3,12)<4;4,1> |
// Move second 8x8 words of U to dest GRF |
mov (4) uwDEST_Y(2,0)<4> uwAVS_RESPONSE_2(4,0)<4;4,1> |
mov (4) uwDEST_Y(3,0)<4> uwAVS_RESPONSE_2(4,8)<4;4,1> |
mov (4) uwDEST_Y(6,0)<4> uwAVS_RESPONSE_2(4,4)<4;4,1> |
mov (4) uwDEST_Y(7,0)<4> uwAVS_RESPONSE_2(4,12)<4;4,1> |
mov (4) uwDEST_Y(10,0)<4> uwAVS_RESPONSE_2(5,0)<4;4,1> |
mov (4) uwDEST_Y(11,0)<4> uwAVS_RESPONSE_2(5,8)<4;4,1> |
mov (4) uwDEST_Y(14,0)<4> uwAVS_RESPONSE_2(5,4)<4;4,1> |
mov (4) uwDEST_Y(15,0)<4> uwAVS_RESPONSE_2(5,12)<4;4,1> |
mov (4) uwDEST_Y(18,0)<4> uwAVS_RESPONSE_2(8,0)<4;4,1> |
mov (4) uwDEST_Y(19,0)<4> uwAVS_RESPONSE_2(8,8)<4;4,1> |
mov (4) uwDEST_Y(22,0)<4> uwAVS_RESPONSE_2(8,4)<4;4,1> |
mov (4) uwDEST_Y(23,0)<4> uwAVS_RESPONSE_2(8,12)<4;4,1> |
mov (4) uwDEST_Y(26,0)<4> uwAVS_RESPONSE_2(9,0)<4;4,1> |
mov (4) uwDEST_Y(27,0)<4> uwAVS_RESPONSE_2(9,8)<4;4,1> |
mov (4) uwDEST_Y(30,0)<4> uwAVS_RESPONSE_2(9,4)<4;4,1> |
mov (4) uwDEST_Y(31,0)<4> uwAVS_RESPONSE_2(9,12)<4;4,1> |
// Move second 8x8 words of V to dest GRF |
mov (4) uwDEST_Y(2,2)<4> uwAVS_RESPONSE_2(6,0)<4;4,1> |
mov (4) uwDEST_Y(3,2)<4> uwAVS_RESPONSE_2(6,8)<4;4,1> |
mov (4) uwDEST_Y(6,2)<4> uwAVS_RESPONSE_2(6,4)<4;4,1> |
mov (4) uwDEST_Y(7,2)<4> uwAVS_RESPONSE_2(6,12)<4;4,1> |
mov (4) uwDEST_Y(10,2)<4> uwAVS_RESPONSE_2(7,0)<4;4,1> |
mov (4) uwDEST_Y(11,2)<4> uwAVS_RESPONSE_2(7,8)<4;4,1> |
mov (4) uwDEST_Y(14,2)<4> uwAVS_RESPONSE_2(7,4)<4;4,1> |
mov (4) uwDEST_Y(15,2)<4> uwAVS_RESPONSE_2(7,12)<4;4,1> |
mov (4) uwDEST_Y(18,2)<4> uwAVS_RESPONSE_2(10,0)<4;4,1> |
mov (4) uwDEST_Y(19,2)<4> uwAVS_RESPONSE_2(10,8)<4;4,1> |
mov (4) uwDEST_Y(22,2)<4> uwAVS_RESPONSE_2(10,4)<4;4,1> |
mov (4) uwDEST_Y(23,2)<4> uwAVS_RESPONSE_2(10,12)<4;4,1> |
mov (4) uwDEST_Y(26,2)<4> uwAVS_RESPONSE_2(11,0)<4;4,1> |
mov (4) uwDEST_Y(27,2)<4> uwAVS_RESPONSE_2(11,8)<4;4,1> |
mov (4) uwDEST_Y(30,2)<4> uwAVS_RESPONSE_2(11,4)<4;4,1> |
mov (4) uwDEST_Y(31,2)<4> uwAVS_RESPONSE_2(11,12)<4;4,1> |
// Move second 8x8 words of A to dest GRF |
mov (4) uwDEST_Y(2,3)<4> 0:uw |
mov (4) uwDEST_Y(3,3)<4> 0:uw |
mov (4) uwDEST_Y(6,3)<4> 0:uw |
mov (4) uwDEST_Y(7,3)<4> 0:uw |
mov (4) uwDEST_Y(10,3)<4> 0:uw |
mov (4) uwDEST_Y(11,3)<4> 0:uw |
mov (4) uwDEST_Y(14,3)<4> 0:uw |
mov (4) uwDEST_Y(15,3)<4> 0:uw |
mov (4) uwDEST_Y(18,3)<4> 0:uw |
mov (4) uwDEST_Y(19,3)<4> 0:uw |
mov (4) uwDEST_Y(22,3)<4> 0:uw |
mov (4) uwDEST_Y(23,3)<4> 0:uw |
mov (4) uwDEST_Y(26,3)<4> 0:uw |
mov (4) uwDEST_Y(27,3)<4> 0:uw |
mov (4) uwDEST_Y(30,3)<4> 0:uw |
mov (4) uwDEST_Y(31,3)<4> 0:uw |
/* This section will be used if 16-bit output is needed in planar format -vK |
// Move 1st 8x8 words of Y to dest GRF at lower 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2)<1> uwAVS_RESPONSE(%1,0)<8;4,1> |
mov (8) uwDEST_Y(%1*2+1)<1> uwAVS_RESPONSE(%1,8)<8;4,1> |
} |
// Move 1st 8x8 words of U to dest GRF (Copy high byte in a word) |
mov (8) uwDEST_U(0)<1> uwAVS_RESPONSE(4,0)<8;4,1> |
mov (8) uwDEST_U(1)<1> uwAVS_RESPONSE(4,8)<8;4,1> |
mov (8) uwDEST_U(2)<1> uwAVS_RESPONSE(5,0)<8;4,1> |
mov (8) uwDEST_U(3)<1> uwAVS_RESPONSE(5,8)<8;4,1> |
mov (8) uwDEST_U(4)<1> uwAVS_RESPONSE(8,0)<8;4,1> |
mov (8) uwDEST_U(5)<1> uwAVS_RESPONSE(8,8)<8;4,1> |
mov (8) uwDEST_U(6)<1> uwAVS_RESPONSE(9,0)<8;4,1> |
mov (8) uwDEST_U(7)<1> uwAVS_RESPONSE(9,8)<8;4,1> |
// Move 1st 8x8 words of V to dest GRF |
mov (8) uwDEST_V(0)<1> uwAVS_RESPONSE(6,0)<8;4,1> |
mov (8) uwDEST_V(1)<1> uwAVS_RESPONSE(6,8)<8;4,1> |
mov (8) uwDEST_V(2)<1> uwAVS_RESPONSE(7,0)<8;4,1> |
mov (8) uwDEST_V(3)<1> uwAVS_RESPONSE(7,8)<8;4,1> |
mov (8) uwDEST_V(4)<1> uwAVS_RESPONSE(10,0)<8;4,1> |
mov (8) uwDEST_V(5)<1> uwAVS_RESPONSE(10,8)<8;4,1> |
mov (8) uwDEST_V(6)<1> uwAVS_RESPONSE(11,0)<8;4,1> |
mov (8) uwDEST_V(7)<1> uwAVS_RESPONSE(11,8)<8;4,1> |
// Move 2nd 8x8 words of Y to dest GRF at higher 8 words of each GRF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2,8)<1> uwAVS_RESPONSE_2(%1,0)<8;4,1> |
mov (8) uwDEST_Y(%1*2+1,8)<1> uwAVS_RESPONSE_2(%1,8)<8;4,1> |
} |
// Move 2st 8x8 words of U to dest GRF (Copy high byte in a word) |
mov (8) uwDEST_U(0,8)<1> uwAVS_RESPONSE_2(4,0)<8;4,1> |
mov (8) uwDEST_U(1,8)<1> uwAVS_RESPONSE_2(4,8)<8;4,1> |
mov (8) uwDEST_U(2,8)<1> uwAVS_RESPONSE_2(5,0)<8;4,1> |
mov (8) uwDEST_U(3,8)<1> uwAVS_RESPONSE_2(5,8)<8;4,1> |
mov (8) uwDEST_U(4,8)<1> uwAVS_RESPONSE_2(8,0)<8;4,1> |
mov (8) uwDEST_U(5,8)<1> uwAVS_RESPONSE_2(8,8)<8;4,1> |
mov (8) uwDEST_U(6,8)<1> uwAVS_RESPONSE_2(9,0)<8;4,1> |
mov (8) uwDEST_U(7,8)<1> uwAVS_RESPONSE_2(9,8)<8;4,1> |
// Move 2st 8x8 words of V to dest GRF |
mov (8) uwDEST_V(0,8)<1> uwAVS_RESPONSE_2(6,0)<8;4,1> |
mov (8) uwDEST_V(1,8)<1> uwAVS_RESPONSE_2(6,8)<8;4,1> |
mov (8) uwDEST_V(2,8)<1> uwAVS_RESPONSE_2(7,0)<8;4,1> |
mov (8) uwDEST_V(3,8)<1> uwAVS_RESPONSE_2(7,8)<8;4,1> |
mov (8) uwDEST_V(4,8)<1> uwAVS_RESPONSE_2(10,0)<8;4,1> |
mov (8) uwDEST_V(5,8)<1> uwAVS_RESPONSE_2(10,8)<8;4,1> |
mov (8) uwDEST_V(6,8)<1> uwAVS_RESPONSE_2(11,0)<8;4,1> |
mov (8) uwDEST_V(7,8)<1> uwAVS_RESPONSE_2(11,8)<8;4,1> |
*/ |
#else |
// Move 1st 8x8 words of Y to dest GRF at lower 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2)<1> ubAVS_RESPONSE(%1,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1)<1> ubAVS_RESPONSE(%1,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 1st 8x8 words of U to dest GRF (Copy high byte in a word) |
mov (8) uwDEST_U(0)<1> ubAVS_RESPONSE(4,1)<16;4,2> |
mov (8) uwDEST_U(1)<1> ubAVS_RESPONSE(4,8+1)<16;4,2> |
mov (8) uwDEST_U(2)<1> ubAVS_RESPONSE(5,1)<16;4,2> |
mov (8) uwDEST_U(3)<1> ubAVS_RESPONSE(5,8+1)<16;4,2> |
mov (8) uwDEST_U(4)<1> ubAVS_RESPONSE(8,1)<16;4,2> |
mov (8) uwDEST_U(5)<1> ubAVS_RESPONSE(8,8+1)<16;4,2> |
mov (8) uwDEST_U(6)<1> ubAVS_RESPONSE(9,1)<16;4,2> |
mov (8) uwDEST_U(7)<1> ubAVS_RESPONSE(9,8+1)<16;4,2> |
// Move 1st 8x8 words of V to dest GRF |
mov (8) uwDEST_V(0)<1> ubAVS_RESPONSE(6,1)<16;4,2> |
mov (8) uwDEST_V(1)<1> ubAVS_RESPONSE(6,8+1)<16;4,2> |
mov (8) uwDEST_V(2)<1> ubAVS_RESPONSE(7,1)<16;4,2> |
mov (8) uwDEST_V(3)<1> ubAVS_RESPONSE(7,8+1)<16;4,2> |
mov (8) uwDEST_V(4)<1> ubAVS_RESPONSE(10,1)<16;4,2> |
mov (8) uwDEST_V(5)<1> ubAVS_RESPONSE(10,8+1)<16;4,2> |
mov (8) uwDEST_V(6)<1> ubAVS_RESPONSE(11,1)<16;4,2> |
mov (8) uwDEST_V(7)<1> ubAVS_RESPONSE(11,8+1)<16;4,2> |
// Move 2nd 8x8 words of Y to dest GRF at higher 8 words of each GRF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2,8)<1> ubAVS_RESPONSE_2(%1,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1,8)<1> ubAVS_RESPONSE_2(%1,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 2st 8x8 words of U to dest GRF (Copy high byte in a word) |
mov (8) uwDEST_U(0,8)<1> ubAVS_RESPONSE_2(4,1)<16;4,2> |
mov (8) uwDEST_U(1,8)<1> ubAVS_RESPONSE_2(4,8+1)<16;4,2> |
mov (8) uwDEST_U(2,8)<1> ubAVS_RESPONSE_2(5,1)<16;4,2> |
mov (8) uwDEST_U(3,8)<1> ubAVS_RESPONSE_2(5,8+1)<16;4,2> |
mov (8) uwDEST_U(4,8)<1> ubAVS_RESPONSE_2(8,1)<16;4,2> |
mov (8) uwDEST_U(5,8)<1> ubAVS_RESPONSE_2(8,8+1)<16;4,2> |
mov (8) uwDEST_U(6,8)<1> ubAVS_RESPONSE_2(9,1)<16;4,2> |
mov (8) uwDEST_U(7,8)<1> ubAVS_RESPONSE_2(9,8+1)<16;4,2> |
// Move 2st 8x8 words of V to dest GRF |
mov (8) uwDEST_V(0,8)<1> ubAVS_RESPONSE_2(6,1)<16;4,2> |
mov (8) uwDEST_V(1,8)<1> ubAVS_RESPONSE_2(6,8+1)<16;4,2> |
mov (8) uwDEST_V(2,8)<1> ubAVS_RESPONSE_2(7,1)<16;4,2> |
mov (8) uwDEST_V(3,8)<1> ubAVS_RESPONSE_2(7,8+1)<16;4,2> |
mov (8) uwDEST_V(4,8)<1> ubAVS_RESPONSE_2(10,1)<16;4,2> |
mov (8) uwDEST_V(5,8)<1> ubAVS_RESPONSE_2(10,8+1)<16;4,2> |
mov (8) uwDEST_V(6,8)<1> ubAVS_RESPONSE_2(11,1)<16;4,2> |
mov (8) uwDEST_V(7,8)<1> ubAVS_RESPONSE_2(11,8+1)<16;4,2> |
#endif |
// Re-define new # of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL2_AVS_IEF_Unpack_8x4.asm |
---|
0,0 → 1,45 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL2_AVS_IEF_8x4.asm ---------- |
// Move first 8x8 words of Y to dest GRF at lower 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2)<1> ubAVS_RESPONSE(%1,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1)<1> ubAVS_RESPONSE(%1,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 8x4 words of U to dest GRF (Copy high byte in a word) |
mov (8) uwDEST_U(0)<1> ubAVS_RESPONSE(4,1)<16;4,2> |
mov (8) uwDEST_U(0,8)<1> ubAVS_RESPONSE(5,1)<16;4,2> |
mov (8) uwDEST_U(1)<1> ubAVS_RESPONSE(8,1)<16;4,2> |
mov (8) uwDEST_U(1,8)<1> ubAVS_RESPONSE(9,1)<16;4,2> |
// Move 8x4 words of V to dest GRF |
mov (8) uwDEST_V(0)<1> ubAVS_RESPONSE(6,1)<16;4,2> |
mov (8) uwDEST_V(0,8)<1> ubAVS_RESPONSE(7,1)<16;4,2> |
mov (8) uwDEST_V(1)<1> ubAVS_RESPONSE(10,1)<16;4,2> |
mov (8) uwDEST_V(1,8)<1> ubAVS_RESPONSE(11,1)<16;4,2> |
// Move 2nd 8x8 words of Y to dest GRF at higher 8 words of each GRF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2,8)<1> ubAVS_RESPONSE_2(%1,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1,8)<1> ubAVS_RESPONSE_2(%1,8+1)<16;4,2> // Copy high byte in a word |
} |
//------------------------------------------------------------------------------ |
// Re-define new # of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 4 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL2_AVS_IEF_Unpack_8x8.asm |
---|
0,0 → 1,53 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL2_AVS_IEF_8x8.asm ---------- |
// Move first 8x8 words of Y to dest GRF at lower 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2)<1> ubAVS_RESPONSE(%1,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1)<1> ubAVS_RESPONSE(%1,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 8x8 words of U to dest GRF (Copy high byte in a word) |
mov (8) uwDEST_U(0)<1> ubAVS_RESPONSE(4,1)<16;4,2> |
mov (8) uwDEST_U(0,8)<1> ubAVS_RESPONSE(4,8+1)<16;4,2> |
mov (8) uwDEST_U(1)<1> ubAVS_RESPONSE(5,1)<16;4,2> |
mov (8) uwDEST_U(1,8)<1> ubAVS_RESPONSE(5,8+1)<16;4,2> |
mov (8) uwDEST_U(2)<1> ubAVS_RESPONSE(8,1)<16;4,2> |
mov (8) uwDEST_U(2,8)<1> ubAVS_RESPONSE(8,8+1)<16;4,2> |
mov (8) uwDEST_U(3)<1> ubAVS_RESPONSE(9,1)<16;4,2> |
mov (8) uwDEST_U(3,8)<1> ubAVS_RESPONSE(9,8+1)<16;4,2> |
// Move 8x8 words of V to dest GRF |
mov (8) uwDEST_V(0)<1> ubAVS_RESPONSE(6,1)<16;4,2> |
mov (8) uwDEST_V(0,8)<1> ubAVS_RESPONSE(6,8+1)<16;4,2> |
mov (8) uwDEST_V(1)<1> ubAVS_RESPONSE(7,1)<16;4,2> |
mov (8) uwDEST_V(1,8)<1> ubAVS_RESPONSE(7,8+1)<16;4,2> |
mov (8) uwDEST_V(2)<1> ubAVS_RESPONSE(10,1)<16;4,2> |
mov (8) uwDEST_V(2,8)<1> ubAVS_RESPONSE(10,8+1)<16;4,2> |
mov (8) uwDEST_V(3)<1> ubAVS_RESPONSE(11,1)<16;4,2> |
mov (8) uwDEST_V(3,8)<1> ubAVS_RESPONSE(11,8+1)<16;4,2> |
// Move 2nd 8x8 words of Y to dest GRF at higher 8 words of each GRF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2,8)<1> ubAVS_RESPONSE_2(%1,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1,8)<1> ubAVS_RESPONSE_2(%1,8+1)<16;4,2> // Copy high byte in a word |
} |
//------------------------------------------------------------------------------ |
// Re-define new # of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL2_Scaling.asm |
---|
0,0 → 1,71 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL2_Scaling.asm ---------- |
#include "Scaling.inc" |
// Build 16 elements ramp in float32 and normalized it |
// mov (8) SAMPLER_RAMP(0)<1> 0x76543210:v |
// add (8) SAMPLER_RAMP(1)<1> SAMPLER_RAMP(0) 8.0:f |
mov (4) SAMPLER_RAMP(0)<1> 0x48403000:vf //3, 2, 1, 0 in float vector |
mov (4) SAMPLER_RAMP(0,4)<1> 0x5C585450:vf //7, 6, 5, 4 in float vector |
add (8) SAMPLER_RAMP(1)<1> SAMPLER_RAMP(0) 8.0:f |
//Module: PrepareScaleCoord.asm |
// Setup for sampler msg hdr |
mov (2) rMSGSRC.0<1>:ud 0:ud { NoDDClr } // Unused fields |
mov (1) rMSGSRC.2<1>:ud 0:ud { NoDDChk } // Write and offset |
// Calculate 16 v based on the step Y and vertical origin |
mov (16) mfMSGPAYLOAD(2)<1> fSRC_VID_V_ORI<0;1,0>:f |
mov (16) SCALE_COORD_Y<1>:f fSRC_VID_V_ORI<0;1,0>:f |
// Calculate 16 u based on the step X and hori origin |
// line (16) mfMSGPAYLOAD(0)<1> SCALE_STEP_X<0;1,0>:f SAMPLER_RAMP(0) // Assign to mrf directly |
mov (16) acc0:f fSRC_VID_H_ORI<0;1,0>:f { Compr } |
mac (16) mfMSGPAYLOAD(0)<1> fVIDEO_STEP_X<0;1,0>:f SAMPLER_RAMP(0) { Compr } |
//Setup the constants for line instruction |
mov (1) SCALE_LINE_P255<1>:f 255.0:f { NoDDClr } //{ NoDDClr, NoDDChk } |
mov (1) SCALE_LINE_P0_5<1>:f 0.5:f { NoDDChk } |
//------------------------------------------------------------------------------ |
$for (0; <nY_NUM_OF_ROWS; 1) { |
// Read 16 sampled pixels and store them in float32 in 8 GRFs in the order of BGRA (VYUA). |
mov (8) MSGHDR_SCALE.0:ud rMSGSRC.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (16) SCALE_RESPONSE_YW(0)<1> MSGHDR_SCALE udDUMMY_NULL nSMPL_ENGINE SMPLR_MSG_DSC+nSI_SRC_SIMD16_Y+nBI_CURRENT_SRC_Y |
send (16) SCALE_RESPONSE_UW(0)<1> MSGHDR_SCALE udDUMMY_NULL nSMPL_ENGINE SMPLR_MSG_DSC+nSI_SRC_SIMD16_UV+nBI_CURRENT_SRC_UV |
// Calculate 16 v for next line |
add (16) mfMSGPAYLOAD(2)<1> SCALE_COORD_Y<8;8,1>:f fVIDEO_STEP_Y<0;1,0>:f // Assign to mrf directly |
add (16) SCALE_COORD_Y<1>:f SCALE_COORD_Y<8;8,1>:f fVIDEO_STEP_Y<0;1,0>:f // Assign to mrf directly |
// Scale back to [0, 255], convert f to ud |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_YF(0) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_YD(0)<1> acc0:f { Compr } |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_UF(0) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_UD(0)<1> acc0:f { Compr } |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_UF(2) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_UD(2)<1> acc0:f { Compr } |
mov (16) DEST_Y(%1)<1> SCALE_RESPONSE_YB(0) //possible error due to truncation - vK |
mov (16) DEST_U(%1)<1> SCALE_RESPONSE_UB(0) //possible error due to truncation - vK |
mov (16) DEST_V(%1)<1> SCALE_RESPONSE_UB(2) //possible error due to truncation - vK |
} |
#define nSRC_REGION nREGION_1 |
//------------------------------------------------------------------------------ |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL3_AVS_IEF_16x8.asm |
---|
0,0 → 1,69 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL3_AVS_IEF_16x8.asm ---------- |
#include "AVS_IEF.inc" |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 Y surface |
// 2 sampler read for 8x8 U surface |
// 2 sampler read for 8x8 V surface |
//------------------------------------------------------------------------------ |
// 1st 8x8 setup |
#include "AVS_SetupFirstBlock.asm" |
// 1st 8x8 Y sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud // Enable green channel |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
// Return Y in 4 GRFs |
// 1st 8x8 U sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_CHANNEL_ONLY:ud // Enable red channel |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(4)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_U+nBI_CURRENT_SRC_U |
// Return U in 4 GRFs |
// 1st 8x8 V sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_CHANNEL_ONLY:ud // Dummy instruction to avoid back-2-back send instructions |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(8)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_V+nBI_CURRENT_SRC_V |
// Return V in 4 GRFs |
// 2nd 8x8 setup |
#include "AVS_SetupSecondBlock.asm" |
// 2nd 8x8 Y sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud // Enable green channel |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE_2(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
// Return Y in 4 GRFs |
// 2nd 8x8 U sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_CHANNEL_ONLY:ud // Enable red channel |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE_2(4)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_U+nBI_CURRENT_SRC_U |
// Return U in 4 GRFs |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_CHANNEL_ONLY:ud // Dummy instruction just in order to avoid back-2-back send instructions! |
// 2nd 8x8 V sampling |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE_2(8)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_V+nBI_CURRENT_SRC_V |
// Return V in 4 GRFs |
//------------------------------------------------------------------------------ |
// Unpacking sampler reads to 4:4:4 internal planar |
//------------------------------------------------------------------------------ |
#include "PL3_AVS_IEF_Unpack_16x8.asm" |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL3_AVS_IEF_8x4.asm |
---|
0,0 → 1,60 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL3_AVS_IEF_8x4.asm ---------- |
#include "AVS_IEF.inc" |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 Y surface |
// 1 sampler read for 8x8 U surface |
// 1 sampler read for 8x8 V surface |
//------------------------------------------------------------------------------ |
// 1st 8x8 setup |
#include "AVS_SetupFirstBlock.asm" |
// 1st 8x8 Y sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud // Enable green channel |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
// Return Y in 4 GRFs |
// 8x8 U sampling ; Only 8x4 will be used |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_CHANNEL_ONLY:ud // Enable red channel |
mul (1) rAVS_PAYLOAD.1:f fVIDEO_STEP_X:f 2.0:f // Calculate Step X for chroma |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(4)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_U+nBI_CURRENT_SRC_U |
// Return U in 4 GRFs |
// 8x8 V sampling ; Only 8x4 will be used |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_CHANNEL_ONLY:ud // Dummy instruction just in order to avoid back-2-back send instructions! |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(8)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_V+nBI_CURRENT_SRC_V |
// Return V in 4 GRFs |
// 2nd 8x8 setup |
#include "AVS_SetupSecondBlock.asm" |
// 2nd 8x8 Y sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud // Enable green channel |
mov (1) rAVS_PAYLOAD.1:f fVIDEO_STEP_X:f // Restore Step X for luma |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(12)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
// Return Y in 4 GRFs |
//------------------------------------------------------------------------------ |
// Unpacking sampler reads to 4:2:0 internal planar |
//------------------------------------------------------------------------------ |
#include "PL3_AVS_IEF_Unpack_8x4.asm" |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL3_AVS_IEF_8x8.asm |
---|
0,0 → 1,60 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL3_AVS_IEF_8x8.asm ---------- |
#include "AVS_IEF.inc" |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 Y surface |
// 1 sampler read for 8x8 U surface |
// 1 sampler read for 8x8 V surface |
//------------------------------------------------------------------------------ |
// 1st 8x8 setup |
#include "AVS_SetupFirstBlock.asm" |
// 1st 8x8 Y sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud // Enable green channel |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
// Return Y in 4 GRFs |
// 8x8 U sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_CHANNEL_ONLY:ud // Enable red channel |
mul (1) rAVS_PAYLOAD.1:f fVIDEO_STEP_X:f 2.0:f // Calculate Step X for chroma |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(4)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_U+nBI_CURRENT_SRC_U |
// Return U in 4 GRFs |
// 8x8 V sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_RED_CHANNEL_ONLY:ud // Dummy instruction just in order to avoid back-2-back send instructions! |
mov (16) mAVS_8x8_HDR_UV.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(8)<1> mAVS_8x8_HDR_UV udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_V+nBI_CURRENT_SRC_V |
// Return V in 4 GRFs |
// 2nd 8x8 setup |
#include "AVS_SetupSecondBlock.asm" |
// 2nd 8x8 Y sampling |
mov (1) rAVS_8x8_HDR.2:ud nAVS_GREEN_CHANNEL_ONLY:ud // Enable green channel |
mov (1) rAVS_PAYLOAD.1:f fVIDEO_STEP_X:f // Restore Step X for luma |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(12)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_1CH+nSI_SRC_Y+nBI_CURRENT_SRC_Y |
// Return Y in 4 GRFs |
//------------------------------------------------------------------------------ |
// Unpacking sampler reads to 4:2:2 internal planar |
//------------------------------------------------------------------------------ |
#include "PL3_AVS_IEF_Unpack_8x8.asm" |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL3_AVS_IEF_Unpack_16x8.asm |
---|
0,0 → 1,240 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL3_AVS_IEF_Unpack_16x8.asm ---------- |
#ifdef AVS_OUTPUT_16_BIT //Output is packed in AVYU format |
// Move first 8x8 words of Y to dest GRF (as packed) |
mov (4) uwDEST_Y(0,1)<4> uwAVS_RESPONSE(0,0)<4;4,1> |
mov (4) uwDEST_Y(1,1)<4> uwAVS_RESPONSE(0,8)<4;4,1> |
mov (4) uwDEST_Y(4,1)<4> uwAVS_RESPONSE(0,4)<4;4,1> |
mov (4) uwDEST_Y(5,1)<4> uwAVS_RESPONSE(0,12)<4;4,1> |
mov (4) uwDEST_Y(8,1)<4> uwAVS_RESPONSE(1,0)<4;4,1> |
mov (4) uwDEST_Y(9,1)<4> uwAVS_RESPONSE(1,8)<4;4,1> |
mov (4) uwDEST_Y(12,1)<4> uwAVS_RESPONSE(1,4)<4;4,1> |
mov (4) uwDEST_Y(13,1)<4> uwAVS_RESPONSE(1,12)<4;4,1> |
mov (4) uwDEST_Y(16,1)<4> uwAVS_RESPONSE(2,0)<4;4,1> |
mov (4) uwDEST_Y(17,1)<4> uwAVS_RESPONSE(2,8)<4;4,1> |
mov (4) uwDEST_Y(20,1)<4> uwAVS_RESPONSE(2,4)<4;4,1> |
mov (4) uwDEST_Y(21,1)<4> uwAVS_RESPONSE(2,12)<4;4,1> |
mov (4) uwDEST_Y(24,1)<4> uwAVS_RESPONSE(3,0)<4;4,1> |
mov (4) uwDEST_Y(25,1)<4> uwAVS_RESPONSE(3,8)<4;4,1> |
mov (4) uwDEST_Y(28,1)<4> uwAVS_RESPONSE(3,4)<4;4,1> |
mov (4) uwDEST_Y(29,1)<4> uwAVS_RESPONSE(3,12)<4;4,1> |
// Move first 8x8 words of U to dest GRF (as packed) |
mov (4) uwDEST_Y(0,0)<4> uwAVS_RESPONSE(4,0)<4;4,1> |
mov (4) uwDEST_Y(1,0)<4> uwAVS_RESPONSE(4,8)<4;4,1> |
mov (4) uwDEST_Y(4,0)<4> uwAVS_RESPONSE(4,4)<4;4,1> |
mov (4) uwDEST_Y(5,0)<4> uwAVS_RESPONSE(4,12)<4;4,1> |
mov (4) uwDEST_Y(8,0)<4> uwAVS_RESPONSE(5,0)<4;4,1> |
mov (4) uwDEST_Y(9,0)<4> uwAVS_RESPONSE(5,8)<4;4,1> |
mov (4) uwDEST_Y(12,0)<4> uwAVS_RESPONSE(5,4)<4;4,1> |
mov (4) uwDEST_Y(13,0)<4> uwAVS_RESPONSE(5,12)<4;4,1> |
mov (4) uwDEST_Y(16,0)<4> uwAVS_RESPONSE(6,0)<4;4,1> |
mov (4) uwDEST_Y(17,0)<4> uwAVS_RESPONSE(6,8)<4;4,1> |
mov (4) uwDEST_Y(20,0)<4> uwAVS_RESPONSE(6,4)<4;4,1> |
mov (4) uwDEST_Y(21,0)<4> uwAVS_RESPONSE(6,12)<4;4,1> |
mov (4) uwDEST_Y(24,0)<4> uwAVS_RESPONSE(7,0)<4;4,1> |
mov (4) uwDEST_Y(25,0)<4> uwAVS_RESPONSE(7,8)<4;4,1> |
mov (4) uwDEST_Y(28,0)<4> uwAVS_RESPONSE(7,4)<4;4,1> |
mov (4) uwDEST_Y(29,0)<4> uwAVS_RESPONSE(7,12)<4;4,1> |
// Move first 8x8 words of V to dest GRF (as packed) |
mov (4) uwDEST_Y(0,2)<4> uwAVS_RESPONSE(8,0)<4;4,1> |
mov (4) uwDEST_Y(1,2)<4> uwAVS_RESPONSE(8,8)<4;4,1> |
mov (4) uwDEST_Y(4,2)<4> uwAVS_RESPONSE(8,4)<4;4,1> |
mov (4) uwDEST_Y(5,2)<4> uwAVS_RESPONSE(8,12)<4;4,1> |
mov (4) uwDEST_Y(8,2)<4> uwAVS_RESPONSE(9,0)<4;4,1> |
mov (4) uwDEST_Y(9,2)<4> uwAVS_RESPONSE(9,8)<4;4,1> |
mov (4) uwDEST_Y(12,2)<4> uwAVS_RESPONSE(9,4)<4;4,1> |
mov (4) uwDEST_Y(13,2)<4> uwAVS_RESPONSE(9,12)<4;4,1> |
mov (4) uwDEST_Y(16,2)<4> uwAVS_RESPONSE(10,0)<4;4,1> |
mov (4) uwDEST_Y(17,2)<4> uwAVS_RESPONSE(10,8)<4;4,1> |
mov (4) uwDEST_Y(20,2)<4> uwAVS_RESPONSE(10,4)<4;4,1> |
mov (4) uwDEST_Y(21,2)<4> uwAVS_RESPONSE(10,12)<4;4,1> |
mov (4) uwDEST_Y(24,2)<4> uwAVS_RESPONSE(11,0)<4;4,1> |
mov (4) uwDEST_Y(25,2)<4> uwAVS_RESPONSE(11,8)<4;4,1> |
mov (4) uwDEST_Y(28,2)<4> uwAVS_RESPONSE(11,4)<4;4,1> |
mov (4) uwDEST_Y(29,2)<4> uwAVS_RESPONSE(11,12)<4;4,1> |
// Move first 8x8 words of A to dest GRF (as packed) |
mov (4) uwDEST_Y(0,3)<4> 0:uw |
mov (4) uwDEST_Y(1,3)<4> 0:uw |
mov (4) uwDEST_Y(4,3)<4> 0:uw |
mov (4) uwDEST_Y(5,3)<4> 0:uw |
mov (4) uwDEST_Y(8,3)<4> 0:uw |
mov (4) uwDEST_Y(9,3)<4> 0:uw |
mov (4) uwDEST_Y(12,3)<4> 0:uw |
mov (4) uwDEST_Y(13,3)<4> 0:uw |
mov (4) uwDEST_Y(16,3)<4> 0:uw |
mov (4) uwDEST_Y(17,3)<4> 0:uw |
mov (4) uwDEST_Y(20,3)<4> 0:uw |
mov (4) uwDEST_Y(21,3)<4> 0:uw |
mov (4) uwDEST_Y(24,3)<4> 0:uw |
mov (4) uwDEST_Y(25,3)<4> 0:uw |
mov (4) uwDEST_Y(28,3)<4> 0:uw |
mov (4) uwDEST_Y(29,3)<4> 0:uw |
// Move second 8x8 words of Y to dest GRF |
mov (4) uwDEST_Y(2,1)<4> uwAVS_RESPONSE_2(0,0)<4;4,1> |
mov (4) uwDEST_Y(3,1)<4> uwAVS_RESPONSE_2(0,8)<4;4,1> |
mov (4) uwDEST_Y(6,1)<4> uwAVS_RESPONSE_2(0,4)<4;4,1> |
mov (4) uwDEST_Y(7,1)<4> uwAVS_RESPONSE_2(0,12)<4;4,1> |
mov (4) uwDEST_Y(10,1)<4> uwAVS_RESPONSE_2(1,0)<4;4,1> |
mov (4) uwDEST_Y(11,1)<4> uwAVS_RESPONSE_2(1,8)<4;4,1> |
mov (4) uwDEST_Y(14,1)<4> uwAVS_RESPONSE_2(1,4)<4;4,1> |
mov (4) uwDEST_Y(15,1)<4> uwAVS_RESPONSE_2(1,12)<4;4,1> |
mov (4) uwDEST_Y(18,1)<4> uwAVS_RESPONSE_2(2,0)<4;4,1> |
mov (4) uwDEST_Y(19,1)<4> uwAVS_RESPONSE_2(2,8)<4;4,1> |
mov (4) uwDEST_Y(22,1)<4> uwAVS_RESPONSE_2(2,4)<4;4,1> |
mov (4) uwDEST_Y(23,1)<4> uwAVS_RESPONSE_2(2,12)<4;4,1> |
mov (4) uwDEST_Y(26,1)<4> uwAVS_RESPONSE_2(3,0)<4;4,1> |
mov (4) uwDEST_Y(27,1)<4> uwAVS_RESPONSE_2(3,8)<4;4,1> |
mov (4) uwDEST_Y(30,1)<4> uwAVS_RESPONSE_2(3,4)<4;4,1> |
mov (4) uwDEST_Y(31,1)<4> uwAVS_RESPONSE_2(3,12)<4;4,1> |
// Move second 8x8 words of U to dest GRF |
mov (4) uwDEST_Y(2,0)<4> uwAVS_RESPONSE_2(4,0)<4;4,1> |
mov (4) uwDEST_Y(3,0)<4> uwAVS_RESPONSE_2(4,8)<4;4,1> |
mov (4) uwDEST_Y(6,0)<4> uwAVS_RESPONSE_2(4,4)<4;4,1> |
mov (4) uwDEST_Y(7,0)<4> uwAVS_RESPONSE_2(4,12)<4;4,1> |
mov (4) uwDEST_Y(10,0)<4> uwAVS_RESPONSE_2(5,0)<4;4,1> |
mov (4) uwDEST_Y(11,0)<4> uwAVS_RESPONSE_2(5,8)<4;4,1> |
mov (4) uwDEST_Y(14,0)<4> uwAVS_RESPONSE_2(5,4)<4;4,1> |
mov (4) uwDEST_Y(15,0)<4> uwAVS_RESPONSE_2(5,12)<4;4,1> |
mov (4) uwDEST_Y(18,0)<4> uwAVS_RESPONSE_2(6,0)<4;4,1> |
mov (4) uwDEST_Y(19,0)<4> uwAVS_RESPONSE_2(6,8)<4;4,1> |
mov (4) uwDEST_Y(22,0)<4> uwAVS_RESPONSE_2(6,4)<4;4,1> |
mov (4) uwDEST_Y(23,0)<4> uwAVS_RESPONSE_2(6,12)<4;4,1> |
mov (4) uwDEST_Y(26,0)<4> uwAVS_RESPONSE_2(7,0)<4;4,1> |
mov (4) uwDEST_Y(27,0)<4> uwAVS_RESPONSE_2(7,8)<4;4,1> |
mov (4) uwDEST_Y(30,0)<4> uwAVS_RESPONSE_2(7,4)<4;4,1> |
mov (4) uwDEST_Y(31,0)<4> uwAVS_RESPONSE_2(7,12)<4;4,1> |
// Move second 8x8 words of V to dest GRF |
mov (4) uwDEST_Y(2,2)<4> uwAVS_RESPONSE_2(8,0)<4;4,1> |
mov (4) uwDEST_Y(3,2)<4> uwAVS_RESPONSE_2(8,8)<4;4,1> |
mov (4) uwDEST_Y(6,2)<4> uwAVS_RESPONSE_2(8,4)<4;4,1> |
mov (4) uwDEST_Y(7,2)<4> uwAVS_RESPONSE_2(8,12)<4;4,1> |
mov (4) uwDEST_Y(10,2)<4> uwAVS_RESPONSE_2(9,0)<4;4,1> |
mov (4) uwDEST_Y(11,2)<4> uwAVS_RESPONSE_2(9,8)<4;4,1> |
mov (4) uwDEST_Y(14,2)<4> uwAVS_RESPONSE_2(9,4)<4;4,1> |
mov (4) uwDEST_Y(15,2)<4> uwAVS_RESPONSE_2(9,12)<4;4,1> |
mov (4) uwDEST_Y(18,2)<4> uwAVS_RESPONSE_2(10,0)<4;4,1> |
mov (4) uwDEST_Y(19,2)<4> uwAVS_RESPONSE_2(10,8)<4;4,1> |
mov (4) uwDEST_Y(22,2)<4> uwAVS_RESPONSE_2(10,4)<4;4,1> |
mov (4) uwDEST_Y(23,2)<4> uwAVS_RESPONSE_2(10,12)<4;4,1> |
mov (4) uwDEST_Y(26,2)<4> uwAVS_RESPONSE_2(11,0)<4;4,1> |
mov (4) uwDEST_Y(27,2)<4> uwAVS_RESPONSE_2(11,8)<4;4,1> |
mov (4) uwDEST_Y(30,2)<4> uwAVS_RESPONSE_2(11,4)<4;4,1> |
mov (4) uwDEST_Y(31,2)<4> uwAVS_RESPONSE_2(11,12)<4;4,1> |
// Move second 8x8 words of A to dest GRF |
mov (4) uwDEST_Y(2,3)<4> 0:uw |
mov (4) uwDEST_Y(3,3)<4> 0:uw |
mov (4) uwDEST_Y(6,3)<4> 0:uw |
mov (4) uwDEST_Y(7,3)<4> 0:uw |
mov (4) uwDEST_Y(10,3)<4> 0:uw |
mov (4) uwDEST_Y(11,3)<4> 0:uw |
mov (4) uwDEST_Y(14,3)<4> 0:uw |
mov (4) uwDEST_Y(15,3)<4> 0:uw |
mov (4) uwDEST_Y(18,3)<4> 0:uw |
mov (4) uwDEST_Y(19,3)<4> 0:uw |
mov (4) uwDEST_Y(22,3)<4> 0:uw |
mov (4) uwDEST_Y(23,3)<4> 0:uw |
mov (4) uwDEST_Y(26,3)<4> 0:uw |
mov (4) uwDEST_Y(27,3)<4> 0:uw |
mov (4) uwDEST_Y(30,3)<4> 0:uw |
mov (4) uwDEST_Y(31,3)<4> 0:uw |
/* This section will be used if 16-bit output is needed in planar format -vK |
// Move 1st 8x8 words of Y to dest GRF at lower 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2)<1> uwAVS_RESPONSE(%1)<8;4,1> |
mov (8) uwDEST_Y(%1*2+1)<1> uwAVS_RESPONSE(%1,8)<8;4,1> |
} |
// Move 8x8 words of U to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_U(%1*2)<1> uwAVS_RESPONSE(%1+4)<8;4,1> |
mov (8) uwDEST_U(%1*2+1)<1> uwAVS_RESPONSE(%1+4,8)<8;4,1> |
} |
// Move 8x8 words of V to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_V(%1*2)<1> uwAVS_RESPONSE(%1+8)<8;4,1> |
mov (8) uwDEST_V(%1*2+1)<1> uwAVS_RESPONSE(%1+8,8)<8;4,1> |
} |
// Move 2nd 8x8 words of Y to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2,8)<1> uwAVS_RESPONSE_2(%1)<8;4,1> |
mov (8) uwDEST_Y(%1*2+1,8)<1> uwAVS_RESPONSE_2(%1,8)<8;4,1> |
} |
// Move 2nd 8x8 words of U to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_U(%1*2,8)<1> uwAVS_RESPONSE_2(%1+4)<8;4,1> |
mov (8) uwDEST_U(%1*2+1,8)<1> uwAVS_RESPONSE_2(%1+4,8)<8;4,1> |
} |
// Move 2nd 8x8 words of V to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_V(%1*2,8)<1> uwAVS_RESPONSE_2(%1+8)<8;4,1> |
mov (8) uwDEST_V(%1*2+1,8)<1> uwAVS_RESPONSE_2(%1+8,8)<8;4,1> |
} |
*/ |
#else /* OUTPUT_8_BIT */ |
// Move 1st 8x8 words of Y to dest GRF at lower 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2)<1> ubAVS_RESPONSE(%1,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1)<1> ubAVS_RESPONSE(%1,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 8x8 words of U to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_U(%1*2)<1> ubAVS_RESPONSE(%1+4,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_U(%1*2+1)<1> ubAVS_RESPONSE(%1+4,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 8x8 words of V to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_V(%1*2)<1> ubAVS_RESPONSE(%1+8,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_V(%1*2+1)<1> ubAVS_RESPONSE(%1+8,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 2nd 8x8 words of Y to dest GRF at higher 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2,8)<1> ubAVS_RESPONSE_2(%1,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1,8)<1> ubAVS_RESPONSE_2(%1,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 2nd 8x8 words of U to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_U(%1*2,8)<1> ubAVS_RESPONSE_2(%1+4,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_U(%1*2+1,8)<1> ubAVS_RESPONSE_2(%1+4,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 2nd 8x8 words of V to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_V(%1*2,8)<1> ubAVS_RESPONSE_2(%1+8,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_V(%1*2+1,8)<1> ubAVS_RESPONSE_2(%1+8,8+1)<16;4,2> // Copy high byte in a word |
} |
#endif |
//------------------------------------------------------------------------------ |
// Re-define new # of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL3_AVS_IEF_Unpack_8x4.asm |
---|
0,0 → 1,45 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL3_AVS_IEF_Unpack_8x4.asm ---------- |
// Move 1st 8x8 words of Y to dest GRF at lower 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2)<1> ubAVS_RESPONSE(%1,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1)<1> ubAVS_RESPONSE(%1,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 8x4 words of U to dest GRF (Copy high byte in a word) |
mov (8) uwDEST_U(0)<1> ubAVS_RESPONSE(4,1)<16;4,2> |
mov (8) uwDEST_U(0,8)<1> ubAVS_RESPONSE(4,9)<16;4,2> |
mov (8) uwDEST_U(1)<1> ubAVS_RESPONSE(5,1)<16;4,2> |
mov (8) uwDEST_U(1,8)<1> ubAVS_RESPONSE(5,9)<16;4,2> |
// Move 8x4 words of V to dest GRF |
mov (8) uwDEST_V(0)<1> ubAVS_RESPONSE(8,1)<16;4,2> |
mov (8) uwDEST_V(0,8)<1> ubAVS_RESPONSE(8,9)<16;4,2> |
mov (8) uwDEST_V(1)<1> ubAVS_RESPONSE(9,1)<16;4,2> |
mov (8) uwDEST_V(1,8)<1> ubAVS_RESPONSE(9,9)<16;4,2> |
// Move 2nd 8x8 words of Y to dest GRF at higher 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2,8)<1> ubAVS_RESPONSE(%1+12,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1,8)<1> ubAVS_RESPONSE(%1+12,8+1)<16;4,2> // Copy high byte in a word |
} |
//------------------------------------------------------------------------------ |
// Re-define new # of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 4 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL3_AVS_IEF_Unpack_8x8.asm |
---|
0,0 → 1,44 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL3_AVS_IEF_Unpack_8x8.asm ---------- |
// Move 1st 8x8 words of Y to dest GRF at lower 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2)<1> ubAVS_RESPONSE(%1,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1)<1> ubAVS_RESPONSE(%1,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 8x8 words of U to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_U(%1)<1> ubAVS_RESPONSE(%1+4,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_U(%1,8)<1> ubAVS_RESPONSE(%1+4,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 8x8 words of V to dest GRF |
$for(0; <8/2; 1) { |
mov (8) uwDEST_V(%1)<1> ubAVS_RESPONSE(%1+8,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_V(%1,8)<1> ubAVS_RESPONSE(%1+8,8+1)<16;4,2> // Copy high byte in a word |
} |
// Move 2nd 8x8 words of Y to dest GRF at higher 8 words of each RGF. |
$for(0; <8/2; 1) { |
mov (8) uwDEST_Y(%1*2,8)<1> ubAVS_RESPONSE(%1+12,1)<16;4,2> // Copy high byte in a word |
mov (8) uwDEST_Y(%1*2+1,8)<1> ubAVS_RESPONSE(%1+12,8+1)<16;4,2> // Copy high byte in a word |
} |
//------------------------------------------------------------------------------ |
// Re-define new # of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL3_Scaling.asm |
---|
0,0 → 1,72 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- PL3_Scaling.asm ---------- |
#include "Scaling.inc" |
// Build 16 elements ramp in float32 and normalized it |
// mov (8) SAMPLER_RAMP(0)<1> 0x76543210:v |
// add (8) SAMPLER_RAMP(1)<1> SAMPLER_RAMP(0) 8.0:f |
mov (4) SAMPLER_RAMP(0)<1> 0x48403000:vf { NoDDClr }//3, 2, 1, 0 in float vector |
mov (4) SAMPLER_RAMP(0,4)<1> 0x5C585450:vf { NoDDChk }//7, 6, 5, 4 in float vector |
add (8) SAMPLER_RAMP(1)<1> SAMPLER_RAMP(0) 8.0:f |
//Module: PrepareScaleCoord.asm |
// Setup for sampler msg hdr |
mov (2) rMSGSRC.0<1>:ud 0:ud { NoDDClr } // Unused fields |
mov (1) rMSGSRC.2<1>:ud 0:ud { NoDDChk } // Write and offset |
// Calculate 16 v based on the step Y and vertical origin |
mov (16) mfMSGPAYLOAD(2)<1> fSRC_VID_V_ORI<0;1,0>:f |
mov (16) SCALE_COORD_Y<1>:f fSRC_VID_V_ORI<0;1,0>:f |
// Calculate 16 u based on the step X and hori origin |
// line (16) mfMSGPAYLOAD(0)<1> SCALE_STEP_X<0;1,0>:f SAMPLER_RAMP(0) // Assign to mrf directly |
mov (16) acc0:f fSRC_VID_H_ORI<0;1,0>:f { Compr } |
mac (16) mfMSGPAYLOAD(0)<1> fVIDEO_STEP_X<0;1,0>:f SAMPLER_RAMP(0) { Compr } |
//Setup the constants for line instruction |
mov (1) SCALE_LINE_P255<1>:f 255.0:f { NoDDClr } //{ NoDDClr, NoDDChk } |
mov (1) SCALE_LINE_P0_5<1>:f 0.5:f { NoDDChk } |
//------------------------------------------------------------------------------ |
$for (0; <nY_NUM_OF_ROWS; 1) { |
// Read 16 sampled pixels and store them in float32 in 8 GRFs in the order of BGRA (VYUA). |
mov (8) MSGHDR_SCALE<1>:ud rMSGSRC<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (16) SCALE_RESPONSE_VW(0)<1> MSGHDR_SCALE udDUMMY_NULL nSMPL_ENGINE SMPLR_MSG_DSC+nSI_SRC_SIMD16_V+nBI_CURRENT_SRC_V |
send (16) SCALE_RESPONSE_YW(0)<1> MSGHDR_SCALE udDUMMY_NULL nSMPL_ENGINE SMPLR_MSG_DSC+nSI_SRC_SIMD16_Y+nBI_CURRENT_SRC_Y |
send (16) SCALE_RESPONSE_UW(0)<1> MSGHDR_SCALE udDUMMY_NULL nSMPL_ENGINE SMPLR_MSG_DSC+nSI_SRC_SIMD16_U+nBI_CURRENT_SRC_U |
// Calculate 16 v for next line |
add (16) mfMSGPAYLOAD(2)<1> SCALE_COORD_Y<8;8,1>:f fVIDEO_STEP_Y<0;1,0>:f // Assign to mrf directly |
add (16) SCALE_COORD_Y<1>:f SCALE_COORD_Y<8;8,1>:f fVIDEO_STEP_Y<0;1,0>:f // Assign to mrf directly |
// Scale back to [0, 255], convert f to ud |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_VF(0) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_VD(0)<1> acc0:f { Compr } |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_YF(0) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_YD(0)<1> acc0:f { Compr } |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_UF(0) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_UD(0)<1> acc0:f { Compr } |
mov (16) DEST_V(%1)<1> SCALE_RESPONSE_VB(0) //possible error due to truncation - vK |
mov (16) DEST_Y(%1)<1> SCALE_RESPONSE_YB(0) //possible error due to truncation - vK |
mov (16) DEST_U(%1)<1> SCALE_RESPONSE_UB(0) //possible error due to truncation - vK |
} |
#define nSRC_REGION nREGION_1 |
//------------------------------------------------------------------------------ |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL_DNDI_ALG.asm |
---|
0,0 → 1,85 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#define DI_ENABLE |
#include "DNDI.inc" |
#ifdef DI_ONLY |
#undef nSMPL_RESP_LEN |
#define nSMPL_RESP_LEN nSMPL_RESP_LEN_DI // set the number of GRF |
#else |
#undef nSMPL_RESP_LEN |
#define nSMPL_RESP_LEN nSMPL_RESP_LEN_DNDI // set the number of GRF |
#endif |
#undef nDPW_BLOCK_SIZE_HIST |
#define nDPW_BLOCK_SIZE_HIST nBLOCK_WIDTH_4+nBLOCK_HEIGHT_1 // HIST Block Size for Write is 4x2 |
#undef nDPW_BLOCK_SIZE_DN |
#define nDPW_BLOCK_SIZE_DN nBLOCK_WIDTH_16+nBLOCK_HEIGHT_4 // DN Block Size for Write is 16x4 |
////////////////////////////////////// Run the DN Algorithm /////////////////////////////////////// |
#include "DNDI_Command.asm" |
////////////////////////////////////// Rearrange for Internal Planar ////////////////////////////// |
////////////////////////////////////// Save the STMM Data for Next Run ///////////////////////// |
// Write STMM to memory |
shr (1) rMSGSRC.0<1>:ud wORIX<0;1,0>:w 1:w NODDCLR_NODDCHK // X origin / 2 |
mov (1) rMSGSRC.1<1>:ud wORIY<0;1,0>:w NODDCLR_NODDCHK // Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_STMM:ud NODDCHK // block width and height (8x4) |
mov (8) mudMSGHDR_STMM(0)<1> rMSGSRC.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udRESP(nDI_STMM_OFFSET,0) // Move STMM to MRF |
send (8) dNULLREG mMSGHDR_STMM udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_STMM+nBI_STMM_HISTORY_OUTPUT:ud |
#ifdef DI_ONLY |
#else |
////////////////////////////////////// Save the History Data for Next Run ///////////////////////// |
#include "DI_Hist_Save.asm" |
////////////////////////////////////// Save the DN Curr Frame for Next Run //////////////////////// |
//set the save DN parameters |
mov (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w NODDCLR // X origin and Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_DN:ud NODDCLR_NODDCHK // block width and height (16x4) |
mov (8) mudMSGHDR_DN(0)<1> rMSGSRC.0<8;8,1>:ud |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w ubTFLD_FIRST<0;1,0>:ub 1:w |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4)<1> udRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*4)<4;4,1> // 2nd field luma from current frame (line 0,2) |
} |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4+4)<1> udRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,4)<4;4,1> // 1st field luma from current frame (line 1,3) |
} |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4)<1> udRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,0)<4;4,1> // 2nd field luma from current frame (line 0,2) |
} |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4+4)<1> udRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*4)<4;4,1> // 1st field luma from current frame (line 1,3) |
} |
SAVE_DN_CURR: |
send (8) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_PL_DN_DI+nBI_DESTINATION_Y:ud |
#endif |
// Save Processed frames |
#include "DI_Save_PA.asm" |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL_DNDI_ALG_UVCopy_NV11.asm |
---|
0,0 → 1,103 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#define DI_ENABLE |
#include "DNDI.inc" |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block (4 rows for each frame) |
#undef nUV_NUM_OF_ROWS |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#undef nSMPL_RESP_LEN |
#define nSMPL_RESP_LEN nSMPL_RESP_LEN_DNDI // set the number of GRF |
#undef nDPW_BLOCK_SIZE_HIST |
#define nDPW_BLOCK_SIZE_HIST nBLOCK_WIDTH_4+nBLOCK_HEIGHT_1 // HIST Block Size for Write is 4x2 |
#undef nDPW_BLOCK_SIZE_DN |
#define nDPW_BLOCK_SIZE_DN nBLOCK_WIDTH_16+nBLOCK_HEIGHT_4 // DN Block Size for Write is 16x4 |
#undef nDPR_BLOCK_SIZE_UV |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_8+nBLOCK_HEIGHT_4 // DN Block Size for UV Write/Read is 8x4 |
////////////////////////////////////// Run the DN Algorithm /////////////////////////////////////// |
#include "DNDI_Command.asm" |
////////////////////////////////////// Rearrange for Internal Planar ////////////////////////////// |
// move the previous frame Y component to internal planar format |
$for (0; <nY_NUM_OF_ROWS/2; 1) { |
mov (16) uwDEST_Y(%1,0)<1> ubRESP(nDI_PREV_FRAME_LUMA_OFFSET,%1*16) |
} |
// move the previous frame U,V components to internal planar format |
$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
mov (8) uwDEST_U(0,%1*8)<1> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
mov (8) uwDEST_V(0,%1*8)<1> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //V pixels |
} |
// move the current frame Y component to internal planar format |
$for (0; <nY_NUM_OF_ROWS/2; 1) { |
mov (16) uwDEST_Y(%1+4,0)<1> ubRESP(nDI_CURR_FRAME_LUMA_OFFSET,%1*16) |
} |
// move the current frame U,V components to internal planar format |
$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
mov (8) uwDEST_U(2,%1*8)<1> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
mov (8) uwDEST_V(2,%1*8)<1> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //V pixels |
} |
////////////////////////////////////// Save the STMM Data for Next Run ///////////////////////// |
// Write STMM to memory |
shr (1) rMSGSRC.0<1>:ud wORIX<0;1,0>:w 1:w // X origin / 2 |
mov (1) rMSGSRC.1<1>:ud wORIY<0;1,0>:w // Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_STMM:ud // block width and height (8x4) |
mov (8) mudMSGHDR_STMM(0)<1> rMSGSRC.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udRESP(nDI_STMM_OFFSET,0) // Move STMM to MRF |
send (8) dNULLREG mMSGHDR_STMM udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_STMM+nBI_STMM_HISTORY_OUTPUT:ud |
////////////////////////////////////// Save the History Data for Next Run ///////////////////////// |
#include "DI_Hist_Save.asm" |
////////////////////////////////////// Save the DN Curr Frame for Next Run //////////////////////// |
add (4) pCF_Y_OFFSET<1>:uw ubSRC_CF_OFFSET<4;4,1>:ub npDN_YUV:w |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w ubTFLD_FIRST<0;1,0>:ub 1:w |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4)<1> udRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*4)<4;4,1> // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN(1,%1*4+4)<1> udRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,4)<4;4,1> // 1st field luma from current frame (line 1,3) |
} |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4)<1> udRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,0)<4;4,1> // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN(1,%1*4+4)<1> udRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*4)<4;4,1> // 1st field luma from current frame (line 1,3) |
} |
SAVE_DN_CURR: |
mov (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w // X origin and Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_DN:ud // block width and height (16x4) |
mov (8) mudMSGHDR_DN(0)<1> rMSGSRC.0<8;8,1>:ud |
send (8) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_PL_DN_DI+nBI_DESTINATION_Y:ud |
/////////////////////////////P208 UV Copy 422///////////////////////////////////////////////////// |
//Read UV through DATAPORT |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
asr (1) rMSGSRC.0<1>:d rMSGSRC.0<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (16x2) |
mov (8) mudMSGHDR_DN<1> rMSGSRC<8;8,1>:ud |
send (8) udBOT_U_IO(0)<1> mMSGHDR_DN udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nRESLEN_1+nBI_CURRENT_SRC_UV:ud |
//Write UV through DATAPORT |
mov (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w // X origin and Y origin |
asr (1) rMSGSRC.0<1>:d rMSGSRC.0<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // block width and height (16x2) |
mov (8) mudMSGHDR_DN(0)<1> rMSGSRC.0<8;8,1>:ud |
mov (8) mudMSGHDR_DN(1)<1> udBOT_U_IO(0)<8;8,1> |
send (8) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nMSGLEN_1+nBI_DESTINATION_UV:ud |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL_DNDI_ALG_UVCopy_NV12.asm |
---|
0,0 → 1,107 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#define DI_ENABLE |
#include "DNDI.inc" |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block (4 rows for each frame) |
#undef nUV_NUM_OF_ROWS |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#undef nSMPL_RESP_LEN |
#define nSMPL_RESP_LEN nSMPL_RESP_LEN_DNDI // set the number of GRF |
#undef nDPW_BLOCK_SIZE_HIST |
#define nDPW_BLOCK_SIZE_HIST nBLOCK_WIDTH_4+nBLOCK_HEIGHT_1 // HIST Block Size for Write is 4x2 |
#undef nDPW_BLOCK_SIZE_DN |
#define nDPW_BLOCK_SIZE_DN nBLOCK_WIDTH_16+nBLOCK_HEIGHT_4 // DN Block Size for Write is 16x4 |
#undef nDPR_BLOCK_SIZE_UV |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_16+nBLOCK_HEIGHT_2 // DN Block Size for UV Write/Read is 16x2 |
////////////////////////////////////// Run the DN Algorithm /////////////////////////////////////// |
#include "DNDI_COMMAND.asm" |
////////////////////////////////////// Rearrange for Internal Planar ////////////////////////////// |
// move the previous frame Y component to internal planar format |
$for (0; <nY_NUM_OF_ROWS/2; 1) { |
mov (16) uwDEST_Y(%1,0)<1> ubRESP(nDI_PREV_FRAME_LUMA_OFFSET,%1*16) |
} |
// move the previous frame U,V components to internal planar format |
$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
mov (8) uwDEST_U(0,%1*8)<1> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
mov (8) uwDEST_V(0,%1*8)<1> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //V pixels |
} |
// move the current frame Y component to internal planar format |
$for (0; <nY_NUM_OF_ROWS/2; 1) { |
mov (16) uwDEST_Y(%1+4,0)<1> ubRESP(nDI_CURR_FRAME_LUMA_OFFSET,%1*16) |
} |
// move the current frame U,V components to internal planar format |
$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
mov (8) uwDEST_U(2,%1*8)<1> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
mov (8) uwDEST_V(2,%1*8)<1> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //V pixels |
} |
////////////////////////////////////// Save the STMM Data for Next Run ///////////////////////// |
// Write STMM to memory |
shr (1) rMSGSRC.0<1>:ud wORIX<0;1,0>:w 1:w // X origin / 2 |
mov (1) rMSGSRC.1<1>:ud wORIY<0;1,0>:w // Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_STMM:ud // block width and height (8x4) |
mov (8) mudMSGHDR_STMM(0)<1> rMSGSRC.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udRESP(nDI_STMM_OFFSET,0) // Move STMM to MRF |
send (8) dNULLREG mMSGHDR_STMM udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_STMM+nBI_STMM_HISTORY_OUTPUT:ud |
////////////////////////////////////// Save the History Data for Next Run ///////////////////////// |
#include "DI_Hist_Save.asm" |
////////////////////////////////////// Save the DN Curr Frame for Next Run //////////////////////// |
add (4) pCF_Y_OFFSET<1>:uw ubSRC_CF_OFFSET<4;4,1>:ub npDN_YUV:w |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w ubTFLD_FIRST<0;1,0>:ub 1:w |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4)<1> udRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*4)<4;4,1> // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN(1,%1*4+4)<1> udRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,4)<4;4,1> // 1st field luma from current frame (line 1,3) |
} |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4)<1> udRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,0)<4;4,1> // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN(1,%1*4+4)<1> udRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*4)<4;4,1> // 1st field luma from current frame (line 1,3) |
} |
SAVE_DN_CURR: |
$for (0; <nY_NUM_OF_ROWS/2; 1) { |
mov (16) mubMSGHDR_DN(1, %1*16)<1> ubRESP(nDI_CURR_FRAME_LUMA_OFFSET,%1*16) |
} |
mov (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w // X origin and Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_DN:ud // block width and height (16x4) |
mov (8) mudMSGHDR_DN(0)<1> rMSGSRC.0<8;8,1>:ud |
send (8) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_PL_DN_DI+nBI_DESTINATION_Y:ud |
/////////////////////////////NV12 UV Copy 422///////////////////////////////////////////////////// |
//Read UV through DATAPORT |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
asr (1) rMSGSRC.1<1>:d rMSGSRC.1<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (16x2) |
mov (8) mudMSGHDR_DN<1> rMSGSRC<8;8,1>:ud |
send (8) udBOT_U_IO(0)<1> mMSGHDR_DN udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nRESLEN_1+nBI_CURRENT_SRC_UV:ud |
//Write UV through DATAPORT |
mov (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w // X origin and Y origin |
asr (1) rMSGSRC.1<1>:d rMSGSRC.1<0;1,0>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // block width and height (16x2) |
mov (8) mudMSGHDR_DN(0)<1> rMSGSRC.0<8;8,1>:ud |
mov (8) mudMSGHDR_DN(1)<1> udBOT_U_IO(0)<8;8,1> |
send (8) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nMSGLEN_1+nBI_DESTINATION_UV:ud |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL_DNDI_ALG_UVCopy_P208.asm |
---|
0,0 → 1,101 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#define DI_ENABLE |
#include "DNDI.inc" |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block (4 rows for each frame) |
#undef nUV_NUM_OF_ROWS |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#undef nSMPL_RESP_LEN |
#define nSMPL_RESP_LEN nSMPL_RESP_LEN_DNDI // set the number of GRF |
#undef nDPW_BLOCK_SIZE_HIST |
#define nDPW_BLOCK_SIZE_HIST nBLOCK_WIDTH_4+nBLOCK_HEIGHT_1 // HIST Block Size for Write is 4x2 |
#undef nDPW_BLOCK_SIZE_DN |
#define nDPW_BLOCK_SIZE_DN nBLOCK_WIDTH_16+nBLOCK_HEIGHT_4 // DN Block Size for Write is 16x4 |
////////////////////////////////////// Run the DN Algorithm /////////////////////////////////////// |
#include "DNDI_Command.asm" |
////////////////////////////////////// Rearrange for Internal Planar ////////////////////////////// |
// move the previous frame Y component to internal planar format |
$for (0; <nY_NUM_OF_ROWS/2; 1) { |
mov (16) uwDEST_Y(%1,0)<1> ubRESP(nDI_PREV_FRAME_LUMA_OFFSET,%1*16) |
} |
// move the previous frame U,V components to internal planar format |
$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
mov (8) uwDEST_U(0,%1*8)<1> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
mov (8) uwDEST_V(0,%1*8)<1> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //V pixels |
} |
// move the current frame Y component to internal planar format |
$for (0; <nY_NUM_OF_ROWS/2; 1) { |
mov (16) uwDEST_Y(%1+4,0)<1> ubRESP(nDI_CURR_FRAME_LUMA_OFFSET,%1*16) |
} |
// move the current frame U,V components to internal planar format |
$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
mov (8) uwDEST_U(2,%1*8)<1> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
mov (8) uwDEST_V(2,%1*8)<1> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //V pixels |
} |
////////////////////////////////////// Save the STMM Data for Next Run ///////////////////////// |
// Write STMM to memory |
shr (1) rMSGSRC.0<1>:ud wORIX<0;1,0>:w 1:w // X origin / 2 |
mov (1) rMSGSRC.1<1>:ud wORIY<0;1,0>:w // Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_STMM:ud // block width and height (8x4) |
mov (8) mudMSGHDR_STMM(0)<1> rMSGSRC.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udRESP(nDI_STMM_OFFSET,0) // Move STMM to MRF |
send (8) dNULLREG mMSGHDR_STMM udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_STMM+nBI_STMM_HISTORY_OUTPUT:ud |
////////////////////////////////////// Save the History Data for Next Run ///////////////////////// |
#include "DI_Hist_Save.asm" |
////////////////////////////////////// Save the DN Curr Frame for Next Run //////////////////////// |
add (4) pCF_Y_OFFSET<1>:uw ubSRC_CF_OFFSET<4;4,1>:ub npDN_YUV:w |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w ubTFLD_FIRST<0;1,0>:ub 1:w |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4)<1> udRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*4)<4;4,1> // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN(1,%1*4+4)<1> udRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,4)<4;4,1> // 1st field luma from current frame (line 1,3) |
} |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4)<1> udRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,0)<4;4,1> // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN(1,%1*4+4)<1> udRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*4)<4;4,1> // 1st field luma from current frame (line 1,3) |
} |
SAVE_DN_CURR: |
mov (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w // X origin and Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_DN:ud // block width and height (16x4) |
mov (8) mudMSGHDR_DN(0)<1> rMSGSRC.0<8;8,1>:ud |
send (8) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_PL_DN_DI+nBI_DESTINATION_Y:ud |
/////////////////////////////P208 UV Copy 422///////////////////////////////////////////////////// |
//Read UV through DATAPORT |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_DN:ud // Y Block width and height (16x4) (U/V block size is the same) |
mov (8) mudMSGHDR_DN<1> rMSGSRC<8;8,1>:ud |
send (8) udBOT_U_IO(0)<1> mMSGHDR_DN udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nRESLEN_2+nBI_CURRENT_SRC_UV:ud |
//Write UV through DATAPORT |
mov (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w // X origin and Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_DN:ud // block width and height (16x4) |
mov (8) mudMSGHDR_DN(0)<1> rMSGSRC.0<8;8,1>:ud |
mov (8) mudMSGHDR_DN(1)<1> udBOT_U_IO(0)<8;8,1> |
mov (8) mudMSGHDR_DN(2)<1> udBOT_U_IO(1)<8;8,1> |
send (8) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_PL_DN_DI+nBI_DESTINATION_UV:ud |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL_DNDI_ALG_UVCopy_PL3.asm |
---|
0,0 → 1,106 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#define DI_ENABLE |
#include "DNDI.inc" |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block (4 rows for each frame) |
#undef nUV_NUM_OF_ROWS |
#define nUV_NUM_OF_ROWS 8 // Number of U/V rows per block |
#undef nSMPL_RESP_LEN |
#define nSMPL_RESP_LEN nSMPL_RESP_LEN_DNDI // set the number of GRF |
#undef nDPW_BLOCK_SIZE_HIST |
#define nDPW_BLOCK_SIZE_HIST nBLOCK_WIDTH_4+nBLOCK_HEIGHT_1 // HIST Block Size for Write is 4x2 |
#undef nDPW_BLOCK_SIZE_DN |
#define nDPW_BLOCK_SIZE_DN nBLOCK_WIDTH_16+nBLOCK_HEIGHT_4 // DN Block Size for Write is 16x4 |
#undef nDPR_BLOCK_SIZE_UV |
#define nDPR_BLOCK_SIZE_UV nBLOCK_WIDTH_8+nBLOCK_HEIGHT_2 // DN Block Size for UV Write/Read is 8x2 |
////////////////////////////////////// Run the DN Algorithm /////////////////////////////////////// |
#include "DNDI_Command.asm" |
////////////////////////////////////// Rearrange for Internal Planar ////////////////////////////// |
// move the previous frame Y component to internal planar format |
$for (0; <nY_NUM_OF_ROWS/2; 1) { |
mov (16) uwDEST_Y(%1,0)<1> ubRESP(nDI_PREV_FRAME_LUMA_OFFSET,%1*16) |
} |
// move the previous frame U,V components to internal planar format |
$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
mov (8) uwDEST_U(0,%1*8)<1> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
mov (8) uwDEST_V(0,%1*8)<1> ubRESP(nDI_PREV_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //V pixels |
} |
// move the current frame Y component to internal planar format |
$for (0; <nY_NUM_OF_ROWS/2; 1) { |
mov (16) uwDEST_Y(%1+4,0)<1> ubRESP(nDI_CURR_FRAME_LUMA_OFFSET,%1*16) |
} |
// move the current frame U,V components to internal planar format |
$for (0; <nUV_NUM_OF_ROWS/2; 1) { |
mov (8) uwDEST_U(2,%1*8)<1> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16+1)<16;8,2> //U pixels |
mov (8) uwDEST_V(2,%1*8)<1> ubRESP(nDI_CURR_FRAME_CHROMA_OFFSET,%1*16)<16;8,2> //V pixels |
} |
////////////////////////////////////// Save the STMM Data for Next Run ///////////////////////// |
// Write STMM to memory |
shr (1) rMSGSRC.0<1>:ud wORIX<0;1,0>:w 1:w // X origin / 2 |
mov (1) rMSGSRC.1<1>:ud wORIY<0;1,0>:w // Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_STMM:ud // block width and height (8x4) |
mov (8) mudMSGHDR_STMM(0)<1> rMSGSRC.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udRESP(nDI_STMM_OFFSET,0) // Move STMM to MRF |
send (8) dNULLREG mMSGHDR_STMM udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_STMM+nBI_STMM_HISTORY_OUTPUT:ud |
////////////////////////////////////// Save the History Data for Next Run ///////////////////////// |
#include "DI_Hist_Save.asm" |
////////////////////////////////////// Save the DN Curr Frame for Next Run //////////////////////// |
add (4) pCF_Y_OFFSET<1>:uw ubSRC_CF_OFFSET<4;4,1>:ub npDN_YUV:w |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w ubTFLD_FIRST<0;1,0>:ub 1:w |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4)<1> udRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*4)<4;4,1> // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN(1,%1*4+4)<1> udRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,4)<4;4,1> // 1st field luma from current frame (line 1,3) |
} |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
$for (0,0; <nY_NUM_OF_ROWS/2; 2,1) { |
mov (4) mudMSGHDR_DN(1,%1*4)<1> udRESP(nDI_CURR_FRAME_LUMA_OFFSET+%2,0)<4;4,1> // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN(1,%1*4+4)<1> udRESP(nDI_CURR_2ND_FIELD_LUMA_OFFSET,%2*4)<4;4,1> // 1st field luma from current frame (line 1,3) |
} |
SAVE_DN_CURR: |
mov (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w // X origin and Y origin |
mov (1) rMSGSRC.2<1>:ud nDPW_BLOCK_SIZE_DN:ud // block width and height (16x4) |
mov (8) mudMSGHDR_DN(0)<1> rMSGSRC.0<8;8,1>:ud |
send (8) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nDPMW_MSG_LEN_PL_DN_DI+nBI_DESTINATION_Y:ud |
/////////////////////////////IMC3 UV Copy 422///////////////////////////////////////////////////// |
//Read UV through DATAPORT |
add (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w wSRC_H_ORI_OFFSET<2;2,1>:w // Source Y Block origin |
asr (2) rMSGSRC.0<1>:d rMSGSRC.0<2;2,1>:d 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // U/V block width and height (8x2) |
mov (8) mudMSGHDR_DN<1> rMSGSRC<8;8,1>:ud |
send (4) udBOT_U_IO(0)<1> mMSGHDR_DN udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nRESLEN_1+nBI_CURRENT_SRC_U:ud |
send (4) udBOT_V_IO(0)<1> mMSGHDR_DN udDUMMY_NULL nDATAPORT_READ nDPMR_MSGDSC+nRESLEN_1+nBI_CURRENT_SRC_V:ud |
//Write UV through DATAPORT |
mov (2) rMSGSRC.0<1>:ud wORIX<2;2,1>:w // X origin and Y origin |
asr (2) rMSGSRC.0<1>:d wORIX<2;2,1>:w 1:w // U/V block origin should be half of Y's |
mov (1) rMSGSRC.2<1>:ud nDPR_BLOCK_SIZE_UV:ud // block width and height (8x2) |
mov (8) mudMSGHDR_DN(0)<1> rMSGSRC.0<8;8,1>:ud |
mov (4) mudMSGHDR_DN(1)<1> udBOT_U_IO(0)<4;4,1> |
send (4) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nMSGLEN_1+nBI_DESTINATION_U:ud |
mov (4) mudMSGHDR_DN(1)<1> udBOT_V_IO(0)<4;4,1> |
send (4) dNULLREG mMSGHDR_DN udDUMMY_NULL nDATAPORT_WRITE nDPMW_MSGDSC+nMSGLEN_1+nBI_DESTINATION_V:ud |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/PL_DN_ALG.asm |
---|
0,0 → 1,35 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
#define DI_DISABLE |
#include "DNDI.inc" |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 // Number of Y rows per block |
#undef nSMPL_RESP_LEN |
#define nSMPL_RESP_LEN nSMPL_RESP_LEN_DN_PL // Set the Number of GRFs in DNDI response |
#undef nDPW_BLOCK_SIZE_DN |
#define nDPW_BLOCK_SIZE_DN nBLOCK_WIDTH_16+nBLOCK_HEIGHT_8 // DN Curr Block Size for Write is 16x8 |
#undef nDPW_BLOCK_SIZE_HIST |
#define nDPW_BLOCK_SIZE_HIST nBLOCK_WIDTH_4+nBLOCK_HEIGHT_2 // HIST Block Size for Write is 4x2 |
////////////////////////////////////// Run the DN Algorithm /////////////////////////////////////// |
#include "DNDI_COMMAND.asm" |
////////////////////////////////////// Rearrange for Internal Planar ////////////////////////////// |
$for (0; <nY_NUM_OF_ROWS; 1) { |
mov (16) uwDEST_Y(0,%1*16)<1> ubRESP(nNODI_LUMA_OFFSET,%1*16)<16;16,1> // copy line of Y |
} |
////////////////////////////////////// Save the History Data for Next Run ///////////////////////// |
#include "DNDI_Hist_Save.asm" |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/RGB_AVS_IEF_16x8.asm |
---|
0,0 → 1,33 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- RGB_AVS_IEF_16x8.asm ---------- |
#include "AVS_IEF.inc" |
//------------------------------------------------------------------------------ |
// 2 sampler reads for 8x8 ARGB packed |
//------------------------------------------------------------------------------ |
// 1st 8x8 setup |
#include "AVS_SetupFirstBlock.asm" |
mov (1) rAVS_8x8_HDR.2:ud nAVS_ALL_CHANNELS:ud // Enable ARGB channels |
mov (16) mAVS_8x8_HDR.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE(0)<1> mAVS_8x8_HDR udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_4CH+nSI_SRC_RGB+nBI_CURRENT_SRC_YUV |
// Return ARGB in 16 GRFs |
// 2nd 8x8 setup |
#include "AVS_SetupSecondBlock.asm" |
mov (16) mAVS_8x8_HDR_2.0:ud rAVS_8x8_HDR.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (1) uwAVS_RESPONSE_2(0)<1> mAVS_8x8_HDR_2 udDUMMY_NULL nSMPL_ENGINE nAVS_MSG_DSC_4CH+nSI_SRC_RGB+nBI_CURRENT_SRC_YUV |
// Return ARGB in 16 GRFs |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/RGB_AVS_IEF_Unpack_16x8.asm |
---|
0,0 → 1,251 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- RGB_AVS_IEF_Unpack_16x8.asm ---------- |
#include "AVS_IEF.inc" |
#ifdef AVS_OUTPUT_16_BIT |
// Move first 8x8 words of B to dest GRF (as packed) |
mov (4) uwDEST_Y(0,2)<4> uwAVS_RESPONSE(4,0)<4;4,1> |
mov (4) uwDEST_Y(1,2)<4> uwAVS_RESPONSE(4,8)<4;4,1> |
mov (4) uwDEST_Y(4,2)<4> uwAVS_RESPONSE(4,4)<4;4,1> |
mov (4) uwDEST_Y(5,2)<4> uwAVS_RESPONSE(4,12)<4;4,1> |
mov (4) uwDEST_Y(8,2)<4> uwAVS_RESPONSE(5,0)<4;4,1> |
mov (4) uwDEST_Y(9,2)<4> uwAVS_RESPONSE(5,8)<4;4,1> |
mov (4) uwDEST_Y(12,2)<4> uwAVS_RESPONSE(5,4)<4;4,1> |
mov (4) uwDEST_Y(13,2)<4> uwAVS_RESPONSE(5,12)<4;4,1> |
mov (4) uwDEST_Y(16,2)<4> uwAVS_RESPONSE(12,0)<4;4,1> |
mov (4) uwDEST_Y(17,2)<4> uwAVS_RESPONSE(12,8)<4;4,1> |
mov (4) uwDEST_Y(20,2)<4> uwAVS_RESPONSE(12,4)<4;4,1> |
mov (4) uwDEST_Y(21,2)<4> uwAVS_RESPONSE(12,12)<4;4,1> |
mov (4) uwDEST_Y(24,2)<4> uwAVS_RESPONSE(13,0)<4;4,1> |
mov (4) uwDEST_Y(25,2)<4> uwAVS_RESPONSE(13,8)<4;4,1> |
mov (4) uwDEST_Y(28,2)<4> uwAVS_RESPONSE(13,4)<4;4,1> |
mov (4) uwDEST_Y(29,2)<4> uwAVS_RESPONSE(13,12)<4;4,1> |
// Move first 8x8 words of G to dest GRF (as packed) |
mov (4) uwDEST_Y(0,1)<4> uwAVS_RESPONSE(2,0)<4;4,1> |
mov (4) uwDEST_Y(1,1)<4> uwAVS_RESPONSE(2,8)<4;4,1> |
mov (4) uwDEST_Y(4,1)<4> uwAVS_RESPONSE(2,4)<4;4,1> |
mov (4) uwDEST_Y(5,1)<4> uwAVS_RESPONSE(2,12)<4;4,1> |
mov (4) uwDEST_Y(8,1)<4> uwAVS_RESPONSE(3,0)<4;4,1> |
mov (4) uwDEST_Y(9,1)<4> uwAVS_RESPONSE(3,8)<4;4,1> |
mov (4) uwDEST_Y(12,1)<4> uwAVS_RESPONSE(3,4)<4;4,1> |
mov (4) uwDEST_Y(13,1)<4> uwAVS_RESPONSE(3,12)<4;4,1> |
mov (4) uwDEST_Y(16,1)<4> uwAVS_RESPONSE(10,0)<4;4,1> |
mov (4) uwDEST_Y(17,1)<4> uwAVS_RESPONSE(10,8)<4;4,1> |
mov (4) uwDEST_Y(20,1)<4> uwAVS_RESPONSE(10,4)<4;4,1> |
mov (4) uwDEST_Y(21,1)<4> uwAVS_RESPONSE(10,12)<4;4,1> |
mov (4) uwDEST_Y(24,1)<4> uwAVS_RESPONSE(11,0)<4;4,1> |
mov (4) uwDEST_Y(25,1)<4> uwAVS_RESPONSE(11,8)<4;4,1> |
mov (4) uwDEST_Y(28,1)<4> uwAVS_RESPONSE(11,4)<4;4,1> |
mov (4) uwDEST_Y(29,1)<4> uwAVS_RESPONSE(11,12)<4;4,1> |
// Move first 8x8 words of R to dest GRF (as packed) |
mov (4) uwDEST_Y(0,0)<4> uwAVS_RESPONSE(0,0)<4;4,1> |
mov (4) uwDEST_Y(1,0)<4> uwAVS_RESPONSE(0,8)<4;4,1> |
mov (4) uwDEST_Y(4,0)<4> uwAVS_RESPONSE(0,4)<4;4,1> |
mov (4) uwDEST_Y(5,0)<4> uwAVS_RESPONSE(0,12)<4;4,1> |
mov (4) uwDEST_Y(8,0)<4> uwAVS_RESPONSE(1,0)<4;4,1> |
mov (4) uwDEST_Y(9,0)<4> uwAVS_RESPONSE(1,8)<4;4,1> |
mov (4) uwDEST_Y(12,0)<4> uwAVS_RESPONSE(1,4)<4;4,1> |
mov (4) uwDEST_Y(13,0)<4> uwAVS_RESPONSE(1,12)<4;4,1> |
mov (4) uwDEST_Y(16,0)<4> uwAVS_RESPONSE(8,0)<4;4,1> |
mov (4) uwDEST_Y(17,0)<4> uwAVS_RESPONSE(8,8)<4;4,1> |
mov (4) uwDEST_Y(20,0)<4> uwAVS_RESPONSE(8,4)<4;4,1> |
mov (4) uwDEST_Y(21,0)<4> uwAVS_RESPONSE(8,12)<4;4,1> |
mov (4) uwDEST_Y(24,0)<4> uwAVS_RESPONSE(9,0)<4;4,1> |
mov (4) uwDEST_Y(25,0)<4> uwAVS_RESPONSE(9,8)<4;4,1> |
mov (4) uwDEST_Y(28,0)<4> uwAVS_RESPONSE(9,4)<4;4,1> |
mov (4) uwDEST_Y(29,0)<4> uwAVS_RESPONSE(9,12)<4;4,1> |
// Move first 8x8 words of A to dest GRF (as packed) |
mov (4) uwDEST_Y(0,3)<4> uwAVS_RESPONSE(6,0)<4;4,1> |
mov (4) uwDEST_Y(1,3)<4> uwAVS_RESPONSE(6,8)<4;4,1> |
mov (4) uwDEST_Y(4,3)<4> uwAVS_RESPONSE(6,4)<4;4,1> |
mov (4) uwDEST_Y(5,3)<4> uwAVS_RESPONSE(6,12)<4;4,1> |
mov (4) uwDEST_Y(8,3)<4> uwAVS_RESPONSE(7,0)<4;4,1> |
mov (4) uwDEST_Y(9,3)<4> uwAVS_RESPONSE(7,8)<4;4,1> |
mov (4) uwDEST_Y(12,3)<4> uwAVS_RESPONSE(7,4)<4;4,1> |
mov (4) uwDEST_Y(13,3)<4> uwAVS_RESPONSE(7,12)<4;4,1> |
mov (4) uwDEST_Y(16,3)<4> uwAVS_RESPONSE(14,0)<4;4,1> |
mov (4) uwDEST_Y(17,3)<4> uwAVS_RESPONSE(14,8)<4;4,1> |
mov (4) uwDEST_Y(20,3)<4> uwAVS_RESPONSE(14,4)<4;4,1> |
mov (4) uwDEST_Y(21,3)<4> uwAVS_RESPONSE(14,12)<4;4,1> |
mov (4) uwDEST_Y(24,3)<4> uwAVS_RESPONSE(15,0)<4;4,1> |
mov (4) uwDEST_Y(25,3)<4> uwAVS_RESPONSE(15,8)<4;4,1> |
mov (4) uwDEST_Y(28,3)<4> uwAVS_RESPONSE(15,4)<4;4,1> |
mov (4) uwDEST_Y(29,3)<4> uwAVS_RESPONSE(15,12)<4;4,1> |
// Move second 8x8 words of B to dest GRF |
mov (4) uwDEST_Y(2,2)<4> uwAVS_RESPONSE_2(4,0)<4;4,1> |
mov (4) uwDEST_Y(3,2)<4> uwAVS_RESPONSE_2(4,8)<4;4,1> |
mov (4) uwDEST_Y(6,2)<4> uwAVS_RESPONSE_2(4,4)<4;4,1> |
mov (4) uwDEST_Y(7,2)<4> uwAVS_RESPONSE_2(4,12)<4;4,1> |
mov (4) uwDEST_Y(10,2)<4> uwAVS_RESPONSE_2(5,0)<4;4,1> |
mov (4) uwDEST_Y(11,2)<4> uwAVS_RESPONSE_2(5,8)<4;4,1> |
mov (4) uwDEST_Y(14,2)<4> uwAVS_RESPONSE_2(5,4)<4;4,1> |
mov (4) uwDEST_Y(15,2)<4> uwAVS_RESPONSE_2(5,12)<4;4,1> |
mov (4) uwDEST_Y(18,2)<4> uwAVS_RESPONSE_2(12,0)<4;4,1> |
mov (4) uwDEST_Y(19,2)<4> uwAVS_RESPONSE_2(12,8)<4;4,1> |
mov (4) uwDEST_Y(22,2)<4> uwAVS_RESPONSE_2(12,4)<4;4,1> |
mov (4) uwDEST_Y(23,2)<4> uwAVS_RESPONSE_2(12,12)<4;4,1> |
mov (4) uwDEST_Y(26,2)<4> uwAVS_RESPONSE_2(13,0)<4;4,1> |
mov (4) uwDEST_Y(27,2)<4> uwAVS_RESPONSE_2(13,8)<4;4,1> |
mov (4) uwDEST_Y(30,2)<4> uwAVS_RESPONSE_2(13,4)<4;4,1> |
mov (4) uwDEST_Y(31,2)<4> uwAVS_RESPONSE_2(13,12)<4;4,1> |
// Move second 8x8 words of G to dest GRF |
mov (4) uwDEST_Y(2,1)<4> uwAVS_RESPONSE_2(2,0)<4;4,1> |
mov (4) uwDEST_Y(3,1)<4> uwAVS_RESPONSE_2(2,8)<4;4,1> |
mov (4) uwDEST_Y(6,1)<4> uwAVS_RESPONSE_2(2,4)<4;4,1> |
mov (4) uwDEST_Y(7,1)<4> uwAVS_RESPONSE_2(2,12)<4;4,1> |
mov (4) uwDEST_Y(10,1)<4> uwAVS_RESPONSE_2(3,0)<4;4,1> |
mov (4) uwDEST_Y(11,1)<4> uwAVS_RESPONSE_2(3,8)<4;4,1> |
mov (4) uwDEST_Y(14,1)<4> uwAVS_RESPONSE_2(3,4)<4;4,1> |
mov (4) uwDEST_Y(15,1)<4> uwAVS_RESPONSE_2(3,12)<4;4,1> |
mov (4) uwDEST_Y(18,1)<4> uwAVS_RESPONSE_2(10,0)<4;4,1> |
mov (4) uwDEST_Y(19,1)<4> uwAVS_RESPONSE_2(10,8)<4;4,1> |
mov (4) uwDEST_Y(22,1)<4> uwAVS_RESPONSE_2(10,4)<4;4,1> |
mov (4) uwDEST_Y(23,1)<4> uwAVS_RESPONSE_2(10,12)<4;4,1> |
mov (4) uwDEST_Y(26,1)<4> uwAVS_RESPONSE_2(11,0)<4;4,1> |
mov (4) uwDEST_Y(27,1)<4> uwAVS_RESPONSE_2(11,8)<4;4,1> |
mov (4) uwDEST_Y(30,1)<4> uwAVS_RESPONSE_2(11,4)<4;4,1> |
mov (4) uwDEST_Y(31,1)<4> uwAVS_RESPONSE_2(11,12)<4;4,1> |
// Move second 8x8 words of R to dest GRF |
mov (4) uwDEST_Y(2,0)<4> uwAVS_RESPONSE_2(0,0)<4;4,1> |
mov (4) uwDEST_Y(3,0)<4> uwAVS_RESPONSE_2(0,8)<4;4,1> |
mov (4) uwDEST_Y(6,0)<4> uwAVS_RESPONSE_2(0,4)<4;4,1> |
mov (4) uwDEST_Y(7,0)<4> uwAVS_RESPONSE_2(0,12)<4;4,1> |
mov (4) uwDEST_Y(10,0)<4> uwAVS_RESPONSE_2(1,0)<4;4,1> |
mov (4) uwDEST_Y(11,0)<4> uwAVS_RESPONSE_2(1,8)<4;4,1> |
mov (4) uwDEST_Y(14,0)<4> uwAVS_RESPONSE_2(1,4)<4;4,1> |
mov (4) uwDEST_Y(15,0)<4> uwAVS_RESPONSE_2(1,12)<4;4,1> |
mov (4) uwDEST_Y(18,0)<4> uwAVS_RESPONSE_2(8,0)<4;4,1> |
mov (4) uwDEST_Y(19,0)<4> uwAVS_RESPONSE_2(8,8)<4;4,1> |
mov (4) uwDEST_Y(22,0)<4> uwAVS_RESPONSE_2(8,4)<4;4,1> |
mov (4) uwDEST_Y(23,0)<4> uwAVS_RESPONSE_2(8,12)<4;4,1> |
mov (4) uwDEST_Y(26,0)<4> uwAVS_RESPONSE_2(9,0)<4;4,1> |
mov (4) uwDEST_Y(27,0)<4> uwAVS_RESPONSE_2(9,8)<4;4,1> |
mov (4) uwDEST_Y(30,0)<4> uwAVS_RESPONSE_2(9,4)<4;4,1> |
mov (4) uwDEST_Y(31,0)<4> uwAVS_RESPONSE_2(9,12)<4;4,1> |
// Move second 8x8 words of A to dest GRF |
mov (4) uwDEST_Y(2,3)<4> uwAVS_RESPONSE_2(6,0)<4;4,1> |
mov (4) uwDEST_Y(3,3)<4> uwAVS_RESPONSE_2(6,8)<4;4,1> |
mov (4) uwDEST_Y(6,3)<4> uwAVS_RESPONSE_2(6,4)<4;4,1> |
mov (4) uwDEST_Y(7,3)<4> uwAVS_RESPONSE_2(6,12)<4;4,1> |
mov (4) uwDEST_Y(10,3)<4> uwAVS_RESPONSE_2(7,0)<4;4,1> |
mov (4) uwDEST_Y(11,3)<4> uwAVS_RESPONSE_2(7,8)<4;4,1> |
mov (4) uwDEST_Y(14,3)<4> uwAVS_RESPONSE_2(7,4)<4;4,1> |
mov (4) uwDEST_Y(15,3)<4> uwAVS_RESPONSE_2(7,12)<4;4,1> |
mov (4) uwDEST_Y(18,3)<4> uwAVS_RESPONSE_2(14,0)<4;4,1> |
mov (4) uwDEST_Y(19,3)<4> uwAVS_RESPONSE_2(14,8)<4;4,1> |
mov (4) uwDEST_Y(22,3)<4> uwAVS_RESPONSE_2(14,4)<4;4,1> |
mov (4) uwDEST_Y(23,3)<4> uwAVS_RESPONSE_2(14,12)<4;4,1> |
mov (4) uwDEST_Y(26,3)<4> uwAVS_RESPONSE_2(15,0)<4;4,1> |
mov (4) uwDEST_Y(27,3)<4> uwAVS_RESPONSE_2(15,8)<4;4,1> |
mov (4) uwDEST_Y(30,3)<4> uwAVS_RESPONSE_2(15,4)<4;4,1> |
mov (4) uwDEST_Y(31,3)<4> uwAVS_RESPONSE_2(15,12)<4;4,1> |
#else /* OUTPUT_8_BIT */ |
// Move first 8x8 words of B to dest GRF |
mov (8) ubDEST_Y(0,2)<4> ubAVS_RESPONSE(4,1)<16;4,2> |
mov (8) ubDEST_Y(2,2)<4> ubAVS_RESPONSE(4,8+1)<16;4,2> |
mov (8) ubDEST_Y(4,2)<4> ubAVS_RESPONSE(5,1)<16;4,2> |
mov (8) ubDEST_Y(6,2)<4> ubAVS_RESPONSE(5,8+1)<16;4,2> |
mov (8) ubDEST_Y(8,2)<4> ubAVS_RESPONSE(12,1)<16;4,2> |
mov (8) ubDEST_Y(10,2)<4> ubAVS_RESPONSE(12,8+1)<16;4,2> |
mov (8) ubDEST_Y(12,2)<4> ubAVS_RESPONSE(13,1)<16;4,2> |
mov (8) ubDEST_Y(14,2)<4> ubAVS_RESPONSE(13,8+1)<16;4,2> |
// Move first 8x8 words of G to dest GRF |
mov (8) ubDEST_Y(0,1)<4> ubAVS_RESPONSE(2,1)<16;4,2> |
mov (8) ubDEST_Y(2,1)<4> ubAVS_RESPONSE(2,8+1)<16;4,2> |
mov (8) ubDEST_Y(4,1)<4> ubAVS_RESPONSE(3,1)<16;4,2> |
mov (8) ubDEST_Y(6,1)<4> ubAVS_RESPONSE(3,8+1)<16;4,2> |
mov (8) ubDEST_Y(8,1)<4> ubAVS_RESPONSE(10,1)<16;4,2> |
mov (8) ubDEST_Y(10,1)<4> ubAVS_RESPONSE(10,8+1)<16;4,2> |
mov (8) ubDEST_Y(12,1)<4> ubAVS_RESPONSE(11,1)<16;4,2> |
mov (8) ubDEST_Y(14,1)<4> ubAVS_RESPONSE(11,8+1)<16;4,2> |
// Move first 8x8 words of R to dest GRF |
mov (8) ubDEST_Y(0,0)<4> ubAVS_RESPONSE(0,1)<16;4,2> |
mov (8) ubDEST_Y(2,0)<4> ubAVS_RESPONSE(0,8+1)<16;4,2> |
mov (8) ubDEST_Y(4,0)<4> ubAVS_RESPONSE(1,1)<16;4,2> |
mov (8) ubDEST_Y(6,0)<4> ubAVS_RESPONSE(1,8+1)<16;4,2> |
mov (8) ubDEST_Y(8,0)<4> ubAVS_RESPONSE(8,1)<16;4,2> |
mov (8) ubDEST_Y(10,0)<4> ubAVS_RESPONSE(8,8+1)<16;4,2> |
mov (8) ubDEST_Y(12,0)<4> ubAVS_RESPONSE(9,1)<16;4,2> |
mov (8) ubDEST_Y(14,0)<4> ubAVS_RESPONSE(9,8+1)<16;4,2> |
// Move first 8x8 words of A to dest GRF |
mov (8) ubDEST_Y(0,3)<4> ubAVS_RESPONSE(6,1)<16;4,2> |
mov (8) ubDEST_Y(2,3)<4> ubAVS_RESPONSE(6,8+1)<16;4,2> |
mov (8) ubDEST_Y(4,3)<4> ubAVS_RESPONSE(7,1)<16;4,2> |
mov (8) ubDEST_Y(6,3)<4> ubAVS_RESPONSE(7,8+1)<16;4,2> |
mov (8) ubDEST_Y(8,3)<4> ubAVS_RESPONSE(14,1)<16;4,2> |
mov (8) ubDEST_Y(10,3)<4> ubAVS_RESPONSE(14,8+1)<16;4,2> |
mov (8) ubDEST_Y(12,3)<4> ubAVS_RESPONSE(15,1)<16;4,2> |
mov (8) ubDEST_Y(14,3)<4> ubAVS_RESPONSE(15,8+1)<16;4,2> |
// Move second 8x8 words of B to dest GRF |
mov (8) ubDEST_Y(1,2)<4> ubAVS_RESPONSE_2(4,1)<16;4,2> |
mov (8) ubDEST_Y(3,2)<4> ubAVS_RESPONSE_2(4,8+1)<16;4,2> |
mov (8) ubDEST_Y(5,2)<4> ubAVS_RESPONSE_2(5,1)<16;4,2> |
mov (8) ubDEST_Y(7,2)<4> ubAVS_RESPONSE_2(5,8+1)<16;4,2> |
mov (8) ubDEST_Y(9,2)<4> ubAVS_RESPONSE_2(12,1)<16;4,2> |
mov (8) ubDEST_Y(11,2)<4> ubAVS_RESPONSE_2(12,8+1)<16;4,2> |
mov (8) ubDEST_Y(13,2)<4> ubAVS_RESPONSE_2(13,1)<16;4,2> |
mov (8) ubDEST_Y(15,2)<4> ubAVS_RESPONSE_2(13,8+1)<16;4,2> |
// Move second 8x8 words of G to dest GRF |
mov (8) ubDEST_Y(1,1)<4> ubAVS_RESPONSE_2(2,1)<16;4,2> |
mov (8) ubDEST_Y(3,1)<4> ubAVS_RESPONSE_2(2,8+1)<16;4,2> |
mov (8) ubDEST_Y(5,1)<4> ubAVS_RESPONSE_2(3,1)<16;4,2> |
mov (8) ubDEST_Y(7,1)<4> ubAVS_RESPONSE_2(3,8+1)<16;4,2> |
mov (8) ubDEST_Y(9,1)<4> ubAVS_RESPONSE_2(10,1)<16;4,2> |
mov (8) ubDEST_Y(11,1)<4> ubAVS_RESPONSE_2(10,8+1)<16;4,2> |
mov (8) ubDEST_Y(13,1)<4> ubAVS_RESPONSE_2(11,1)<16;4,2> |
mov (8) ubDEST_Y(15,1)<4> ubAVS_RESPONSE_2(11,8+1)<16;4,2> |
// Move second 8x8 words of R to dest GRF |
mov (8) ubDEST_Y(1,0)<4> ubAVS_RESPONSE_2(0,1)<16;4,2> |
mov (8) ubDEST_Y(3,0)<4> ubAVS_RESPONSE_2(0,8+1)<16;4,2> |
mov (8) ubDEST_Y(5,0)<4> ubAVS_RESPONSE_2(1,1)<16;4,2> |
mov (8) ubDEST_Y(7,0)<4> ubAVS_RESPONSE_2(1,8+1)<16;4,2> |
mov (8) ubDEST_Y(9,0)<4> ubAVS_RESPONSE_2(8,1)<16;4,2> |
mov (8) ubDEST_Y(11,0)<4> ubAVS_RESPONSE_2(8,8+1)<16;4,2> |
mov (8) ubDEST_Y(13,0)<4> ubAVS_RESPONSE_2(9,1)<16;4,2> |
mov (8) ubDEST_Y(15,0)<4> ubAVS_RESPONSE_2(9,8+1)<16;4,2> |
// Move second 8x8 words of A to dest GRF |
mov (8) ubDEST_Y(1,3)<4> ubAVS_RESPONSE_2(6,1)<16;4,2> |
mov (8) ubDEST_Y(3,3)<4> ubAVS_RESPONSE_2(6,8+1)<16;4,2> |
mov (8) ubDEST_Y(5,3)<4> ubAVS_RESPONSE_2(7,1)<16;4,2> |
mov (8) ubDEST_Y(7,3)<4> ubAVS_RESPONSE_2(7,8+1)<16;4,2> |
mov (8) ubDEST_Y(9,3)<4> ubAVS_RESPONSE_2(14,1)<16;4,2> |
mov (8) ubDEST_Y(11,3)<4> ubAVS_RESPONSE_2(14,8+1)<16;4,2> |
mov (8) ubDEST_Y(13,3)<4> ubAVS_RESPONSE_2(15,1)<16;4,2> |
mov (8) ubDEST_Y(15,3)<4> ubAVS_RESPONSE_2(15,8+1)<16;4,2> |
#endif |
//------------------------------------------------------------------------------ |
// Set to write bottom region to memory |
#define SRC_REGION REGION_2 |
// Re-define new # of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/RGB_AVS_IEF_Unscramble_16x8.asm |
---|
0,0 → 1,260 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- RGB_AVS_IEF_Unpack_16x8.asm ---------- |
#include "AVS_IEF.inc" |
.declare DEST_B Base=REG(r,10) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare DEST_G Base=REG(r,18) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare DEST_R Base=REG(r,26) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare DEST_A Base=REG(r,34) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
#ifdef AVS_OUTPUT_16_BIT |
//This portion will need to be changed if unpacking is required for Y416 kernels (in case of blending etc) - vK |
//// Move first 8x8 words of B to dest GRF (as packed) |
// mov (4) uwDEST_Y(0,2)<4> uwAVS_RESPONSE(4,0)<4;4,1> |
// mov (4) uwDEST_Y(1,2)<4> uwAVS_RESPONSE(4,8)<4;4,1> |
// mov (4) uwDEST_Y(4,2)<4> uwAVS_RESPONSE(4,4)<4;4,1> |
// mov (4) uwDEST_Y(5,2)<4> uwAVS_RESPONSE(4,12)<4;4,1> |
// mov (4) uwDEST_Y(8,2)<4> uwAVS_RESPONSE(5,0)<4;4,1> |
// mov (4) uwDEST_Y(9,2)<4> uwAVS_RESPONSE(5,8)<4;4,1> |
// mov (4) uwDEST_Y(12,2)<4> uwAVS_RESPONSE(5,4)<4;4,1> |
// mov (4) uwDEST_Y(13,2)<4> uwAVS_RESPONSE(5,12)<4;4,1> |
// mov (4) uwDEST_Y(16,2)<4> uwAVS_RESPONSE(12,0)<4;4,1> |
// mov (4) uwDEST_Y(17,2)<4> uwAVS_RESPONSE(12,8)<4;4,1> |
// mov (4) uwDEST_Y(20,2)<4> uwAVS_RESPONSE(12,4)<4;4,1> |
// mov (4) uwDEST_Y(21,2)<4> uwAVS_RESPONSE(12,12)<4;4,1> |
// mov (4) uwDEST_Y(24,2)<4> uwAVS_RESPONSE(13,0)<4;4,1> |
// mov (4) uwDEST_Y(25,2)<4> uwAVS_RESPONSE(13,8)<4;4,1> |
// mov (4) uwDEST_Y(28,2)<4> uwAVS_RESPONSE(13,4)<4;4,1> |
// mov (4) uwDEST_Y(29,2)<4> uwAVS_RESPONSE(13,12)<4;4,1> |
// |
//// Move first 8x8 words of G to dest GRF (as packed) |
// mov (4) uwDEST_Y(0,1)<4> uwAVS_RESPONSE(2,0)<4;4,1> |
// mov (4) uwDEST_Y(1,1)<4> uwAVS_RESPONSE(2,8)<4;4,1> |
// mov (4) uwDEST_Y(4,1)<4> uwAVS_RESPONSE(2,4)<4;4,1> |
// mov (4) uwDEST_Y(5,1)<4> uwAVS_RESPONSE(2,12)<4;4,1> |
// mov (4) uwDEST_Y(8,1)<4> uwAVS_RESPONSE(3,0)<4;4,1> |
// mov (4) uwDEST_Y(9,1)<4> uwAVS_RESPONSE(3,8)<4;4,1> |
// mov (4) uwDEST_Y(12,1)<4> uwAVS_RESPONSE(3,4)<4;4,1> |
// mov (4) uwDEST_Y(13,1)<4> uwAVS_RESPONSE(3,12)<4;4,1> |
// mov (4) uwDEST_Y(16,1)<4> uwAVS_RESPONSE(10,0)<4;4,1> |
// mov (4) uwDEST_Y(17,1)<4> uwAVS_RESPONSE(10,8)<4;4,1> |
// mov (4) uwDEST_Y(20,1)<4> uwAVS_RESPONSE(10,4)<4;4,1> |
// mov (4) uwDEST_Y(21,1)<4> uwAVS_RESPONSE(10,12)<4;4,1> |
// mov (4) uwDEST_Y(24,1)<4> uwAVS_RESPONSE(11,0)<4;4,1> |
// mov (4) uwDEST_Y(25,1)<4> uwAVS_RESPONSE(11,8)<4;4,1> |
// mov (4) uwDEST_Y(28,1)<4> uwAVS_RESPONSE(11,4)<4;4,1> |
// mov (4) uwDEST_Y(29,1)<4> uwAVS_RESPONSE(11,12)<4;4,1> |
// |
//// Move first 8x8 words of R to dest GRF (as packed) |
// mov (4) uwDEST_Y(0,0)<4> uwAVS_RESPONSE(0,0)<4;4,1> |
// mov (4) uwDEST_Y(1,0)<4> uwAVS_RESPONSE(0,8)<4;4,1> |
// mov (4) uwDEST_Y(4,0)<4> uwAVS_RESPONSE(0,4)<4;4,1> |
// mov (4) uwDEST_Y(5,0)<4> uwAVS_RESPONSE(0,12)<4;4,1> |
// mov (4) uwDEST_Y(8,0)<4> uwAVS_RESPONSE(1,0)<4;4,1> |
// mov (4) uwDEST_Y(9,0)<4> uwAVS_RESPONSE(1,8)<4;4,1> |
// mov (4) uwDEST_Y(12,0)<4> uwAVS_RESPONSE(1,4)<4;4,1> |
// mov (4) uwDEST_Y(13,0)<4> uwAVS_RESPONSE(1,12)<4;4,1> |
// mov (4) uwDEST_Y(16,0)<4> uwAVS_RESPONSE(8,0)<4;4,1> |
// mov (4) uwDEST_Y(17,0)<4> uwAVS_RESPONSE(8,8)<4;4,1> |
// mov (4) uwDEST_Y(20,0)<4> uwAVS_RESPONSE(8,4)<4;4,1> |
// mov (4) uwDEST_Y(21,0)<4> uwAVS_RESPONSE(8,12)<4;4,1> |
// mov (4) uwDEST_Y(24,0)<4> uwAVS_RESPONSE(9,0)<4;4,1> |
// mov (4) uwDEST_Y(25,0)<4> uwAVS_RESPONSE(9,8)<4;4,1> |
// mov (4) uwDEST_Y(28,0)<4> uwAVS_RESPONSE(9,4)<4;4,1> |
// mov (4) uwDEST_Y(29,0)<4> uwAVS_RESPONSE(9,12)<4;4,1> |
// |
//// Move first 8x8 words of A to dest GRF (as packed) |
// mov (4) uwDEST_Y(0,3)<4> uwAVS_RESPONSE(6,0)<4;4,1> |
// mov (4) uwDEST_Y(1,3)<4> uwAVS_RESPONSE(6,8)<4;4,1> |
// mov (4) uwDEST_Y(4,3)<4> uwAVS_RESPONSE(6,4)<4;4,1> |
// mov (4) uwDEST_Y(5,3)<4> uwAVS_RESPONSE(6,12)<4;4,1> |
// mov (4) uwDEST_Y(8,3)<4> uwAVS_RESPONSE(7,0)<4;4,1> |
// mov (4) uwDEST_Y(9,3)<4> uwAVS_RESPONSE(7,8)<4;4,1> |
// mov (4) uwDEST_Y(12,3)<4> uwAVS_RESPONSE(7,4)<4;4,1> |
// mov (4) uwDEST_Y(13,3)<4> uwAVS_RESPONSE(7,12)<4;4,1> |
// mov (4) uwDEST_Y(16,3)<4> uwAVS_RESPONSE(14,0)<4;4,1> |
// mov (4) uwDEST_Y(17,3)<4> uwAVS_RESPONSE(14,8)<4;4,1> |
// mov (4) uwDEST_Y(20,3)<4> uwAVS_RESPONSE(14,4)<4;4,1> |
// mov (4) uwDEST_Y(21,3)<4> uwAVS_RESPONSE(14,12)<4;4,1> |
// mov (4) uwDEST_Y(24,3)<4> uwAVS_RESPONSE(15,0)<4;4,1> |
// mov (4) uwDEST_Y(25,3)<4> uwAVS_RESPONSE(15,8)<4;4,1> |
// mov (4) uwDEST_Y(28,3)<4> uwAVS_RESPONSE(15,4)<4;4,1> |
// mov (4) uwDEST_Y(29,3)<4> uwAVS_RESPONSE(15,12)<4;4,1> |
// |
//// Move second 8x8 words of B to dest GRF |
// mov (4) uwDEST_Y(2,2)<4> uwAVS_RESPONSE_2(4,0)<4;4,1> |
// mov (4) uwDEST_Y(3,2)<4> uwAVS_RESPONSE_2(4,8)<4;4,1> |
// mov (4) uwDEST_Y(6,2)<4> uwAVS_RESPONSE_2(4,4)<4;4,1> |
// mov (4) uwDEST_Y(7,2)<4> uwAVS_RESPONSE_2(4,12)<4;4,1> |
// mov (4) uwDEST_Y(10,2)<4> uwAVS_RESPONSE_2(5,0)<4;4,1> |
// mov (4) uwDEST_Y(11,2)<4> uwAVS_RESPONSE_2(5,8)<4;4,1> |
// mov (4) uwDEST_Y(14,2)<4> uwAVS_RESPONSE_2(5,4)<4;4,1> |
// mov (4) uwDEST_Y(15,2)<4> uwAVS_RESPONSE_2(5,12)<4;4,1> |
// mov (4) uwDEST_Y(18,2)<4> uwAVS_RESPONSE_2(12,0)<4;4,1> |
// mov (4) uwDEST_Y(19,2)<4> uwAVS_RESPONSE_2(12,8)<4;4,1> |
// mov (4) uwDEST_Y(22,2)<4> uwAVS_RESPONSE_2(12,4)<4;4,1> |
// mov (4) uwDEST_Y(23,2)<4> uwAVS_RESPONSE_2(12,12)<4;4,1> |
// mov (4) uwDEST_Y(26,2)<4> uwAVS_RESPONSE_2(13,0)<4;4,1> |
// mov (4) uwDEST_Y(27,2)<4> uwAVS_RESPONSE_2(13,8)<4;4,1> |
// mov (4) uwDEST_Y(30,2)<4> uwAVS_RESPONSE_2(13,4)<4;4,1> |
// mov (4) uwDEST_Y(31,2)<4> uwAVS_RESPONSE_2(13,12)<4;4,1> |
// |
//// Move second 8x8 words of G to dest GRF |
// mov (4) uwDEST_Y(2,1)<4> uwAVS_RESPONSE_2(2,0)<4;4,1> |
// mov (4) uwDEST_Y(3,1)<4> uwAVS_RESPONSE_2(2,8)<4;4,1> |
// mov (4) uwDEST_Y(6,1)<4> uwAVS_RESPONSE_2(2,4)<4;4,1> |
// mov (4) uwDEST_Y(7,1)<4> uwAVS_RESPONSE_2(2,12)<4;4,1> |
// mov (4) uwDEST_Y(10,1)<4> uwAVS_RESPONSE_2(3,0)<4;4,1> |
// mov (4) uwDEST_Y(11,1)<4> uwAVS_RESPONSE_2(3,8)<4;4,1> |
// mov (4) uwDEST_Y(14,1)<4> uwAVS_RESPONSE_2(3,4)<4;4,1> |
// mov (4) uwDEST_Y(15,1)<4> uwAVS_RESPONSE_2(3,12)<4;4,1> |
// mov (4) uwDEST_Y(18,1)<4> uwAVS_RESPONSE_2(10,0)<4;4,1> |
// mov (4) uwDEST_Y(19,1)<4> uwAVS_RESPONSE_2(10,8)<4;4,1> |
// mov (4) uwDEST_Y(22,1)<4> uwAVS_RESPONSE_2(10,4)<4;4,1> |
// mov (4) uwDEST_Y(23,1)<4> uwAVS_RESPONSE_2(10,12)<4;4,1> |
// mov (4) uwDEST_Y(26,1)<4> uwAVS_RESPONSE_2(11,0)<4;4,1> |
// mov (4) uwDEST_Y(27,1)<4> uwAVS_RESPONSE_2(11,8)<4;4,1> |
// mov (4) uwDEST_Y(30,1)<4> uwAVS_RESPONSE_2(11,4)<4;4,1> |
// mov (4) uwDEST_Y(31,1)<4> uwAVS_RESPONSE_2(11,12)<4;4,1> |
// |
//// Move second 8x8 words of R to dest GRF |
// mov (4) uwDEST_Y(2,0)<4> uwAVS_RESPONSE_2(0,0)<4;4,1> |
// mov (4) uwDEST_Y(3,0)<4> uwAVS_RESPONSE_2(0,8)<4;4,1> |
// mov (4) uwDEST_Y(6,0)<4> uwAVS_RESPONSE_2(0,4)<4;4,1> |
// mov (4) uwDEST_Y(7,0)<4> uwAVS_RESPONSE_2(0,12)<4;4,1> |
// mov (4) uwDEST_Y(10,0)<4> uwAVS_RESPONSE_2(1,0)<4;4,1> |
// mov (4) uwDEST_Y(11,0)<4> uwAVS_RESPONSE_2(1,8)<4;4,1> |
// mov (4) uwDEST_Y(14,0)<4> uwAVS_RESPONSE_2(1,4)<4;4,1> |
// mov (4) uwDEST_Y(15,0)<4> uwAVS_RESPONSE_2(1,12)<4;4,1> |
// mov (4) uwDEST_Y(18,0)<4> uwAVS_RESPONSE_2(8,0)<4;4,1> |
// mov (4) uwDEST_Y(19,0)<4> uwAVS_RESPONSE_2(8,8)<4;4,1> |
// mov (4) uwDEST_Y(22,0)<4> uwAVS_RESPONSE_2(8,4)<4;4,1> |
// mov (4) uwDEST_Y(23,0)<4> uwAVS_RESPONSE_2(8,12)<4;4,1> |
// mov (4) uwDEST_Y(26,0)<4> uwAVS_RESPONSE_2(9,0)<4;4,1> |
// mov (4) uwDEST_Y(27,0)<4> uwAVS_RESPONSE_2(9,8)<4;4,1> |
// mov (4) uwDEST_Y(30,0)<4> uwAVS_RESPONSE_2(9,4)<4;4,1> |
// mov (4) uwDEST_Y(31,0)<4> uwAVS_RESPONSE_2(9,12)<4;4,1> |
// |
//// Move second 8x8 words of A to dest GRF |
// mov (4) uwDEST_Y(2,3)<4> uwAVS_RESPONSE_2(6,0)<4;4,1> |
// mov (4) uwDEST_Y(3,3)<4> uwAVS_RESPONSE_2(6,8)<4;4,1> |
// mov (4) uwDEST_Y(6,3)<4> uwAVS_RESPONSE_2(6,4)<4;4,1> |
// mov (4) uwDEST_Y(7,3)<4> uwAVS_RESPONSE_2(6,12)<4;4,1> |
// mov (4) uwDEST_Y(10,3)<4> uwAVS_RESPONSE_2(7,0)<4;4,1> |
// mov (4) uwDEST_Y(11,3)<4> uwAVS_RESPONSE_2(7,8)<4;4,1> |
// mov (4) uwDEST_Y(14,3)<4> uwAVS_RESPONSE_2(7,4)<4;4,1> |
// mov (4) uwDEST_Y(15,3)<4> uwAVS_RESPONSE_2(7,12)<4;4,1> |
// mov (4) uwDEST_Y(18,3)<4> uwAVS_RESPONSE_2(14,0)<4;4,1> |
// mov (4) uwDEST_Y(19,3)<4> uwAVS_RESPONSE_2(14,8)<4;4,1> |
// mov (4) uwDEST_Y(22,3)<4> uwAVS_RESPONSE_2(14,4)<4;4,1> |
// mov (4) uwDEST_Y(23,3)<4> uwAVS_RESPONSE_2(14,12)<4;4,1> |
// mov (4) uwDEST_Y(26,3)<4> uwAVS_RESPONSE_2(15,0)<4;4,1> |
// mov (4) uwDEST_Y(27,3)<4> uwAVS_RESPONSE_2(15,8)<4;4,1> |
// mov (4) uwDEST_Y(30,3)<4> uwAVS_RESPONSE_2(15,4)<4;4,1> |
// mov (4) uwDEST_Y(31,3)<4> uwAVS_RESPONSE_2(15,12)<4;4,1> |
#else /* OUTPUT_8_BIT */ |
// Move first 8x8 words of B to dest GRF |
mov (8) DEST_B(0)<1> ubAVS_RESPONSE(4,1)<16;4,2> |
mov (8) DEST_B(1)<1> ubAVS_RESPONSE(4,8+1)<16;4,2> |
mov (8) DEST_B(2)<1> ubAVS_RESPONSE(5,1)<16;4,2> |
mov (8) DEST_B(3)<1> ubAVS_RESPONSE(5,8+1)<16;4,2> |
mov (8) DEST_B(4)<1> ubAVS_RESPONSE(12,1)<16;4,2> |
mov (8) DEST_B(5)<1> ubAVS_RESPONSE(12,8+1)<16;4,2> |
mov (8) DEST_B(6)<1> ubAVS_RESPONSE(13,1)<16;4,2> |
mov (8) DEST_B(7)<1> ubAVS_RESPONSE(13,8+1)<16;4,2> |
// Move first 8x8 words of G to dest GRF |
mov (8) DEST_G(0)<1> ubAVS_RESPONSE(2,1)<16;4,2> |
mov (8) DEST_G(1)<1> ubAVS_RESPONSE(2,8+1)<16;4,2> |
mov (8) DEST_G(2)<1> ubAVS_RESPONSE(3,1)<16;4,2> |
mov (8) DEST_G(3)<1> ubAVS_RESPONSE(3,8+1)<16;4,2> |
mov (8) DEST_G(4)<1> ubAVS_RESPONSE(10,1)<16;4,2> |
mov (8) DEST_G(5)<1> ubAVS_RESPONSE(10,8+1)<16;4,2> |
mov (8) DEST_G(6)<1> ubAVS_RESPONSE(11,1)<16;4,2> |
mov (8) DEST_G(7)<1> ubAVS_RESPONSE(11,8+1)<16;4,2> |
// Move first 8x8 words of R to dest GRF |
mov (8) DEST_R(0)<1> ubAVS_RESPONSE(0,1)<16;4,2> |
mov (8) DEST_R(1)<1> ubAVS_RESPONSE(0,8+1)<16;4,2> |
mov (8) DEST_R(2)<1> ubAVS_RESPONSE(1,1)<16;4,2> |
mov (8) DEST_R(3)<1> ubAVS_RESPONSE(1,8+1)<16;4,2> |
mov (8) DEST_R(4)<1> ubAVS_RESPONSE(8,1)<16;4,2> |
mov (8) DEST_R(5)<1> ubAVS_RESPONSE(8,8+1)<16;4,2> |
mov (8) DEST_R(6)<1> ubAVS_RESPONSE(9,1)<16;4,2> |
mov (8) DEST_R(7)<1> ubAVS_RESPONSE(9,8+1)<16;4,2> |
// Move first 8x8 words of A to dest GRF |
mov (8) DEST_A(0)<1> ubAVS_RESPONSE(6,1)<16;4,2> |
mov (8) DEST_A(1)<1> ubAVS_RESPONSE(6,8+1)<16;4,2> |
mov (8) DEST_A(2)<1> ubAVS_RESPONSE(7,1)<16;4,2> |
mov (8) DEST_A(3)<1> ubAVS_RESPONSE(7,8+1)<16;4,2> |
mov (8) DEST_A(4)<1> ubAVS_RESPONSE(14,1)<16;4,2> |
mov (8) DEST_A(5)<1> ubAVS_RESPONSE(14,8+1)<16;4,2> |
mov (8) DEST_A(6)<1> ubAVS_RESPONSE(15,1)<16;4,2> |
mov (8) DEST_A(7)<1> ubAVS_RESPONSE(15,8+1)<16;4,2> |
// Move second 8x8 words of B to dest GRF |
mov (8) DEST_B(0,8)<1> ubAVS_RESPONSE_2(4,1)<16;4,2> |
mov (8) DEST_B(1,8)<1> ubAVS_RESPONSE_2(4,8+1)<16;4,2> |
mov (8) DEST_B(2,8)<1> ubAVS_RESPONSE_2(5,1)<16;4,2> |
mov (8) DEST_B(3,8)<1> ubAVS_RESPONSE_2(5,8+1)<16;4,2> |
mov (8) DEST_B(4,8)<1> ubAVS_RESPONSE_2(12,1)<16;4,2> |
mov (8) DEST_B(5,8)<1> ubAVS_RESPONSE_2(12,8+1)<16;4,2> |
mov (8) DEST_B(6,8)<1> ubAVS_RESPONSE_2(13,1)<16;4,2> |
mov (8) DEST_B(7,8)<1> ubAVS_RESPONSE_2(13,8+1)<16;4,2> |
// Move second 8x8 words of G to dest GRF |
mov (8) DEST_G(0,8)<1> ubAVS_RESPONSE_2(2,1)<16;4,2> |
mov (8) DEST_G(1,8)<1> ubAVS_RESPONSE_2(2,8+1)<16;4,2> |
mov (8) DEST_G(2,8)<1> ubAVS_RESPONSE_2(3,1)<16;4,2> |
mov (8) DEST_G(3,8)<1> ubAVS_RESPONSE_2(3,8+1)<16;4,2> |
mov (8) DEST_G(4,8)<1> ubAVS_RESPONSE_2(10,1)<16;4,2> |
mov (8) DEST_G(5,8)<1> ubAVS_RESPONSE_2(10,8+1)<16;4,2> |
mov (8) DEST_G(6,8)<1> ubAVS_RESPONSE_2(11,1)<16;4,2> |
mov (8) DEST_G(7,8)<1> ubAVS_RESPONSE_2(11,8+1)<16;4,2> |
// Move second 8x8 words of R to dest GRF |
mov (8) DEST_R(0,8)<1> ubAVS_RESPONSE_2(0,1)<16;4,2> |
mov (8) DEST_R(1,8)<1> ubAVS_RESPONSE_2(0,8+1)<16;4,2> |
mov (8) DEST_R(2,8)<1> ubAVS_RESPONSE_2(1,1)<16;4,2> |
mov (8) DEST_R(3,8)<1> ubAVS_RESPONSE_2(1,8+1)<16;4,2> |
mov (8) DEST_R(4,8)<1> ubAVS_RESPONSE_2(8,1)<16;4,2> |
mov (8) DEST_R(5,8)<1> ubAVS_RESPONSE_2(8,8+1)<16;4,2> |
mov (8) DEST_R(6,8)<1> ubAVS_RESPONSE_2(9,1)<16;4,2> |
mov (8) DEST_R(7,8)<1> ubAVS_RESPONSE_2(9,8+1)<16;4,2> |
// Move second 8x8 words of A to dest GRF |
mov (8) DEST_A(0,8)<1> ubAVS_RESPONSE_2(6,1)<16;4,2> |
mov (8) DEST_A(1,8)<1> ubAVS_RESPONSE_2(6,8+1)<16;4,2> |
mov (8) DEST_A(2,8)<1> ubAVS_RESPONSE_2(7,1)<16;4,2> |
mov (8) DEST_A(3,8)<1> ubAVS_RESPONSE_2(7,8+1)<16;4,2> |
mov (8) DEST_A(4,8)<1> ubAVS_RESPONSE_2(14,1)<16;4,2> |
mov (8) DEST_A(5,8)<1> ubAVS_RESPONSE_2(14,8+1)<16;4,2> |
mov (8) DEST_A(6,8)<1> ubAVS_RESPONSE_2(15,1)<16;4,2> |
mov (8) DEST_A(7,8)<1> ubAVS_RESPONSE_2(15,8+1)<16;4,2> |
#endif |
//------------------------------------------------------------------------------ |
// Set to write bottom region to memory |
#define SRC_REGION REGION_1 |
// Re-define new # of lines |
#undef nUV_NUM_OF_ROWS |
#undef nY_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 8 |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/RGB_Scaling.asm |
---|
0,0 → 1,72 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
//---------- RGB_Scaling.asm ---------- |
#include "Scaling.inc" |
// Build 16 elements ramp in float32 and normalized it |
// mov (8) SAMPLER_RAMP(0)<1> 0x76543210:v |
// add (8) SAMPLER_RAMP(1)<1> SAMPLER_RAMP(0) 8.0:f |
mov (4) SAMPLER_RAMP(0)<1> 0x48403000:vf //3, 2, 1, 0 in float vector |
mov (4) SAMPLER_RAMP(0,4)<1> 0x5C585450:vf //7, 6, 5, 4 in float vector |
add (8) SAMPLER_RAMP(1)<1> SAMPLER_RAMP(0) 8.0:f |
//Module: PrepareScaleCoord.asm |
// Setup for sampler msg hdr |
mov (2) rMSGSRC.0<1>:ud 0:ud { NoDDClr } // Unused fields |
mov (1) rMSGSRC.2<1>:ud 0:ud { NoDDChk } // Write and offset |
// Calculate 16 v based on the step Y and vertical origin |
mov (16) mfMSGPAYLOAD(2)<1> fSRC_VID_V_ORI<0;1,0>:f |
mov (16) SCALE_COORD_Y<1>:f fSRC_VID_V_ORI<0;1,0>:f |
// Calculate 16 u based on the step X and hori origin |
// line (16) mfMSGPAYLOAD(0)<1> SCALE_STEP_X<0;1,0>:f SAMPLER_RAMP(0) // Assign to mrf directly |
mov (16) acc0:f fSRC_VID_H_ORI<0;1,0>:f { Compr } |
mac (16) mfMSGPAYLOAD(0)<1> fVIDEO_STEP_X<0;1,0>:f SAMPLER_RAMP(0) { Compr } |
//Setup the constants for line instruction |
mov (1) SCALE_LINE_P255<1>:f 255.0:f { NoDDClr } //{ NoDDClr, NoDDChk } |
mov (1) SCALE_LINE_P0_5<1>:f 0.5:f { NoDDChk } |
//------------------------------------------------------------------------------ |
$for (0; <nY_NUM_OF_ROWS; 1) { |
// Read 16 sampled pixels and store them in float32 in 8 GRFs in the order of BGRA (VYUA). |
mov (8) MSGHDR_SCALE.0:ud rMSGSRC.0<8;8,1>:ud // Copy msg header and payload mirrors to MRFs |
send (16) SCALE_RESPONSE_YW(0)<1> MSGHDR_SCALE udDUMMY_NULL nSMPL_ENGINE SMPLR_MSG_DSC+nSI_SRC_SIMD16_RGB+nBI_CURRENT_SRC_RGB |
// Calculate 16 v for next line |
add (16) mfMSGPAYLOAD(2)<1> SCALE_COORD_Y<8;8,1>:f fVIDEO_STEP_Y<0;1,0>:f // Assign to mrf directly |
add (16) SCALE_COORD_Y<1>:f SCALE_COORD_Y<8;8,1>:f fVIDEO_STEP_Y<0;1,0>:f // Assign to mrf directly |
// Scale back to [0, 255], convert f to ud |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_YF(0) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_YD(0)<1> acc0:f { Compr } |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_YF(2) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_YD(2)<1> acc0:f { Compr } |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_YF(4) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_YD(4)<1> acc0:f { Compr } |
//#if defined(SAVE_ARGB) //Only needed if Alpha value is written to the destination |
line (16) acc0:f SCALE_LINE_P255<0;1,0>:f SCALE_RESPONSE_YF(6) { Compr } // Process B, V |
mov (16) SCALE_RESPONSE_YD(6)<1> acc0:f { Compr } |
//#endif |
mov (16) DEST_R(%1)<1> SCALE_RESPONSE_YB(0) //possible error due to truncation - vK |
mov (16) DEST_G(%1)<1> SCALE_RESPONSE_YB(2) //possible error due to truncation - vK |
mov (16) DEST_B(%1)<1> SCALE_RESPONSE_YB(4) //possible error due to truncation - vK |
mov (16) DEST_A(%1)<1> SCALE_RESPONSE_YB(6) //possible error due to truncation - vK |
} |
/drivers/video/i965/shaders/post_processing/gen5_6/Core_Kernels/Scaling.inc |
---|
0,0 → 1,75 |
/* |
* All Video Processing kernels |
* Copyright © <2010>, Intel Corporation. |
* |
* This program is licensed under the terms and conditions of the |
* Eclipse Public License (EPL), version 1.0. The full text of the EPL is at |
* http://www.opensource.org/licenses/eclipse-1.0.php. |
* |
*/ |
// File name: Scaling.inc |
#ifndef _SCALING_INC_ |
#define _SCALING_INC_ |
// Local variables---------------------------------------------------------------------------------- |
#define MSGHDR_SCALE m1 // Message Payload Header (Uses m2, m3, m4, m5 implicitly) |
//-------------------------------------------------------------------------------------------------- |
//r10.0 thru r33.0; Primary surface read from sampler (16x8) |
#define DEST_Y uwTOP_Y |
#define DEST_U uwTOP_U |
#define DEST_V uwTOP_V |
//r10.0 thru r41.0 |
.declare DEST_B Base=REG(r,10) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare DEST_G Base=REG(r,18) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare DEST_R Base=REG(r,26) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
.declare DEST_A Base=REG(r,34) ElementSize=2 SrcRegion=REGION(8,1) DstRegion=<1> Type=uw |
//r56.0 thru r79.0 |
.declare SCALE_RESPONSE_YF Base=REG(r,nBOT_Y) ElementSize=4 SrcRegion=REGION(8,1) Type=f |
.declare SCALE_RESPONSE_UF Base=REG(r,nBOT_U) ElementSize=4 SrcRegion=REGION(8,1) Type=f |
.declare SCALE_RESPONSE_VF Base=REG(r,nBOT_V) ElementSize=4 SrcRegion=REGION(8,1) Type=f |
.declare SCALE_RESPONSE_YW Base=REG(r,nBOT_Y) ElementSize=2 SrcRegion=REGION(16,1) Type=uw |
.declare SCALE_RESPONSE_UW Base=REG(r,nBOT_U) ElementSize=2 SrcRegion=REGION(16,1) Type=uw |
.declare SCALE_RESPONSE_VW Base=REG(r,nBOT_V) ElementSize=2 SrcRegion=REGION(16,1) Type=uw |
.declare SCALE_RESPONSE_YD Base=REG(r,nBOT_Y) ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
.declare SCALE_RESPONSE_UD Base=REG(r,nBOT_U) ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
.declare SCALE_RESPONSE_VD Base=REG(r,nBOT_V) ElementSize=4 SrcRegion=REGION(8,1) Type=ud |
.declare SCALE_RESPONSE_YB Base=REG(r,nBOT_Y) ElementSize=1 SrcRegion=REGION(8,4) Type=ub |
.declare SCALE_RESPONSE_UB Base=REG(r,nBOT_U) ElementSize=1 SrcRegion=REGION(8,4) Type=ub |
.declare SCALE_RESPONSE_VB Base=REG(r,nBOT_V) ElementSize=1 SrcRegion=REGION(8,4) Type=ub |
.declare SAMPLER_RAMP Base=REG(r,42) ElementSize=4 SrcRegion=<8;8,1> Type=f // 2 GRFs, 16 elements |
//#define SCALE_STEP_X REG2(r,43,0) |
//#define SCALE_COORD_X REG2(r,43,3) |
#define SCALE_LINE_P255 REG2(r,43,4) // = 255.0 Used in 'line' inst to multiply 255, add 0.5, and round to int. |
#define SCALE_LINE_P0_5 REG2(r,43,7) // = 0.5 |
//r44.0 thru r45.0 |
#define SCALE_COORD_Y REG(r,44) //2GRF |
// Send Message [DevILK] Message Descriptor |
// MBZ MsgL=5 MsgR=8 H MBZ SIMD MsgType SmplrIndx BindTab |
// 000 0 101 0 1000 1 0 10 0000 0000 00000000 |
// 0 A 8 A 0 0 0 0 |
// MsgL=1+2*2(u,v)=5 MsgR=8 |
#define SMPLR_MSG_DSC 0x0A8A0000 // ILK Sampler Message Descriptor |
// Re-define new number of lines |
#undef nY_NUM_OF_ROWS |
#undef nUV_NUM_OF_ROWS |
#define nY_NUM_OF_ROWS 8 |
#define nUV_NUM_OF_ROWS 8 |
#endif //_SCALING_INC_ |
/drivers/video/i965/shaders/post_processing/gen5_6/null.g4a |
---|
0,0 → 1,3 |
/* Just for test */ |
send(16) 0 acc0<1>UW g0<8,8,1>UW thread_spawner(0, 0, 0) mlen 1 rlen 0 {align1 EOT}; |
/drivers/video/i965/shaders/post_processing/gen5_6/null.g4b |
---|
0,0 → 1,0 |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x87100000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/null.g4b.gen5 |
---|
0,0 → 1,0 |
{ 0x00800031, 0x24001d28, 0x748d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/null.g6a |
---|
0,0 → 1,3 |
/* Just for test */ |
send(16) 0 acc0<1>UW g0<8,8,1>UW thread_spawner(0, 0, 0) mlen 1 rlen 0 {align1 EOT}; |
/drivers/video/i965/shaders/post_processing/gen5_6/null.g6b |
---|
0,0 → 1,0 |
{ 0x07800031, 0x24001cc8, 0x00000000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_avs_nv12.asm |
---|
0,0 → 1,20 |
// Module name: NV12_AVS_NV12 |
.kernel NV12_AVS_NV12 |
.code |
#define INC_SCALING |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "PL2_AVS_IEF_16x8.asm" |
#include "PL16x8_PL8x4.asm" |
#include "PL8x4_Save_NV12.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of nv12_avs_nv12.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_avs_nv12.g4b.gen5 |
---|
0,0 → 1,170 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x01000005, 0x20002d2c, 0x00000088, 0x80008000 }, |
{ 0x00010001, 0x20c003fd, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x212003bd, 0x000000c0, 0x00000000 }, |
{ 0x00000001, 0x212403bd, 0x000000bc, 0x00000000 }, |
{ 0x00000001, 0x213403bd, 0x00000038, 0x00000000 }, |
{ 0x00200001, 0x612803bd, 0x004500a4, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0000d000 }, |
{ 0x00802001, 0x20000022, 0x008d0100, 0x00000000 }, |
{ 0x00000031, 0x25401c09, 0x208d0000, 0x044bb401 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0000a000 }, |
{ 0x00802001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02000031, 0x25c01c09, 0x208d0000, 0x048bb802 }, |
{ 0x00000001, 0x240803bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x000000bc, 0x41000000 }, |
{ 0x00000048, 0x21287fbd, 0x000000c0, 0x41e00000 }, |
{ 0x00000001, 0x240403bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x21247fbd, 0x000000c0, 0x41000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0000d000 }, |
{ 0x00802001, 0x20000022, 0x008d0100, 0x00000000 }, |
{ 0x00000031, 0x27401c09, 0x208d0000, 0x044bb401 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0000a000 }, |
{ 0x00802001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02000031, 0x27c01c09, 0x208d0000, 0x048bb802 }, |
{ 0x00600001, 0x21400229, 0x00aa0541, 0x00000000 }, |
{ 0x00600001, 0x21600229, 0x00aa0549, 0x00000000 }, |
{ 0x00600001, 0x21800229, 0x00aa0561, 0x00000000 }, |
{ 0x00600001, 0x21a00229, 0x00aa0569, 0x00000000 }, |
{ 0x00600001, 0x21c00229, 0x00aa0581, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x00aa0589, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x00aa05a1, 0x00000000 }, |
{ 0x00600001, 0x22200229, 0x00aa05a9, 0x00000000 }, |
{ 0x00600001, 0x22400229, 0x00aa05c1, 0x00000000 }, |
{ 0x00600001, 0x22600229, 0x00aa05c9, 0x00000000 }, |
{ 0x00600001, 0x22800229, 0x00aa05e1, 0x00000000 }, |
{ 0x00600001, 0x22a00229, 0x00aa05e9, 0x00000000 }, |
{ 0x00600001, 0x22c00229, 0x00aa0641, 0x00000000 }, |
{ 0x00600001, 0x22e00229, 0x00aa0649, 0x00000000 }, |
{ 0x00600001, 0x23000229, 0x00aa0661, 0x00000000 }, |
{ 0x00600001, 0x23200229, 0x00aa0669, 0x00000000 }, |
{ 0x00600001, 0x23400229, 0x00aa0601, 0x00000000 }, |
{ 0x00600001, 0x23600229, 0x00aa0609, 0x00000000 }, |
{ 0x00600001, 0x23800229, 0x00aa0621, 0x00000000 }, |
{ 0x00600001, 0x23a00229, 0x00aa0629, 0x00000000 }, |
{ 0x00600001, 0x23c00229, 0x00aa0681, 0x00000000 }, |
{ 0x00600001, 0x23e00229, 0x00aa0689, 0x00000000 }, |
{ 0x00600001, 0x24000229, 0x00aa06a1, 0x00000000 }, |
{ 0x00600001, 0x24200229, 0x00aa06a9, 0x00000000 }, |
{ 0x00600001, 0x21500229, 0x00aa0741, 0x00000000 }, |
{ 0x00600001, 0x21700229, 0x00aa0749, 0x00000000 }, |
{ 0x00600001, 0x21900229, 0x00aa0761, 0x00000000 }, |
{ 0x00600001, 0x21b00229, 0x00aa0769, 0x00000000 }, |
{ 0x00600001, 0x21d00229, 0x00aa0781, 0x00000000 }, |
{ 0x00600001, 0x21f00229, 0x00aa0789, 0x00000000 }, |
{ 0x00600001, 0x22100229, 0x00aa07a1, 0x00000000 }, |
{ 0x00600001, 0x22300229, 0x00aa07a9, 0x00000000 }, |
{ 0x00600001, 0x22500229, 0x00aa07c1, 0x00000000 }, |
{ 0x00600001, 0x22700229, 0x00aa07c9, 0x00000000 }, |
{ 0x00600001, 0x22900229, 0x00aa07e1, 0x00000000 }, |
{ 0x00600001, 0x22b00229, 0x00aa07e9, 0x00000000 }, |
{ 0x00600001, 0x22d00229, 0x00aa0841, 0x00000000 }, |
{ 0x00600001, 0x22f00229, 0x00aa0849, 0x00000000 }, |
{ 0x00600001, 0x23100229, 0x00aa0861, 0x00000000 }, |
{ 0x00600001, 0x23300229, 0x00aa0869, 0x00000000 }, |
{ 0x00600001, 0x23500229, 0x00aa0801, 0x00000000 }, |
{ 0x00600001, 0x23700229, 0x00aa0809, 0x00000000 }, |
{ 0x00600001, 0x23900229, 0x00aa0821, 0x00000000 }, |
{ 0x00600001, 0x23b00229, 0x00aa0829, 0x00000000 }, |
{ 0x00600001, 0x23d00229, 0x00aa0881, 0x00000000 }, |
{ 0x00600001, 0x23f00229, 0x00aa0889, 0x00000000 }, |
{ 0x00600001, 0x24100229, 0x00aa08a1, 0x00000000 }, |
{ 0x00600001, 0x24300229, 0x00aa08a9, 0x00000000 }, |
{ 0x00600001, 0x22400129, 0x00ae0240, 0x00000000 }, |
{ 0x00600001, 0x23400129, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0x22500129, 0x00ae0280, 0x00000000 }, |
{ 0x00600001, 0x23500129, 0x00ae0380, 0x00000000 }, |
{ 0x00600001, 0x22600129, 0x00ae02c0, 0x00000000 }, |
{ 0x00600001, 0x23600129, 0x00ae03c0, 0x00000000 }, |
{ 0x00600001, 0x22700129, 0x00ae0300, 0x00000000 }, |
{ 0x00600001, 0x23700129, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x28000c01, 0x408d0000, 0x0228a008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x0a082007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x06082008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00000041, 0x24407fbd, 0x000000bc, 0x41800000 }, |
{ 0x00000040, 0x20a477bd, 0x00000440, 0x000000a4 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xfffffece }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000001, 0x20a403bd, 0x00000094, 0x00000000 }, |
{ 0x00000041, 0x24407fbd, 0x00000038, 0x41000000 }, |
{ 0x00000040, 0x20a877bd, 0x00000440, 0x000000a8 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffec2 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_avs_nv12.g6b |
---|
0,0 → 1,243 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x01000005, 0x20002d2c, 0x00000088, 0x80008000 }, |
{ 0x00010001, 0x20c003fd, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x212003bd, 0x000000c0, 0x00000000 }, |
{ 0x00000001, 0x212403bd, 0x000000bc, 0x00000000 }, |
{ 0x00000001, 0x213403bd, 0x00000038, 0x00000000 }, |
{ 0x00200001, 0x612803bd, 0x004500a4, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0000d000 }, |
{ 0x00800001, 0x20000022, 0x008d0100, 0x00000000 }, |
{ 0x02000031, 0x25401cc9, 0x00000000, 0x044bb401 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0000a000 }, |
{ 0x00800001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02000031, 0x25c01cc9, 0x00000040, 0x048bb802 }, |
{ 0x00000001, 0x240803bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x000000bc, 0x41000000 }, |
{ 0x00000048, 0x21287fbd, 0x000000c0, 0x41e00000 }, |
{ 0x00000001, 0x240403bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x21247fbd, 0x000000c0, 0x41000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0000d000 }, |
{ 0x00800001, 0x20000022, 0x008d0100, 0x00000000 }, |
{ 0x02000031, 0x27401cc9, 0x00000000, 0x044bb401 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0000a000 }, |
{ 0x00800001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02000031, 0x27c01cc9, 0x00000040, 0x048bb802 }, |
{ 0x00600001, 0x21400229, 0x00aa0541, 0x00000000 }, |
{ 0x00600001, 0x21600229, 0x00aa0549, 0x00000000 }, |
{ 0x00600001, 0x21800229, 0x00aa0561, 0x00000000 }, |
{ 0x00600001, 0x21a00229, 0x00aa0569, 0x00000000 }, |
{ 0x00600001, 0x21c00229, 0x00aa0581, 0x00000000 }, |
{ 0x00600001, 0x21e00229, 0x00aa0589, 0x00000000 }, |
{ 0x00600001, 0x22000229, 0x00aa05a1, 0x00000000 }, |
{ 0x00600001, 0x22200229, 0x00aa05a9, 0x00000000 }, |
{ 0x00600001, 0x22400229, 0x00aa05c1, 0x00000000 }, |
{ 0x00600001, 0x22600229, 0x00aa05c9, 0x00000000 }, |
{ 0x00600001, 0x22800229, 0x00aa05e1, 0x00000000 }, |
{ 0x00600001, 0x22a00229, 0x00aa05e9, 0x00000000 }, |
{ 0x00600001, 0x22c00229, 0x00aa0641, 0x00000000 }, |
{ 0x00600001, 0x22e00229, 0x00aa0649, 0x00000000 }, |
{ 0x00600001, 0x23000229, 0x00aa0661, 0x00000000 }, |
{ 0x00600001, 0x23200229, 0x00aa0669, 0x00000000 }, |
{ 0x00600001, 0x23400229, 0x00aa0601, 0x00000000 }, |
{ 0x00600001, 0x23600229, 0x00aa0609, 0x00000000 }, |
{ 0x00600001, 0x23800229, 0x00aa0621, 0x00000000 }, |
{ 0x00600001, 0x23a00229, 0x00aa0629, 0x00000000 }, |
{ 0x00600001, 0x23c00229, 0x00aa0681, 0x00000000 }, |
{ 0x00600001, 0x23e00229, 0x00aa0689, 0x00000000 }, |
{ 0x00600001, 0x24000229, 0x00aa06a1, 0x00000000 }, |
{ 0x00600001, 0x24200229, 0x00aa06a9, 0x00000000 }, |
{ 0x00600001, 0x21500229, 0x00aa0741, 0x00000000 }, |
{ 0x00600001, 0x21700229, 0x00aa0749, 0x00000000 }, |
{ 0x00600001, 0x21900229, 0x00aa0761, 0x00000000 }, |
{ 0x00600001, 0x21b00229, 0x00aa0769, 0x00000000 }, |
{ 0x00600001, 0x21d00229, 0x00aa0781, 0x00000000 }, |
{ 0x00600001, 0x21f00229, 0x00aa0789, 0x00000000 }, |
{ 0x00600001, 0x22100229, 0x00aa07a1, 0x00000000 }, |
{ 0x00600001, 0x22300229, 0x00aa07a9, 0x00000000 }, |
{ 0x00600001, 0x22500229, 0x00aa07c1, 0x00000000 }, |
{ 0x00600001, 0x22700229, 0x00aa07c9, 0x00000000 }, |
{ 0x00600001, 0x22900229, 0x00aa07e1, 0x00000000 }, |
{ 0x00600001, 0x22b00229, 0x00aa07e9, 0x00000000 }, |
{ 0x00600001, 0x22d00229, 0x00aa0841, 0x00000000 }, |
{ 0x00600001, 0x22f00229, 0x00aa0849, 0x00000000 }, |
{ 0x00600001, 0x23100229, 0x00aa0861, 0x00000000 }, |
{ 0x00600001, 0x23300229, 0x00aa0869, 0x00000000 }, |
{ 0x00600001, 0x23500229, 0x00aa0801, 0x00000000 }, |
{ 0x00600001, 0x23700229, 0x00aa0809, 0x00000000 }, |
{ 0x00600001, 0x23900229, 0x00aa0821, 0x00000000 }, |
{ 0x00600001, 0x23b00229, 0x00aa0829, 0x00000000 }, |
{ 0x00600001, 0x23d00229, 0x00aa0881, 0x00000000 }, |
{ 0x00600001, 0x23f00229, 0x00aa0889, 0x00000000 }, |
{ 0x00600001, 0x24100229, 0x00aa08a1, 0x00000000 }, |
{ 0x00600001, 0x24300229, 0x00aa08a9, 0x00000000 }, |
{ 0x00600001, 0x22400129, 0x00ae0240, 0x00000000 }, |
{ 0x00600001, 0x23400129, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0x22500129, 0x00ae0280, 0x00000000 }, |
{ 0x00600001, 0x23500129, 0x00ae0380, 0x00000000 }, |
{ 0x00600001, 0x22600129, 0x00ae02c0, 0x00000000 }, |
{ 0x00600001, 0x23600129, 0x00ae03c0, 0x00000000 }, |
{ 0x00600001, 0x22700129, 0x00ae0300, 0x00000000 }, |
{ 0x00600001, 0x23700129, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000020, 0x02298008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x0a094007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x06094008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00000041, 0x24407fbd, 0x000000bc, 0x41800000 }, |
{ 0x00000040, 0x20a477bd, 0x00000440, 0x000000a4 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xfffffece }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000001, 0x20a403bd, 0x00000094, 0x00000000 }, |
{ 0x00000041, 0x24407fbd, 0x00000038, 0x41000000 }, |
{ 0x00000040, 0x20a877bd, 0x00000440, 0x000000a8 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffec2 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_dn_nv12.asm |
---|
0,0 → 1,26 |
// Module name: NV12_DN_NV12 |
.kernel NV12_DN_NV12 |
.code |
#define INC_DN |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#define LOAD_UV_ONLY |
#include "NV12_Load_8x4.asm" |
#undef LOAD_UV_ONLY |
#include "PL_DN_ALG.asm" |
#include "PL8x4_Save_NV12.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of nv12_dn_nv12.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_dn_nv12.g4b.gen5 |
---|
0,0 → 1,113 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02600031, 0x28000c01, 0x408d0000, 0x0228a002 }, |
{ 0x00800001, 0x22600229, 0x00d20820, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x00d20821, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x00d20800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x00d20801, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x204801aa, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x205801aa, 0x000000a2, 0x00000000 }, |
{ 0x01600031, 0x24400c01, 0x208d0000, 0x045b8004 }, |
{ 0x00800001, 0x21400229, 0x00b10440, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10450, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10460, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10470, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10480, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10490, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b104a0, 0x00000000 }, |
{ 0x00800001, 0x22200229, 0x00b104b0, 0x00000000 }, |
{ 0x00200008, 0x21003da1, 0x004500a0, 0x00020002 }, |
{ 0x00000040, 0x21002421, 0x00000100, 0x00000034 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00010003 }, |
{ 0x00600001, 0x21a00022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x21c00022, 0x004504c0, 0x00000000 }, |
{ 0x0d600031, 0x20000c04, 0x508d0000, 0x04082014 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x28000c01, 0x408d0000, 0x0228a008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x0a082007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x06082008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff3a }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff34 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_dn_nv12.g6b |
---|
0,0 → 1,186 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000040, 0x02298002 }, |
{ 0x00800001, 0x22600229, 0x00d20820, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x00d20821, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x00d20800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x00d20801, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x204801aa, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x205801aa, 0x000000a2, 0x00000000 }, |
{ 0x02600031, 0x24400cc1, 0x00000020, 0x045b8004 }, |
{ 0x00800001, 0x21400229, 0x00b10440, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10450, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10460, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10470, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10480, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10490, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b104a0, 0x00000000 }, |
{ 0x00800001, 0x22200229, 0x00b104b0, 0x00000000 }, |
{ 0x00200008, 0x21003da1, 0x004500a0, 0x00020002 }, |
{ 0x00000040, 0x21002421, 0x00000100, 0x00000034 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00010003 }, |
{ 0x00600001, 0x21a00022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x21c00022, 0x004504c0, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x000001a0, 0x04094014 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000020, 0x02298008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x0a094007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x06094008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff3a }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff34 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_dndi_nv12.asm |
---|
0,0 → 1,18 |
// Module name: NV12_DNDI_NV12 |
.kernel NV12_DNDI_NV12 |
.code |
#define INC_DNDI |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "PL_DNDI_ALG_UVCopy_NV12.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of nv12_dndi_nv12.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_dndi_nv12.g4b.gen5 |
---|
0,0 → 1,90 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x204801aa, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x205801aa, 0x000000a2, 0x00000000 }, |
{ 0x01600031, 0x24400c01, 0x208d0000, 0x04cb8004 }, |
{ 0x00800001, 0x21400229, 0x00b10440, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10450, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10460, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10470, 0x00000000 }, |
{ 0x00600001, 0x22400229, 0x00ae0481, 0x00000000 }, |
{ 0x00600001, 0x23400229, 0x00ae0480, 0x00000000 }, |
{ 0x00600001, 0x22500229, 0x00ae0491, 0x00000000 }, |
{ 0x00600001, 0x23500229, 0x00ae0490, 0x00000000 }, |
{ 0x00600001, 0x22600229, 0x00ae04a1, 0x00000000 }, |
{ 0x00600001, 0x23600229, 0x00ae04a0, 0x00000000 }, |
{ 0x00600001, 0x22700229, 0x00ae04b1, 0x00000000 }, |
{ 0x00600001, 0x23700229, 0x00ae04b0, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b104d0, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x22200229, 0x00b104f0, 0x00000000 }, |
{ 0x00600001, 0x22800229, 0x00ae0501, 0x00000000 }, |
{ 0x00600001, 0x23800229, 0x00ae0500, 0x00000000 }, |
{ 0x00600001, 0x22900229, 0x00ae0511, 0x00000000 }, |
{ 0x00600001, 0x23900229, 0x00ae0510, 0x00000000 }, |
{ 0x00600001, 0x22a00229, 0x00ae0521, 0x00000000 }, |
{ 0x00600001, 0x23a00229, 0x00ae0520, 0x00000000 }, |
{ 0x00600001, 0x22b00229, 0x00ae0531, 0x00000000 }, |
{ 0x00600001, 0x23b00229, 0x00ae0530, 0x00000000 }, |
{ 0x00000008, 0x21003da1, 0x000000a0, 0x00010001 }, |
{ 0x00000001, 0x210401a1, 0x000000a2, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x21600022, 0x008d0100, 0x00000000 }, |
{ 0x00600001, 0x21800022, 0x008d0540, 0x00000000 }, |
{ 0x0b600031, 0x20000c04, 0x508d0000, 0x04082014 }, |
{ 0x00200008, 0x21003da1, 0x004500a0, 0x00020002 }, |
{ 0x00000040, 0x21002421, 0x00000100, 0x00000034 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00000003 }, |
{ 0x00600001, 0x21a00022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x21c00022, 0x00000560, 0x00000000 }, |
{ 0x0d600031, 0x20000c04, 0x508d0000, 0x04082014 }, |
{ 0x00400040, 0x22083e28, 0x00690024, 0x07000700 }, |
{ 0x01000010, 0x20003e2c, 0x0000003b, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00400001, 0x20400022, 0x00690580, 0x00000000 }, |
{ 0x00400001, 0x20500022, 0x006904d0, 0x00000000 }, |
{ 0x00400001, 0x20600022, 0x00690590, 0x00000000 }, |
{ 0x00400001, 0x20700022, 0x006904f0, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00400001, 0x20400022, 0x006904c0, 0x00000000 }, |
{ 0x00400001, 0x20500022, 0x00690580, 0x00000000 }, |
{ 0x00400001, 0x20600022, 0x006904e0, 0x00000000 }, |
{ 0x00400001, 0x20700022, 0x00690590, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b104d0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b104f0, 0x00000000 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x06082007 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0001000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x28000c01, 0x408d0000, 0x0218a002 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0001000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00600001, 0x20400022, 0x008d0800, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x04082008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff68 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff62 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_dndi_nv12.g6b |
---|
0,0 → 1,163 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x204801aa, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x205801aa, 0x000000a2, 0x00000000 }, |
{ 0x02600031, 0x24400cc1, 0x00000020, 0x04cb8004 }, |
{ 0x00800001, 0x21400229, 0x00b10440, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10450, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10460, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10470, 0x00000000 }, |
{ 0x00600001, 0x22400229, 0x00ae0481, 0x00000000 }, |
{ 0x00600001, 0x23400229, 0x00ae0480, 0x00000000 }, |
{ 0x00600001, 0x22500229, 0x00ae0491, 0x00000000 }, |
{ 0x00600001, 0x23500229, 0x00ae0490, 0x00000000 }, |
{ 0x00600001, 0x22600229, 0x00ae04a1, 0x00000000 }, |
{ 0x00600001, 0x23600229, 0x00ae04a0, 0x00000000 }, |
{ 0x00600001, 0x22700229, 0x00ae04b1, 0x00000000 }, |
{ 0x00600001, 0x23700229, 0x00ae04b0, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b104d0, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x22200229, 0x00b104f0, 0x00000000 }, |
{ 0x00600001, 0x22800229, 0x00ae0501, 0x00000000 }, |
{ 0x00600001, 0x23800229, 0x00ae0500, 0x00000000 }, |
{ 0x00600001, 0x22900229, 0x00ae0511, 0x00000000 }, |
{ 0x00600001, 0x23900229, 0x00ae0510, 0x00000000 }, |
{ 0x00600001, 0x22a00229, 0x00ae0521, 0x00000000 }, |
{ 0x00600001, 0x23a00229, 0x00ae0520, 0x00000000 }, |
{ 0x00600001, 0x22b00229, 0x00ae0531, 0x00000000 }, |
{ 0x00600001, 0x23b00229, 0x00ae0530, 0x00000000 }, |
{ 0x00000008, 0x21003da1, 0x000000a0, 0x00010001 }, |
{ 0x00000001, 0x210401a1, 0x000000a2, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x21600022, 0x008d0100, 0x00000000 }, |
{ 0x00600001, 0x21800022, 0x008d0540, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000160, 0x04094014 }, |
{ 0x00200008, 0x21003da1, 0x004500a0, 0x00020002 }, |
{ 0x00000040, 0x21002421, 0x00000100, 0x00000034 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00000003 }, |
{ 0x00600001, 0x21a00022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x21c00022, 0x00000560, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x000001a0, 0x04094014 }, |
{ 0x00400040, 0x22083e28, 0x00690024, 0x07000700 }, |
{ 0x01000010, 0x20003e2c, 0x0000003b, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000a }, |
{ 0x00400001, 0x20400022, 0x00690580, 0x00000000 }, |
{ 0x00400001, 0x20500022, 0x006904d0, 0x00000000 }, |
{ 0x00400001, 0x20600022, 0x00690590, 0x00000000 }, |
{ 0x00400001, 0x20700022, 0x006904f0, 0x00000000 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00400001, 0x20400022, 0x006904c0, 0x00000000 }, |
{ 0x00400001, 0x20500022, 0x00690580, 0x00000000 }, |
{ 0x00400001, 0x20600022, 0x006904e0, 0x00000000 }, |
{ 0x00400001, 0x20700022, 0x00690590, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00b104c0, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00b104d0, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00b104e0, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00b104f0, 0x00000000 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x06094007 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0001000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000020, 0x02198002 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0001000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00600001, 0x20400022, 0x008d0800, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x04094008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff68 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff62 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_load_save_nv12.asm |
---|
0,0 → 1,17 |
// Module name: NV12_LOAD_SAVE_NV12 |
.kernel NV12_LOAD_SAVE_NV12 |
.code |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "NV12_Load_8x4.asm" |
#include "PL8x4_Save_NV12.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of nv12_load_save_nv12.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_load_save_nv12.g4b.gen5 |
---|
0,0 → 1,106 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a001 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02600031, 0x28000c01, 0x408d0000, 0x0228a002 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x00d20820, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x00d20821, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x00d20800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x00d20801, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x28000c01, 0x408d0000, 0x0228a008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x0a082007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x06082008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff48 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff42 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_load_save_nv12.g6b |
---|
0,0 → 1,179 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498001 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000040, 0x02298002 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x00d20820, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x00d20821, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x00d20800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x00d20801, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000020, 0x02298008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x0a094007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x06094008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff48 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff42 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_load_save_pa.asm |
---|
0,0 → 1,18 |
// Module name: NV12_LOAD_SAVE_pl1 |
.kernel NV12_LOAD_SAVE_PL1 // what's usage of it? just a name? |
.code |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "NV12_Load_8x5.asm" |
#include "PL8x5_PL8x8.asm" |
#include "PL8x8_Save_PA.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of nv12_load_save_pl1.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_load_save_pa.g4b.gen5 |
---|
0,0 → 1,117 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a001 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0004000f }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02600031, 0x28000c01, 0x408d0000, 0x0238a002 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22800229, 0x00ae0840, 0x00000000 }, |
{ 0x00800001, 0x23800229, 0x00ae0841, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x00ae0820, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x00ae0821, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x00ae0800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x00ae0801, 0x00000000 }, |
{ 0x80600042, 0x22b02529, 0x008d0270, 0x008d0280 }, |
{ 0x80600042, 0x23b02529, 0x008d0370, 0x008d0380 }, |
{ 0x00600001, 0x22a00129, 0x008d0270, 0x00000000 }, |
{ 0x80600042, 0x22902529, 0x008d0260, 0x008d0270 }, |
{ 0x00600001, 0x23a00129, 0x008d0370, 0x00000000 }, |
{ 0x80600042, 0x23902529, 0x008d0360, 0x008d0370 }, |
{ 0x00600001, 0x22800129, 0x008d0260, 0x00000000 }, |
{ 0x80600042, 0x22702529, 0x008d0250, 0x008d0260 }, |
{ 0x00600001, 0x23800129, 0x008d0360, 0x00000000 }, |
{ 0x80600042, 0x23702529, 0x008d0350, 0x008d0360 }, |
{ 0x00600001, 0x22600129, 0x008d0250, 0x00000000 }, |
{ 0x80600042, 0x22502529, 0x008d0240, 0x008d0250 }, |
{ 0x00600001, 0x23600129, 0x008d0350, 0x00000000 }, |
{ 0x80600042, 0x23502529, 0x008d0340, 0x008d0350 }, |
{ 0x00400040, 0x22083e28, 0x00690028, 0x07000700 }, |
{ 0x00800001, 0xd0000231, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0xd0200231, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0xd0400231, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0xd0600231, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0xd0800231, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0xd0a00231, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0xd0c00231, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0xd0e00231, 0x00d20220, 0x00000000 }, |
{ 0x00600001, 0xf4000231, 0x00ae0240, 0x00000000 }, |
{ 0x00600001, 0xf8000231, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0xf4200231, 0x00ae0250, 0x00000000 }, |
{ 0x00600001, 0xf8200231, 0x00ae0350, 0x00000000 }, |
{ 0x00600001, 0xf4400231, 0x00ae0260, 0x00000000 }, |
{ 0x00600001, 0xf8400231, 0x00ae0360, 0x00000000 }, |
{ 0x00600001, 0xf4600231, 0x00ae0270, 0x00000000 }, |
{ 0x00600001, 0xf8600231, 0x00ae0370, 0x00000000 }, |
{ 0x00600001, 0xf4800231, 0x00ae0280, 0x00000000 }, |
{ 0x00600001, 0xf8800231, 0x00ae0380, 0x00000000 }, |
{ 0x00600001, 0xf4a00231, 0x00ae0290, 0x00000000 }, |
{ 0x00600001, 0xf8a00231, 0x00ae0390, 0x00000000 }, |
{ 0x00600001, 0xf4c00231, 0x00ae02a0, 0x00000000 }, |
{ 0x00600001, 0xf8c00231, 0x00ae03a0, 0x00000000 }, |
{ 0x00600001, 0xf4e00231, 0x00ae02b0, 0x00000000 }, |
{ 0x00600001, 0xf8e00231, 0x00ae03b0, 0x00000000 }, |
{ 0x00000409, 0x21003da5, 0x000000a0, 0x00010001 }, |
{ 0x00000c01, 0x210401a5, 0x000000a2, 0x00000000 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0007001f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000002a }, |
{ 0x01600031, 0x21400c01, 0x408d0000, 0x0288a007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26000228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x000000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x27000129, 0x02b10140, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x27200129, 0x02b10160, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x27400129, 0x02b10180, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x27600129, 0x02b101a0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x27800129, 0x02b101c0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x27a00129, 0x02b101e0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x27c00129, 0x02b10200, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x27e00129, 0x02b10220, 0x00000000 }, |
{ 0x00600001, 0x20400022, 0x008d0700, 0x00000000 }, |
{ 0x00600001, 0x20600022, 0x008d0720, 0x00000000 }, |
{ 0x00600001, 0x20800022, 0x008d0740, 0x00000000 }, |
{ 0x00600001, 0x20a00022, 0x008d0760, 0x00000000 }, |
{ 0x00600001, 0x20c00022, 0x008d0780, 0x00000000 }, |
{ 0x00600001, 0x20e00022, 0x008d07a0, 0x00000000 }, |
{ 0x00600001, 0x21000022, 0x008d07c0, 0x00000000 }, |
{ 0x00600001, 0x21200022, 0x008d07e0, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x12082007 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff32 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff2c }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_load_save_pa.g6b |
---|
0,0 → 1,190 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498001 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0004000f }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000040, 0x02398002 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22800229, 0x00ae0840, 0x00000000 }, |
{ 0x00800001, 0x23800229, 0x00ae0841, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x00ae0820, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x00ae0821, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x00ae0800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x00ae0801, 0x00000000 }, |
{ 0x80600042, 0x22b02529, 0x008d0270, 0x008d0280 }, |
{ 0x80600042, 0x23b02529, 0x008d0370, 0x008d0380 }, |
{ 0x00600001, 0x22a00129, 0x008d0270, 0x00000000 }, |
{ 0x80600042, 0x22902529, 0x008d0260, 0x008d0270 }, |
{ 0x00600001, 0x23a00129, 0x008d0370, 0x00000000 }, |
{ 0x80600042, 0x23902529, 0x008d0360, 0x008d0370 }, |
{ 0x00600001, 0x22800129, 0x008d0260, 0x00000000 }, |
{ 0x80600042, 0x22702529, 0x008d0250, 0x008d0260 }, |
{ 0x00600001, 0x23800129, 0x008d0360, 0x00000000 }, |
{ 0x80600042, 0x23702529, 0x008d0350, 0x008d0360 }, |
{ 0x00600001, 0x22600129, 0x008d0250, 0x00000000 }, |
{ 0x80600042, 0x22502529, 0x008d0240, 0x008d0250 }, |
{ 0x00600001, 0x23600129, 0x008d0350, 0x00000000 }, |
{ 0x80600042, 0x23502529, 0x008d0340, 0x008d0350 }, |
{ 0x00400040, 0x22083e28, 0x00690028, 0x07000700 }, |
{ 0x00800001, 0xd0000231, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0xd0200231, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0xd0400231, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0xd0600231, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0xd0800231, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0xd0a00231, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0xd0c00231, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0xd0e00231, 0x00d20220, 0x00000000 }, |
{ 0x00600001, 0xf4000231, 0x00ae0240, 0x00000000 }, |
{ 0x00600001, 0xf8000231, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0xf4200231, 0x00ae0250, 0x00000000 }, |
{ 0x00600001, 0xf8200231, 0x00ae0350, 0x00000000 }, |
{ 0x00600001, 0xf4400231, 0x00ae0260, 0x00000000 }, |
{ 0x00600001, 0xf8400231, 0x00ae0360, 0x00000000 }, |
{ 0x00600001, 0xf4600231, 0x00ae0270, 0x00000000 }, |
{ 0x00600001, 0xf8600231, 0x00ae0370, 0x00000000 }, |
{ 0x00600001, 0xf4800231, 0x00ae0280, 0x00000000 }, |
{ 0x00600001, 0xf8800231, 0x00ae0380, 0x00000000 }, |
{ 0x00600001, 0xf4a00231, 0x00ae0290, 0x00000000 }, |
{ 0x00600001, 0xf8a00231, 0x00ae0390, 0x00000000 }, |
{ 0x00600001, 0xf4c00231, 0x00ae02a0, 0x00000000 }, |
{ 0x00600001, 0xf8c00231, 0x00ae03a0, 0x00000000 }, |
{ 0x00600001, 0xf4e00231, 0x00ae02b0, 0x00000000 }, |
{ 0x00600001, 0xf8e00231, 0x00ae03b0, 0x00000000 }, |
{ 0x00000409, 0x21003da5, 0x000000a0, 0x00010001 }, |
{ 0x00000c01, 0x210401a5, 0x000000a2, 0x00000000 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0007001f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000002a }, |
{ 0x04600031, 0x21400cc1, 0x00000020, 0x02898007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26000228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x000000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x27000129, 0x02b10140, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x27200129, 0x02b10160, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x27400129, 0x02b10180, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x27600129, 0x02b101a0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x27800129, 0x02b101c0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x27a00129, 0x02b101e0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x27c00129, 0x02b10200, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x27e00129, 0x02b10220, 0x00000000 }, |
{ 0x00600001, 0x20400022, 0x008d0700, 0x00000000 }, |
{ 0x00600001, 0x20600022, 0x008d0720, 0x00000000 }, |
{ 0x00600001, 0x20800022, 0x008d0740, 0x00000000 }, |
{ 0x00600001, 0x20a00022, 0x008d0760, 0x00000000 }, |
{ 0x00600001, 0x20c00022, 0x008d0780, 0x00000000 }, |
{ 0x00600001, 0x20e00022, 0x008d07a0, 0x00000000 }, |
{ 0x00600001, 0x21000022, 0x008d07c0, 0x00000000 }, |
{ 0x00600001, 0x21200022, 0x008d07e0, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x12094007 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff32 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff2c }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_load_save_pl3.asm |
---|
0,0 → 1,17 |
// Module name: NV12_LOAD_SAVE_PL3 |
.kernel NV12_LOAD_SAVE_PL3 |
.code |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "NV12_Load_8x4.asm" |
#include "PL8x4_Save_IMC3.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of nv12_load_save_pl3.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_load_save_pl3.g4b.gen5 |
---|
0,0 → 1,105 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a001 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02600031, 0x28000c01, 0x408d0000, 0x0228a002 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x00d20820, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x00d20821, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x00d20800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x00d20801, 0x00000000 }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x28000c01, 0x408d0000, 0x0218a008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x29000c01, 0x408d0000, 0x0218a009 }, |
{ 0x00800001, 0x28200229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x008d0900, 0x00000000 }, |
{ 0x00000001, 0x26000228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x000000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x00910001, 0x22400231, 0x028d0800, 0x00000000 }, |
{ 0x00910001, 0x23400231, 0x028d0900, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41410231, 0x02b10701, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x00910001, 0x22500231, 0x028d0810, 0x00000000 }, |
{ 0x00910001, 0x23500231, 0x028d0910, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41810231, 0x02b10721, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x00910001, 0x22600231, 0x028d0820, 0x00000000 }, |
{ 0x00910001, 0x23600231, 0x028d0920, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41c10231, 0x02b10741, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x00910001, 0x22700231, 0x028d0830, 0x00000000 }, |
{ 0x00910001, 0x23700231, 0x028d0930, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42010231, 0x02b10761, 0x00000000 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x0a082007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20260, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x04082008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20360, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x04082009 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff4a }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff44 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_load_save_pl3.g6b |
---|
0,0 → 1,178 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498001 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000040, 0x02298002 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x00d20820, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x00d20821, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x00d20800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x00d20801, 0x00000000 }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000020, 0x02198008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x29000cc1, 0x00000020, 0x02198009 }, |
{ 0x00800001, 0x28200229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x008d0900, 0x00000000 }, |
{ 0x00000001, 0x26000228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x000000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x00910001, 0x22400231, 0x028d0800, 0x00000000 }, |
{ 0x00910001, 0x23400231, 0x028d0900, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41410231, 0x02b10701, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x00910001, 0x22500231, 0x028d0810, 0x00000000 }, |
{ 0x00910001, 0x23500231, 0x028d0910, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41810231, 0x02b10721, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x00910001, 0x22600231, 0x028d0820, 0x00000000 }, |
{ 0x00910001, 0x23600231, 0x028d0920, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41c10231, 0x02b10741, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x00910001, 0x22700231, 0x028d0830, 0x00000000 }, |
{ 0x00910001, 0x23700231, 0x028d0930, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42010231, 0x02b10761, 0x00000000 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x0a094007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20260, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x04094008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20360, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x04094009 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff4a }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff44 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_scaling_nv12.asm |
---|
0,0 → 1,20 |
// Module name: NV12_SCALING_NV12 |
.kernel NV12_SCALING_NV12 |
.code |
#define INC_SCALING |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "PL2_Scaling.asm" |
#include "PL16x8_PL8x4.asm" |
#include "PL8x4_Save_NV12.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of nv12_scaling_nv12.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_scaling_nv12.g4b.gen5 |
---|
0,0 → 1,222 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00400001, 0x254002fd, 0x00000000, 0x48403000 }, |
{ 0x00400001, 0x255002fd, 0x00000000, 0x5c585450 }, |
{ 0x00600040, 0x25607fbd, 0x008d0540, 0x41000000 }, |
{ 0x00200401, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x00000000 }, |
{ 0x00802001, 0x208003be, 0x000000a8, 0x00000000 }, |
{ 0x00802001, 0x258003bd, 0x000000a8, 0x00000000 }, |
{ 0x00802001, 0x240003bc, 0x000000a4, 0x00000000 }, |
{ 0x00802048, 0x204077be, 0x000000bc, 0x008d0540 }, |
{ 0x00000401, 0x257003fd, 0x00000000, 0x437f0000 }, |
{ 0x00000801, 0x257c03fd, 0x00000000, 0x3f000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01800031, 0x27001c09, 0x208d0000, 0x0a8a0101 }, |
{ 0x01800031, 0x28001c09, 0x208d0000, 0x0a8a0202 }, |
{ 0x00802040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00802040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00802001, 0x27000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00802001, 0x28000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00802001, 0x28400381, 0x00b10400, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01800031, 0x27001c09, 0x208d0000, 0x0a8a0101 }, |
{ 0x01800031, 0x28001c09, 0x208d0000, 0x0a8a0202 }, |
{ 0x00802040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00802040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00802001, 0x27000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00802001, 0x28000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00802001, 0x28400381, 0x00b10400, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01800031, 0x27001c09, 0x208d0000, 0x0a8a0101 }, |
{ 0x01800031, 0x28001c09, 0x208d0000, 0x0a8a0202 }, |
{ 0x00802040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00802040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00802001, 0x27000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00802001, 0x28000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00802001, 0x28400381, 0x00b10400, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22800229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23800229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01800031, 0x27001c09, 0x208d0000, 0x0a8a0101 }, |
{ 0x01800031, 0x28001c09, 0x208d0000, 0x0a8a0202 }, |
{ 0x00802040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00802040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00802001, 0x27000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00802001, 0x28000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00802001, 0x28400381, 0x00b10400, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22a00229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23a00229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01800031, 0x27001c09, 0x208d0000, 0x0a8a0101 }, |
{ 0x01800031, 0x28001c09, 0x208d0000, 0x0a8a0202 }, |
{ 0x00802040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00802040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00802001, 0x27000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00802001, 0x28000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00802001, 0x28400381, 0x00b10400, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22c00229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23c00229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01800031, 0x27001c09, 0x208d0000, 0x0a8a0101 }, |
{ 0x01800031, 0x28001c09, 0x208d0000, 0x0a8a0202 }, |
{ 0x00802040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00802040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00802001, 0x27000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00802001, 0x28000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00802001, 0x28400381, 0x00b10400, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22e00229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23e00229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01800031, 0x27001c09, 0x208d0000, 0x0a8a0101 }, |
{ 0x01800031, 0x28001c09, 0x208d0000, 0x0a8a0202 }, |
{ 0x00802040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00802040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00802001, 0x27000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00802001, 0x28000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00802001, 0x28400381, 0x00b10400, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x23000229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x24000229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01800031, 0x27001c09, 0x208d0000, 0x0a8a0101 }, |
{ 0x01800031, 0x28001c09, 0x208d0000, 0x0a8a0202 }, |
{ 0x00802040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00802040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00802001, 0x27000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00802001, 0x28000381, 0x00b10400, 0x00000000 }, |
{ 0x00802059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00802001, 0x28400381, 0x00b10400, 0x00000000 }, |
{ 0x00800001, 0x22200229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x23200229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x22400129, 0x00ae0240, 0x00000000 }, |
{ 0x00600001, 0x23400129, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0x22500129, 0x00ae0280, 0x00000000 }, |
{ 0x00600001, 0x23500129, 0x00ae0380, 0x00000000 }, |
{ 0x00600001, 0x22600129, 0x00ae02c0, 0x00000000 }, |
{ 0x00600001, 0x23600129, 0x00ae03c0, 0x00000000 }, |
{ 0x00600001, 0x22700129, 0x00ae0300, 0x00000000 }, |
{ 0x00600001, 0x23700129, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x28000c01, 0x408d0000, 0x0228a008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x0a082007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x06082008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00000041, 0x24407fbd, 0x000000bc, 0x41800000 }, |
{ 0x00000040, 0x20a477bd, 0x00000440, 0x000000a4 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xfffffe66 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000001, 0x20a403bd, 0x00000094, 0x00000000 }, |
{ 0x00000041, 0x24407fbd, 0x00000038, 0x41000000 }, |
{ 0x00000040, 0x20a877bd, 0x00000440, 0x000000a8 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffe5a }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/nv12_scaling_nv12.g6b |
---|
0,0 → 1,295 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00400001, 0x254002fd, 0x00000000, 0x48403000 }, |
{ 0x00400001, 0x255002fd, 0x00000000, 0x5c585450 }, |
{ 0x00600040, 0x25607fbd, 0x008d0540, 0x41000000 }, |
{ 0x00200401, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x208003be, 0x000000a8, 0x00000000 }, |
{ 0x00800001, 0x258003bd, 0x000000a8, 0x00000000 }, |
{ 0x00800001, 0x240003bc, 0x000000a4, 0x00000000 }, |
{ 0x00800048, 0x204077be, 0x000000bc, 0x008d0540 }, |
{ 0x00000401, 0x257003fd, 0x00000000, 0x437f0000 }, |
{ 0x00000801, 0x257c03fd, 0x00000000, 0x3f000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x02800031, 0x27001cc9, 0x00000020, 0x0a8a0101 }, |
{ 0x02800031, 0x28001cc9, 0x00000020, 0x0a8a0202 }, |
{ 0x00800040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00800040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00800001, 0x27000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00800001, 0x28000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00800001, 0x28400381, 0x008d0400, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x02800031, 0x27001cc9, 0x00000020, 0x0a8a0101 }, |
{ 0x02800031, 0x28001cc9, 0x00000020, 0x0a8a0202 }, |
{ 0x00800040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00800040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00800001, 0x27000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00800001, 0x28000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00800001, 0x28400381, 0x008d0400, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x02800031, 0x27001cc9, 0x00000020, 0x0a8a0101 }, |
{ 0x02800031, 0x28001cc9, 0x00000020, 0x0a8a0202 }, |
{ 0x00800040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00800040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00800001, 0x27000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00800001, 0x28000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00800001, 0x28400381, 0x008d0400, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22800229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23800229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x02800031, 0x27001cc9, 0x00000020, 0x0a8a0101 }, |
{ 0x02800031, 0x28001cc9, 0x00000020, 0x0a8a0202 }, |
{ 0x00800040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00800040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00800001, 0x27000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00800001, 0x28000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00800001, 0x28400381, 0x008d0400, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22a00229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23a00229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x02800031, 0x27001cc9, 0x00000020, 0x0a8a0101 }, |
{ 0x02800031, 0x28001cc9, 0x00000020, 0x0a8a0202 }, |
{ 0x00800040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00800040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00800001, 0x27000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00800001, 0x28000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00800001, 0x28400381, 0x008d0400, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22c00229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23c00229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x02800031, 0x27001cc9, 0x00000020, 0x0a8a0101 }, |
{ 0x02800031, 0x28001cc9, 0x00000020, 0x0a8a0202 }, |
{ 0x00800040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00800040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00800001, 0x27000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00800001, 0x28000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00800001, 0x28400381, 0x008d0400, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x22e00229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x23e00229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x02800031, 0x27001cc9, 0x00000020, 0x0a8a0101 }, |
{ 0x02800031, 0x28001cc9, 0x00000020, 0x0a8a0202 }, |
{ 0x00800040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00800040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00800001, 0x27000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00800001, 0x28000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00800001, 0x28400381, 0x008d0400, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x23000229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x24000229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x02800031, 0x27001cc9, 0x00000020, 0x0a8a0101 }, |
{ 0x02800031, 0x28001cc9, 0x00000020, 0x0a8a0202 }, |
{ 0x00800040, 0x208077be, 0x008d0580, 0x00000038 }, |
{ 0x00800040, 0x258077bd, 0x008d0580, 0x00000038 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0700 }, |
{ 0x00800001, 0x27000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0800 }, |
{ 0x00800001, 0x28000381, 0x008d0400, 0x00000000 }, |
{ 0x00800059, 0x240077bc, 0x00000570, 0x008d0840 }, |
{ 0x00800001, 0x28400381, 0x008d0400, 0x00000000 }, |
{ 0x00800001, 0x22200229, 0x00cf0700, 0x00000000 }, |
{ 0x00800001, 0x23200229, 0x00cf0800, 0x00000000 }, |
{ 0x00800001, 0x24200229, 0x00cf0840, 0x00000000 }, |
{ 0x00600001, 0x22400129, 0x00ae0240, 0x00000000 }, |
{ 0x00600001, 0x23400129, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0x22500129, 0x00ae0280, 0x00000000 }, |
{ 0x00600001, 0x23500129, 0x00ae0380, 0x00000000 }, |
{ 0x00600001, 0x22600129, 0x00ae02c0, 0x00000000 }, |
{ 0x00600001, 0x23600129, 0x00ae03c0, 0x00000000 }, |
{ 0x00600001, 0x22700129, 0x00ae0300, 0x00000000 }, |
{ 0x00600001, 0x23700129, 0x00ae0400, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000020, 0x02298008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x0a094007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x06094008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00000041, 0x24407fbd, 0x000000bc, 0x41800000 }, |
{ 0x00000040, 0x20a477bd, 0x00000440, 0x000000a4 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xfffffe66 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000001, 0x20a403bd, 0x00000094, 0x00000000 }, |
{ 0x00000041, 0x24407fbd, 0x00000038, 0x41000000 }, |
{ 0x00000040, 0x20a877bd, 0x00000440, 0x000000a8 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xfffffe5a }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/pa_load_save_nv12.asm |
---|
0,0 → 1,18 |
// Module name: PA_LOAD_SAVE_NV12 |
.kernel PA_LOAD_SAVE_NV12 |
.code |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "PA_Load_8x8.asm" |
#include "PL8x8_PL8x4.asm" |
#include "PL8x4_Save_NV12.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of nv12_load_save_pl1.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/pa_load_save_nv12.g4b.gen5 |
---|
0,0 → 1,120 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000009, 0x21003da5, 0x00000100, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007001f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0288a001 }, |
{ 0x00400040, 0x22083e28, 0x00690024, 0x07000700 }, |
{ 0x00800001, 0x21400229, 0x00d29000, 0x00000000 }, |
{ 0x00600001, 0x22400229, 0x00cf9400, 0x00000000 }, |
{ 0x00600001, 0x23400229, 0x00cf9800, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00d29020, 0x00000000 }, |
{ 0x00600001, 0x22500229, 0x00cf9420, 0x00000000 }, |
{ 0x00600001, 0x23500229, 0x00cf9820, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00d29040, 0x00000000 }, |
{ 0x00600001, 0x22600229, 0x00cf9440, 0x00000000 }, |
{ 0x00600001, 0x23600229, 0x00cf9840, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00d29060, 0x00000000 }, |
{ 0x00600001, 0x22700229, 0x00cf9460, 0x00000000 }, |
{ 0x00600001, 0x23700229, 0x00cf9860, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00d29080, 0x00000000 }, |
{ 0x00600001, 0x22800229, 0x00cf9480, 0x00000000 }, |
{ 0x00600001, 0x23800229, 0x00cf9880, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00d290a0, 0x00000000 }, |
{ 0x00600001, 0x22900229, 0x00cf94a0, 0x00000000 }, |
{ 0x00600001, 0x23900229, 0x00cf98a0, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00d290c0, 0x00000000 }, |
{ 0x00600001, 0x22a00229, 0x00cf94c0, 0x00000000 }, |
{ 0x00600001, 0x23a00229, 0x00cf98c0, 0x00000000 }, |
{ 0x00800001, 0x22200229, 0x00d290e0, 0x00000000 }, |
{ 0x00600001, 0x22b00229, 0x00cf94e0, 0x00000000 }, |
{ 0x00600001, 0x23b00229, 0x00cf98e0, 0x00000000 }, |
{ 0x00600001, 0x42500231, 0x00ae0260, 0x00000000 }, |
{ 0x00800001, 0x42600231, 0x00ce0280, 0x00000000 }, |
{ 0x00600001, 0x43500231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0x43600231, 0x00ce0380, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x28000c01, 0x408d0000, 0x0228a008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x0a082007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x06082008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff2c }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff26 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/pa_load_save_nv12.g6b |
---|
0,0 → 1,193 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000009, 0x21003da5, 0x00000100, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007001f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02898001 }, |
{ 0x00400040, 0x22083e28, 0x00690024, 0x07000700 }, |
{ 0x00800001, 0x21400229, 0x00d29000, 0x00000000 }, |
{ 0x00600001, 0x22400229, 0x00cf9400, 0x00000000 }, |
{ 0x00600001, 0x23400229, 0x00cf9800, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00d29020, 0x00000000 }, |
{ 0x00600001, 0x22500229, 0x00cf9420, 0x00000000 }, |
{ 0x00600001, 0x23500229, 0x00cf9820, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00d29040, 0x00000000 }, |
{ 0x00600001, 0x22600229, 0x00cf9440, 0x00000000 }, |
{ 0x00600001, 0x23600229, 0x00cf9840, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00d29060, 0x00000000 }, |
{ 0x00600001, 0x22700229, 0x00cf9460, 0x00000000 }, |
{ 0x00600001, 0x23700229, 0x00cf9860, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00d29080, 0x00000000 }, |
{ 0x00600001, 0x22800229, 0x00cf9480, 0x00000000 }, |
{ 0x00600001, 0x23800229, 0x00cf9880, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00d290a0, 0x00000000 }, |
{ 0x00600001, 0x22900229, 0x00cf94a0, 0x00000000 }, |
{ 0x00600001, 0x23900229, 0x00cf98a0, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00d290c0, 0x00000000 }, |
{ 0x00600001, 0x22a00229, 0x00cf94c0, 0x00000000 }, |
{ 0x00600001, 0x23a00229, 0x00cf98c0, 0x00000000 }, |
{ 0x00800001, 0x22200229, 0x00d290e0, 0x00000000 }, |
{ 0x00600001, 0x22b00229, 0x00cf94e0, 0x00000000 }, |
{ 0x00600001, 0x23b00229, 0x00cf98e0, 0x00000000 }, |
{ 0x00600001, 0x42500231, 0x00ae0260, 0x00000000 }, |
{ 0x00800001, 0x42600231, 0x00ce0280, 0x00000000 }, |
{ 0x00600001, 0x43500231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0x43600231, 0x00ce0380, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000020, 0x02298008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x0a094007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x06094008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff2c }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff26 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/pa_load_save_pl3.asm |
---|
0,0 → 1,18 |
// Module name: PA_LOAD_SAVE_PL3 |
.kernel PA_LOAD_SAVE_PL3 |
.code |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "PA_Load_8x8.asm" |
#include "PL8x8_PL8x4.asm" |
#include "PL8x4_Save_IMC3.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of pa_load_save_pl3.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/pa_load_save_pl3.g4b.gen5 |
---|
0,0 → 1,123 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000009, 0x21003da5, 0x00000100, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007001f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0288a001 }, |
{ 0x00400040, 0x22083e28, 0x00690024, 0x07000700 }, |
{ 0x00800001, 0x21400229, 0x00d29000, 0x00000000 }, |
{ 0x00600001, 0x22400229, 0x00cf9400, 0x00000000 }, |
{ 0x00600001, 0x23400229, 0x00cf9800, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00d29020, 0x00000000 }, |
{ 0x00600001, 0x22500229, 0x00cf9420, 0x00000000 }, |
{ 0x00600001, 0x23500229, 0x00cf9820, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00d29040, 0x00000000 }, |
{ 0x00600001, 0x22600229, 0x00cf9440, 0x00000000 }, |
{ 0x00600001, 0x23600229, 0x00cf9840, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00d29060, 0x00000000 }, |
{ 0x00600001, 0x22700229, 0x00cf9460, 0x00000000 }, |
{ 0x00600001, 0x23700229, 0x00cf9860, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00d29080, 0x00000000 }, |
{ 0x00600001, 0x22800229, 0x00cf9480, 0x00000000 }, |
{ 0x00600001, 0x23800229, 0x00cf9880, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00d290a0, 0x00000000 }, |
{ 0x00600001, 0x22900229, 0x00cf94a0, 0x00000000 }, |
{ 0x00600001, 0x23900229, 0x00cf98a0, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00d290c0, 0x00000000 }, |
{ 0x00600001, 0x22a00229, 0x00cf94c0, 0x00000000 }, |
{ 0x00600001, 0x23a00229, 0x00cf98c0, 0x00000000 }, |
{ 0x00800001, 0x22200229, 0x00d290e0, 0x00000000 }, |
{ 0x00600001, 0x22b00229, 0x00cf94e0, 0x00000000 }, |
{ 0x00600001, 0x23b00229, 0x00cf98e0, 0x00000000 }, |
{ 0x00600001, 0x42500231, 0x00ae0260, 0x00000000 }, |
{ 0x00800001, 0x42600231, 0x00ce0280, 0x00000000 }, |
{ 0x00600001, 0x43500231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0x43600231, 0x00ce0380, 0x00000000 }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000005a }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x28000c01, 0x408d0000, 0x0218a008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x29000c01, 0x408d0000, 0x0218a009 }, |
{ 0x00800001, 0x28600229, 0x008d0830, 0x00000000 }, |
{ 0x00800001, 0x29600229, 0x008d0930, 0x00000000 }, |
{ 0x00800001, 0x28400229, 0x008d0820, 0x00000000 }, |
{ 0x00800001, 0x29400229, 0x008d0920, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x008d0900, 0x00000000 }, |
{ 0x00000001, 0x26000228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x000000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x00910001, 0x22400231, 0x028d0800, 0x00000000 }, |
{ 0x00910001, 0x23400231, 0x028d0900, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41410231, 0x02b10701, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x00910001, 0x22500231, 0x028d0810, 0x00000000 }, |
{ 0x00910001, 0x23500231, 0x028d0910, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41810231, 0x02b10721, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x00910001, 0x22600231, 0x028d0820, 0x00000000 }, |
{ 0x00910001, 0x23600231, 0x028d0920, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41c10231, 0x02b10741, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x00910001, 0x22700231, 0x028d0830, 0x00000000 }, |
{ 0x00910001, 0x23700231, 0x028d0930, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42010231, 0x02b10761, 0x00000000 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x0a082007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20260, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x04082008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20360, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x04082009 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff26 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff20 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/pa_load_save_pl3.g6b |
---|
0,0 → 1,196 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000009, 0x21003da5, 0x00000100, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007001f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02898001 }, |
{ 0x00400040, 0x22083e28, 0x00690024, 0x07000700 }, |
{ 0x00800001, 0x21400229, 0x00d29000, 0x00000000 }, |
{ 0x00600001, 0x22400229, 0x00cf9400, 0x00000000 }, |
{ 0x00600001, 0x23400229, 0x00cf9800, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00d29020, 0x00000000 }, |
{ 0x00600001, 0x22500229, 0x00cf9420, 0x00000000 }, |
{ 0x00600001, 0x23500229, 0x00cf9820, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00d29040, 0x00000000 }, |
{ 0x00600001, 0x22600229, 0x00cf9440, 0x00000000 }, |
{ 0x00600001, 0x23600229, 0x00cf9840, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00d29060, 0x00000000 }, |
{ 0x00600001, 0x22700229, 0x00cf9460, 0x00000000 }, |
{ 0x00600001, 0x23700229, 0x00cf9860, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00d29080, 0x00000000 }, |
{ 0x00600001, 0x22800229, 0x00cf9480, 0x00000000 }, |
{ 0x00600001, 0x23800229, 0x00cf9880, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00d290a0, 0x00000000 }, |
{ 0x00600001, 0x22900229, 0x00cf94a0, 0x00000000 }, |
{ 0x00600001, 0x23900229, 0x00cf98a0, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00d290c0, 0x00000000 }, |
{ 0x00600001, 0x22a00229, 0x00cf94c0, 0x00000000 }, |
{ 0x00600001, 0x23a00229, 0x00cf98c0, 0x00000000 }, |
{ 0x00800001, 0x22200229, 0x00d290e0, 0x00000000 }, |
{ 0x00600001, 0x22b00229, 0x00cf94e0, 0x00000000 }, |
{ 0x00600001, 0x23b00229, 0x00cf98e0, 0x00000000 }, |
{ 0x00600001, 0x42500231, 0x00ae0260, 0x00000000 }, |
{ 0x00800001, 0x42600231, 0x00ce0280, 0x00000000 }, |
{ 0x00600001, 0x43500231, 0x00ae0360, 0x00000000 }, |
{ 0x00800001, 0x43600231, 0x00ce0380, 0x00000000 }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000005a }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000020, 0x02198008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x29000cc1, 0x00000020, 0x02198009 }, |
{ 0x00800001, 0x28600229, 0x008d0830, 0x00000000 }, |
{ 0x00800001, 0x29600229, 0x008d0930, 0x00000000 }, |
{ 0x00800001, 0x28400229, 0x008d0820, 0x00000000 }, |
{ 0x00800001, 0x29400229, 0x008d0920, 0x00000000 }, |
{ 0x00800001, 0x28200229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x008d0900, 0x00000000 }, |
{ 0x00000001, 0x26000228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x000000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x00910001, 0x22400231, 0x028d0800, 0x00000000 }, |
{ 0x00910001, 0x23400231, 0x028d0900, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41410231, 0x02b10701, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x00910001, 0x22500231, 0x028d0810, 0x00000000 }, |
{ 0x00910001, 0x23500231, 0x028d0910, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41810231, 0x02b10721, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x00910001, 0x22600231, 0x028d0820, 0x00000000 }, |
{ 0x00910001, 0x23600231, 0x028d0920, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41c10231, 0x02b10741, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x00910001, 0x22700231, 0x028d0830, 0x00000000 }, |
{ 0x00910001, 0x23700231, 0x028d0930, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42010231, 0x02b10761, 0x00000000 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x0a094007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20260, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x04094008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20360, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x04094009 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff26 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff20 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/pl3_load_save_nv12.asm |
---|
0,0 → 1,17 |
// Module name: PL3_LOAD_SAVE_NV12 |
.kernel PL3_LOAD_SAVE_NV12 |
.code |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "IMC3_Load_8x4.asm" |
#include "PL8x4_Save_NV12.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of pl3_load_save_nv12.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/pl3_load_save_nv12.g4b.gen5 |
---|
0,0 → 1,108 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a001 }, |
{ 0x0020000c, 0x21003ca5, 0x00450100, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02600031, 0x28000c01, 0x408d0000, 0x0218a002 }, |
{ 0x00600001, 0x20600022, 0x008d0100, 0x00000000 }, |
{ 0x02600031, 0x29000c01, 0x408d0000, 0x0218a003 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x008d0900, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x28000c01, 0x408d0000, 0x0228a008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x0a082007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x06082008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff44 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff3e }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/pl3_load_save_nv12.g6b |
---|
0,0 → 1,181 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498001 }, |
{ 0x0020000c, 0x21003ca5, 0x00450100, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000040, 0x02198002 }, |
{ 0x00600001, 0x20600022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x29000cc1, 0x00000040, 0x02198003 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x008d0900, 0x00000000 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00200001, 0x202001a6, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x20280062, 0x00000000, 0x0007000f }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000056 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498007 }, |
{ 0x0000040c, 0x21043da1, 0x000000a2, 0x00010001 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000020, 0x02298008 }, |
{ 0x00200001, 0x210001a1, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26020228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x020000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x02000000, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00040001 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00400010 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x04000100 }, |
{ 0x00000001, 0x246c0061, 0x00000000, 0x40001000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000440, 0x008d0460 }, |
{ 0x00710001, 0x42400231, 0x02ae0800, 0x00000000 }, |
{ 0x00710001, 0x43400231, 0x02ae0801, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41600231, 0x02b10710, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000444, 0x008d0460 }, |
{ 0x00710001, 0x42500231, 0x02ae0810, 0x00000000 }, |
{ 0x00710001, 0x43500231, 0x02ae0811, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41a00231, 0x02b10730, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x02000448, 0x008d0460 }, |
{ 0x00710001, 0x42600231, 0x02ae0820, 0x00000000 }, |
{ 0x00710001, 0x43600231, 0x02ae0821, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41e00231, 0x02b10750, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x02600005, 0x2000252c, 0x0200044c, 0x008d0460 }, |
{ 0x00710001, 0x42700231, 0x02ae0830, 0x00000000 }, |
{ 0x00710001, 0x43700231, 0x02ae0831, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42200231, 0x02b10770, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x0a094007 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x0000000c, 0x21043ca5, 0x00000104, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x40400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x40410232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x40600232, 0x00d20260, 0x00000000 }, |
{ 0x00800001, 0x40610232, 0x00d20360, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x06094008 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff44 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff3e }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/pl3_load_save_pa.asm |
---|
0,0 → 1,18 |
// Module name: PL3_LOAD_SAVE_pa |
.kernel PL3_LOAD_SAVE_PA // what's usage of it? just a name? |
.code |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "IMC3_Load_8x5.asm" |
#include "PL8x5_PL8x8.asm" |
#include "PL8x8_Save_PA.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of pl3_load_save_pa.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/pl3_load_save_pa.g4b.gen5 |
---|
0,0 → 1,119 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a001 }, |
{ 0x0020000c, 0x21003ca5, 0x00450100, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00040007 }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02600031, 0x28000c01, 0x408d0000, 0x0228a002 }, |
{ 0x00600001, 0x20600022, 0x008d0100, 0x00000000 }, |
{ 0x02600031, 0x29000c01, 0x408d0000, 0x0228a003 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22800229, 0x008d0820, 0x00000000 }, |
{ 0x00800001, 0x23800229, 0x008d0920, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x008d0900, 0x00000000 }, |
{ 0x80600042, 0x22b02529, 0x008d0270, 0x008d0280 }, |
{ 0x80600042, 0x23b02529, 0x008d0370, 0x008d0380 }, |
{ 0x00600001, 0x22a00129, 0x008d0270, 0x00000000 }, |
{ 0x80600042, 0x22902529, 0x008d0260, 0x008d0270 }, |
{ 0x00600001, 0x23a00129, 0x008d0370, 0x00000000 }, |
{ 0x80600042, 0x23902529, 0x008d0360, 0x008d0370 }, |
{ 0x00600001, 0x22800129, 0x008d0260, 0x00000000 }, |
{ 0x80600042, 0x22702529, 0x008d0250, 0x008d0260 }, |
{ 0x00600001, 0x23800129, 0x008d0360, 0x00000000 }, |
{ 0x80600042, 0x23702529, 0x008d0350, 0x008d0360 }, |
{ 0x00600001, 0x22600129, 0x008d0250, 0x00000000 }, |
{ 0x80600042, 0x22502529, 0x008d0240, 0x008d0250 }, |
{ 0x00600001, 0x23600129, 0x008d0350, 0x00000000 }, |
{ 0x80600042, 0x23502529, 0x008d0340, 0x008d0350 }, |
{ 0x00400040, 0x22083e28, 0x00690028, 0x07000700 }, |
{ 0x00800001, 0xd0000231, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0xd0200231, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0xd0400231, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0xd0600231, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0xd0800231, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0xd0a00231, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0xd0c00231, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0xd0e00231, 0x00d20220, 0x00000000 }, |
{ 0x00600001, 0xf4000231, 0x00ae0240, 0x00000000 }, |
{ 0x00600001, 0xf8000231, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0xf4200231, 0x00ae0250, 0x00000000 }, |
{ 0x00600001, 0xf8200231, 0x00ae0350, 0x00000000 }, |
{ 0x00600001, 0xf4400231, 0x00ae0260, 0x00000000 }, |
{ 0x00600001, 0xf8400231, 0x00ae0360, 0x00000000 }, |
{ 0x00600001, 0xf4600231, 0x00ae0270, 0x00000000 }, |
{ 0x00600001, 0xf8600231, 0x00ae0370, 0x00000000 }, |
{ 0x00600001, 0xf4800231, 0x00ae0280, 0x00000000 }, |
{ 0x00600001, 0xf8800231, 0x00ae0380, 0x00000000 }, |
{ 0x00600001, 0xf4a00231, 0x00ae0290, 0x00000000 }, |
{ 0x00600001, 0xf8a00231, 0x00ae0390, 0x00000000 }, |
{ 0x00600001, 0xf4c00231, 0x00ae02a0, 0x00000000 }, |
{ 0x00600001, 0xf8c00231, 0x00ae03a0, 0x00000000 }, |
{ 0x00600001, 0xf4e00231, 0x00ae02b0, 0x00000000 }, |
{ 0x00600001, 0xf8e00231, 0x00ae03b0, 0x00000000 }, |
{ 0x00000409, 0x21003da5, 0x000000a0, 0x00010001 }, |
{ 0x00000c01, 0x210401a5, 0x000000a2, 0x00000000 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0007001f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000002a }, |
{ 0x01600031, 0x21400c01, 0x408d0000, 0x0288a007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26000228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x000000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x27000129, 0x02b10140, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x27200129, 0x02b10160, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x27400129, 0x02b10180, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x27600129, 0x02b101a0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x27800129, 0x02b101c0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x27a00129, 0x02b101e0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x27c00129, 0x02b10200, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x27e00129, 0x02b10220, 0x00000000 }, |
{ 0x00600001, 0x20400022, 0x008d0700, 0x00000000 }, |
{ 0x00600001, 0x20600022, 0x008d0720, 0x00000000 }, |
{ 0x00600001, 0x20800022, 0x008d0740, 0x00000000 }, |
{ 0x00600001, 0x20a00022, 0x008d0760, 0x00000000 }, |
{ 0x00600001, 0x20c00022, 0x008d0780, 0x00000000 }, |
{ 0x00600001, 0x20e00022, 0x008d07a0, 0x00000000 }, |
{ 0x00600001, 0x21000022, 0x008d07c0, 0x00000000 }, |
{ 0x00600001, 0x21200022, 0x008d07e0, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x12082007 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff2e }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff28 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/pl3_load_save_pa.g6b |
---|
0,0 → 1,192 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498001 }, |
{ 0x0020000c, 0x21003ca5, 0x00450100, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00040007 }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000040, 0x02298002 }, |
{ 0x00600001, 0x20600022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x29000cc1, 0x00000040, 0x02298003 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22800229, 0x008d0820, 0x00000000 }, |
{ 0x00800001, 0x23800229, 0x008d0920, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x008d0900, 0x00000000 }, |
{ 0x80600042, 0x22b02529, 0x008d0270, 0x008d0280 }, |
{ 0x80600042, 0x23b02529, 0x008d0370, 0x008d0380 }, |
{ 0x00600001, 0x22a00129, 0x008d0270, 0x00000000 }, |
{ 0x80600042, 0x22902529, 0x008d0260, 0x008d0270 }, |
{ 0x00600001, 0x23a00129, 0x008d0370, 0x00000000 }, |
{ 0x80600042, 0x23902529, 0x008d0360, 0x008d0370 }, |
{ 0x00600001, 0x22800129, 0x008d0260, 0x00000000 }, |
{ 0x80600042, 0x22702529, 0x008d0250, 0x008d0260 }, |
{ 0x00600001, 0x23800129, 0x008d0360, 0x00000000 }, |
{ 0x80600042, 0x23702529, 0x008d0350, 0x008d0360 }, |
{ 0x00600001, 0x22600129, 0x008d0250, 0x00000000 }, |
{ 0x80600042, 0x22502529, 0x008d0240, 0x008d0250 }, |
{ 0x00600001, 0x23600129, 0x008d0350, 0x00000000 }, |
{ 0x80600042, 0x23502529, 0x008d0340, 0x008d0350 }, |
{ 0x00400040, 0x22083e28, 0x00690028, 0x07000700 }, |
{ 0x00800001, 0xd0000231, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0xd0200231, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0xd0400231, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0xd0600231, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0xd0800231, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0xd0a00231, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0xd0c00231, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0xd0e00231, 0x00d20220, 0x00000000 }, |
{ 0x00600001, 0xf4000231, 0x00ae0240, 0x00000000 }, |
{ 0x00600001, 0xf8000231, 0x00ae0340, 0x00000000 }, |
{ 0x00600001, 0xf4200231, 0x00ae0250, 0x00000000 }, |
{ 0x00600001, 0xf8200231, 0x00ae0350, 0x00000000 }, |
{ 0x00600001, 0xf4400231, 0x00ae0260, 0x00000000 }, |
{ 0x00600001, 0xf8400231, 0x00ae0360, 0x00000000 }, |
{ 0x00600001, 0xf4600231, 0x00ae0270, 0x00000000 }, |
{ 0x00600001, 0xf8600231, 0x00ae0370, 0x00000000 }, |
{ 0x00600001, 0xf4800231, 0x00ae0280, 0x00000000 }, |
{ 0x00600001, 0xf8800231, 0x00ae0380, 0x00000000 }, |
{ 0x00600001, 0xf4a00231, 0x00ae0290, 0x00000000 }, |
{ 0x00600001, 0xf8a00231, 0x00ae0390, 0x00000000 }, |
{ 0x00600001, 0xf4c00231, 0x00ae02a0, 0x00000000 }, |
{ 0x00600001, 0xf8c00231, 0x00ae03a0, 0x00000000 }, |
{ 0x00600001, 0xf4e00231, 0x00ae02b0, 0x00000000 }, |
{ 0x00600001, 0xf8e00231, 0x00ae03b0, 0x00000000 }, |
{ 0x00000409, 0x21003da5, 0x000000a0, 0x00010001 }, |
{ 0x00000c01, 0x210401a5, 0x000000a2, 0x00000000 }, |
{ 0x00000801, 0x21080061, 0x00000000, 0x0007001f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x0000002a }, |
{ 0x04600031, 0x21400cc1, 0x00000020, 0x02898007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00000001, 0x26000228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x000000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x27000129, 0x02b10140, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x27200129, 0x02b10160, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x27400129, 0x02b10180, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x27600129, 0x02b101a0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x27800129, 0x02b101c0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x27a00129, 0x02b101e0, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x27c00129, 0x02b10200, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x27e00129, 0x02b10220, 0x00000000 }, |
{ 0x00600001, 0x20400022, 0x008d0700, 0x00000000 }, |
{ 0x00600001, 0x20600022, 0x008d0720, 0x00000000 }, |
{ 0x00600001, 0x20800022, 0x008d0740, 0x00000000 }, |
{ 0x00600001, 0x20a00022, 0x008d0760, 0x00000000 }, |
{ 0x00600001, 0x20c00022, 0x008d0780, 0x00000000 }, |
{ 0x00600001, 0x20e00022, 0x008d07a0, 0x00000000 }, |
{ 0x00600001, 0x21000022, 0x008d07c0, 0x00000000 }, |
{ 0x00600001, 0x21200022, 0x008d07e0, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x12094007 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff2e }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff28 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/pl3_load_save_pl3.asm |
---|
0,0 → 1,17 |
// Module name: PL3_LOAD_SAVE_pl3 |
.kernel PL3_LOAD_SAVE_PL3 |
.code |
#include "SetupVPKernel.asm" |
#include "Multiple_Loop_Head.asm" |
#include "IMC3_Load_8x4.asm" |
#include "PL8x4_Save_IMC3.asm" |
#include "Multiple_Loop.asm" |
END_THREAD // End of Thread |
.end_code |
.end_kernel |
// end of pl3_load_save_pl3.asm |
/drivers/video/i965/shaders/post_processing/gen5_6/pl3_load_save_pl3.g4b.gen5 |
---|
0,0 → 1,107 |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a001 }, |
{ 0x0020000c, 0x21003ca5, 0x00450100, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x02600031, 0x28000c01, 0x408d0000, 0x0218a002 }, |
{ 0x00600001, 0x20600022, 0x008d0100, 0x00000000 }, |
{ 0x02600031, 0x29000c01, 0x408d0000, 0x0218a003 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x008d0900, 0x00000000 }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x27000c01, 0x408d0000, 0x0248a007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x28000c01, 0x408d0000, 0x0218a008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x01600031, 0x29000c01, 0x408d0000, 0x0218a009 }, |
{ 0x00800001, 0x28200229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x008d0900, 0x00000000 }, |
{ 0x00000001, 0x26000228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x000000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x00910001, 0x22400231, 0x028d0800, 0x00000000 }, |
{ 0x00910001, 0x23400231, 0x028d0900, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41410231, 0x02b10701, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x00910001, 0x22500231, 0x028d0810, 0x00000000 }, |
{ 0x00910001, 0x23500231, 0x028d0910, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41810231, 0x02b10721, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x00910001, 0x22600231, 0x028d0820, 0x00000000 }, |
{ 0x00910001, 0x23600231, 0x028d0920, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41c10231, 0x02b10741, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x00910001, 0x22700231, 0x028d0830, 0x00000000 }, |
{ 0x00910001, 0x23700231, 0x028d0930, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42010231, 0x02b10761, 0x00000000 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x0a082007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20260, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x04082008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20360, 0x00000000 }, |
{ 0x01600031, 0x20000c04, 0x508d0000, 0x04082009 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff46 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff40 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x0f000031, 0x20000c04, 0x708d0000, 0x82000000 }, |
/drivers/video/i965/shaders/post_processing/gen5_6/pl3_load_save_pl3.g6b |
---|
0,0 → 1,180 |
{ 0x00600001, 0x20e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x22e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x24e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x25e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x26e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x27e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29000061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29800061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29a00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x29e00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21000021, 0x008d0000, 0x00000000 }, |
{ 0x00000441, 0x20842e2d, 0x000000b7, 0x00100010 }, |
{ 0x00000c01, 0x2086022d, 0x000000bb, 0x00000000 }, |
{ 0x00000801, 0x208a01ad, 0x000000a0, 0x00000000 }, |
{ 0x00200001, 0x209403bd, 0x006600a4, 0x00000000 }, |
{ 0x00000040, 0x208435ad, 0x00000084, 0x000000a0 }, |
{ 0x00200040, 0x210035a5, 0x004500a0, 0x00450074 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498001 }, |
{ 0x0020000c, 0x21003ca5, 0x00450100, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20400022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000040, 0x02198002 }, |
{ 0x00600001, 0x20600022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x29000cc1, 0x00000040, 0x02198003 }, |
{ 0x00800001, 0x22200229, 0x00b10770, 0x00000000 }, |
{ 0x00800001, 0x22000229, 0x00b10760, 0x00000000 }, |
{ 0x00800001, 0x21e00229, 0x00b10750, 0x00000000 }, |
{ 0x00800001, 0x21c00229, 0x00b10740, 0x00000000 }, |
{ 0x00800001, 0x21a00229, 0x00b10730, 0x00000000 }, |
{ 0x00800001, 0x21800229, 0x00b10720, 0x00000000 }, |
{ 0x00800001, 0x21600229, 0x00b10710, 0x00000000 }, |
{ 0x00800001, 0x21400229, 0x00b10700, 0x00000000 }, |
{ 0x00800001, 0x22600229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x23600229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x22400229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x23400229, 0x008d0900, 0x00000000 }, |
{ 0x00000005, 0x24000c20, 0x000000b8, 0x00ffffff }, |
{ 0x04000010, 0x20000c04, 0x00000400, 0x00ffffff }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000052 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x27000cc1, 0x00000020, 0x02498007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x28000cc1, 0x00000020, 0x02198008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x04600031, 0x29000cc1, 0x00000020, 0x02198009 }, |
{ 0x00800001, 0x28200229, 0x008d0810, 0x00000000 }, |
{ 0x00800001, 0x29200229, 0x008d0910, 0x00000000 }, |
{ 0x00800001, 0x28000229, 0x008d0800, 0x00000000 }, |
{ 0x00800001, 0x29000229, 0x008d0900, 0x00000000 }, |
{ 0x00000001, 0x26000228, 0x000000ba, 0x00000000 }, |
{ 0x00610001, 0x24400129, 0x000000b8, 0x00000000 }, |
{ 0x00710001, 0x24400169, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000440, 0x00000000 }, |
{ 0x00910001, 0x41400231, 0x02b10700, 0x00000000 }, |
{ 0x00910001, 0x22400231, 0x028d0800, 0x00000000 }, |
{ 0x00910001, 0x23400231, 0x028d0900, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000442, 0x00000000 }, |
{ 0x00910001, 0x41410231, 0x02b10701, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000444, 0x00000000 }, |
{ 0x00910001, 0x41800231, 0x02b10720, 0x00000000 }, |
{ 0x00910001, 0x22500231, 0x028d0810, 0x00000000 }, |
{ 0x00910001, 0x23500231, 0x028d0910, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000446, 0x00000000 }, |
{ 0x00910001, 0x41810231, 0x02b10721, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x00000448, 0x00000000 }, |
{ 0x00910001, 0x41c00231, 0x02b10740, 0x00000000 }, |
{ 0x00910001, 0x22600231, 0x028d0820, 0x00000000 }, |
{ 0x00910001, 0x23600231, 0x028d0920, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044a, 0x00000000 }, |
{ 0x00910001, 0x41c10231, 0x02b10741, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044c, 0x00000000 }, |
{ 0x00910001, 0x42000231, 0x02b10760, 0x00000000 }, |
{ 0x00910001, 0x22700231, 0x028d0830, 0x00000000 }, |
{ 0x00910001, 0x23700231, 0x028d0930, 0x00000000 }, |
{ 0x00000001, 0x26020128, 0x0000044e, 0x00000000 }, |
{ 0x00910001, 0x42010231, 0x02b10761, 0x00000000 }, |
{ 0x00200001, 0x210001a5, 0x004500a0, 0x00000000 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x0007000f }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20140, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20160, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00d20180, 0x00000000 }, |
{ 0x00800001, 0x20700232, 0x00d201a0, 0x00000000 }, |
{ 0x00800001, 0x20800232, 0x00d201c0, 0x00000000 }, |
{ 0x00800001, 0x20900232, 0x00d201e0, 0x00000000 }, |
{ 0x00800001, 0x20a00232, 0x00d20200, 0x00000000 }, |
{ 0x00800001, 0x20b00232, 0x00d20220, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x0a094007 }, |
{ 0x0020000c, 0x21003da5, 0x004500a0, 0x00010001 }, |
{ 0x00000001, 0x21080061, 0x00000000, 0x00030007 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20240, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20260, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x04094008 }, |
{ 0x00600001, 0x20200022, 0x008d0100, 0x00000000 }, |
{ 0x00800001, 0x20400232, 0x00d20340, 0x00000000 }, |
{ 0x00800001, 0x20500232, 0x00d20360, 0x00000000 }, |
{ 0x05600031, 0x20000cc4, 0x00000020, 0x04094009 }, |
{ 0x01000040, 0x20863dad, 0x00000086, 0xffffffff }, |
{ 0x00000040, 0x20a03dad, 0x000000a0, 0x00100010 }, |
{ 0x05000010, 0x200035ac, 0x020000a0, 0x00000084 }, |
{ 0x00010220, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0xffffff46 }, |
{ 0x00000001, 0x20a001ad, 0x0000008a, 0x00000000 }, |
{ 0x00000040, 0x20a23dad, 0x000000a2, 0x00080008 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0xffffff40 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
{ 0x00600001, 0x21e00022, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001cc4, 0x000001e0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/DI_Core.g4a |
---|
0,0 → 1,309 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 22 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// End of common.inc |
// FileName: DI.asm |
// Author: Vivek Kumar |
// Description: Tasks for DI only case (16x4 block) |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4AE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
/drivers/video/i965/shaders/post_processing/gen7/DI_Save_NV12_16x4.g4a |
---|
0,0 → 1,279 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 20 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// End of common.inc |
// FileName: DI_Save_NV12_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in NV12 format |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
mov (2) r27.0<1>:d r7.0<2;2,1>:w { NoDDClr } |
mov (1) r27.2<1>:ud 0x3000F:ud { NoDDChk } // Block width and height (16x4) |
//Bottom field Y |
mov (8) mudMSGHDR_DI_OUT1(1)<1> udDNDI_RESP(0,0) |
mov (8) mudMSGHDR_DI_OUT1(2)<1> udDNDI_RESP(0,8) |
// Top field Y |
mov (8) mudMSGHDR_DI_OUT2(1)<1> udDNDI_RESP(4,0) |
mov (8) mudMSGHDR_DI_OUT2(2)<1> udDNDI_RESP(4,8) |
//copy message desrcptor to the message header |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r23.0<1>:ud r27<8;8,1>:ud |
//Change origin to U/V block |
asr (1) r27.1<1>:d r27.1<0;1,0>:d 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) r27.2<1>:ud 0x1000F:ud { NoDDChk } // Block width and height (16x2) |
// Bottom field U/V |
mov (16) r21.0<2>:ub ubDNDI_RESP(2, 1)<32;8,2> { NoDDClr } |
mov (16) r21.1<2>:ub ubDNDI_RESP(2, 0)<32;8,2> { NoDDChk } |
// Top field U/V |
mov (16) r26.0<2>:ub ubDNDI_RESP(6, 1)<32;8,2> { NoDDClr } |
mov (16) r26.1<2>:ub ubDNDI_RESP(6, 0)<32;8,2> { NoDDChk } |
//copy message desrcptor to the message header |
mov (8) r21<1>:ud r27<8;8,1>:ud |
mov (8) r26<1>:ud r27<8;8,1>:ud |
//Send out Y component on previous frame to surface |
send (8) null<1>:d r18.0 0x5 0x60A801B:ud |
//Send out Y component on current frame to surface |
send (8) null<1>:d r23.0 0x5 0x60A801E:ud |
//Send out U/V component on previous frame to surface |
send (8) null<1>:d r21 0x5 0x40A801C:ud |
//Send out U/V component on current frame to surface |
send (8) null<1>:d r26 0x5 0x40A801F:ud |
/drivers/video/i965/shaders/post_processing/gen7/DI_Save_PA_16x4.g4a |
---|
0,0 → 1,289 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 33 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// End of common.inc |
// FileName: DI_Save_PA_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in Packed format |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
add (4) a0.4<1>:uw r2.28<4;4,1>:ub 608:w // Initial Y,U,V offset in YUV422 block; it starts at m20 |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:d r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:d r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3001F:ud { NoDDChk } // Block width and height (32x8) |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r23.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y |
mov (16) r[a0.4, 0]<2> ubDNDI_RESP(0,0) { NoDDClr } |
mov (16) r[a0.4, 32]<2> ubDNDI_RESP(0,16) { NoDDClr } |
mov (16) r[a0.4, 64]<2> ubDNDI_RESP(0,32) { NoDDClr } |
mov (16) r[a0.4, 96]<2> ubDNDI_RESP(0,48) { NoDDClr } |
// Pack 2nd field U |
mov (8) r[a0.5, 0]<4> ubDNDI_RESP(2,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 32]<4> ubDNDI_RESP(2,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 64]<4> ubDNDI_RESP(2,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 96]<4> ubDNDI_RESP(2,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 2nd field V |
mov (8) r[a0.6, 0]<4> ubDNDI_RESP(2,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 32]<4> ubDNDI_RESP(2,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 64]<4> ubDNDI_RESP(2,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 96]<4> ubDNDI_RESP(2,48)<16;8,2> { NoDDChk } //Vpixels |
// Pack 1st field Y |
mov (16) r[a0.4, 160]<2> ubDNDI_RESP(4,0) { NoDDClr } |
mov (16) r[a0.4, 192]<2> ubDNDI_RESP(4,16) { NoDDClr } |
mov (16) r[a0.4, 224]<2> ubDNDI_RESP(4,32) { NoDDClr } |
mov (16) r[a0.4, 256]<2> ubDNDI_RESP(4,48) { NoDDClr } |
// Pack 1st field U |
mov (8) r[a0.5, 160]<4> ubDNDI_RESP(6,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 192]<4> ubDNDI_RESP(6,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 224]<4> ubDNDI_RESP(6,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 256]<4> ubDNDI_RESP(6,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 1st field V |
mov (8) r[a0.6, 160]<4> ubDNDI_RESP(6,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 192]<4> ubDNDI_RESP(6,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 224]<4> ubDNDI_RESP(6,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 256]<4> ubDNDI_RESP(6,48)<16;8,2> { NoDDChk } //Vpixels |
//save the previous frame |
send (8) null<1>:d r18.0 0x5 0xA0A801B:ud |
//save the current frame |
send (8) null<1>:d r23.0 0x5 0xA0A801E:ud |
/drivers/video/i965/shaders/post_processing/gen7/EOT.g4a |
---|
0,0 → 1,166 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 2 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
/drivers/video/i965/shaders/post_processing/gen7/Makefile.am |
---|
0,0 → 1,97 |
INTEL_PP_G7B = \ |
avs.g7b \ |
dndi.g7b \ |
nv12_dn_nv12.g7b \ |
pa_to_pl2.g7b \ |
pa_to_pl3.g7b \ |
pl2_to_pa.g7b \ |
pl2_to_pl2.g7b \ |
pl2_to_pl3.g7b \ |
pl3_to_pa.g7b \ |
pl3_to_pl2.g7b \ |
pl3_to_pl3.g7b \ |
$(NULL) |
INTEL_PP_G4A = \ |
DI_Core.g4a \ |
DI_Save_NV12_16x4.g4a \ |
DI_Save_PA_16x4.g4a \ |
EOT.g4a \ |
NV12_DI_NV12.g4a \ |
NV12_DNDI_422CP.g4a \ |
NV12_DNDI_PA.g4a \ |
NV12_DNUV_NV12.g4a \ |
NV12_DN_422CP.g4a \ |
NV12_DN_NV12.g4a \ |
PA_AVS_Buf_0.g4a \ |
PA_AVS_Buf_1.g4a \ |
PA_AVS_Buf_2.g4a \ |
PA_AVS_Buf_3.g4a \ |
PA_DI_422CP.g4a \ |
PA_DI_PA.g4a \ |
PA_DNDI_422CP.g4a \ |
PA_DNDI_PA.g4a \ |
PA_DNUV_PA.g4a \ |
PA_DN_422CP.g4a \ |
PA_DN_PA.g4a \ |
PL2_AVS_Buf_0.g4a \ |
PL2_AVS_Buf_1.g4a \ |
PL2_AVS_Buf_2.g4a \ |
PL2_AVS_Buf_3.g4a \ |
PL3_AVS_Buf_0.g4a \ |
PL3_AVS_Buf_1.g4a \ |
PL3_AVS_Buf_2.g4a \ |
PL3_AVS_Buf_3.g4a \ |
PL3_DNDI_422CP.g4a \ |
PL3_DNDI_PA.g4a \ |
PL3_DNUV_PL3.g4a \ |
PL3_DN_422CP.g4a \ |
PL3_DN_PL3.g4a \ |
PL_DI_422CP.g4a \ |
PL_DI_PA.g4a \ |
Save_AVS_PA.g4a \ |
Save_AVS_PL3.g4a \ |
Save_AVS_NV12.g4a \ |
Save_AVS_RGB.g4a \ |
Set_AVS_Buf_0123_BGRA.g4a \ |
Set_AVS_Buf_0123_PL2.g4a \ |
Set_AVS_Buf_0123_PL3.g4a \ |
Set_AVS_Buf_0123_VUYA.g4a \ |
Set_AVS_Buf_0123_VYUA.g4a \ |
Set_Layer_0.g4a \ |
VP_Setup.g4a \ |
$(NULL) |
INTEL_PP_ASM = $(INTEL_PP_G7B:%.g7b=%.asm) |
INTEL_PP_GEN7_ASM = $(INTEL_PP_G7B:%.g7b=%.g7s) |
INTEL_PP_G75B = $(INTEL_PP_G7B:%.g7b=%.g75b) |
TARGETS = |
if HAVE_GEN4ASM |
TARGETS += $(INTEL_PP_G7B) $(INTEL_PP_G75B) |
endif |
all-local: $(TARGETS) |
SUFFIXES = .g7b .g7s .asm |
$(INTEL_PP_GEN7_ASM): $(INTEL_PP_ASM) $(INTEL_PP_G4A) |
.asm.g7s: |
$(AM_V_GEN)cpp $< > _pp0.$@; \ |
../../gpp.py _pp0.$@ $@; \ |
rm _pp0.$@ |
.g7s.g7b: |
$(AM_V_GEN)intel-gen4asm -a -o $@ -g 7 $< |
.g7s.g75b: |
$(AM_V_GEN)intel-gen4asm -a -o $@ -g 7.5 $< |
CLEANFILES = $(INTEL_PP_GEN7_ASM) |
EXTRA_DIST = \ |
$(INTEL_PP_G7B) \ |
$(INTEL_PP_G75B) |
# Extra clean files so that maintainer-clean removes *everything* |
MAINTAINERCLEANFILES = Makefile.in |
/drivers/video/i965/shaders/post_processing/gen7/NV12_DI_NV12.g4a |
---|
0,0 → 1,392 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 57 // Total instruction count |
// 1 // Total kernel count |
.kernel NV12_DI_NV12 |
.code |
// FileName: DI.asm |
// Author: Vivek Kumar |
// Description: Tasks for DI only case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4AE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DI_Save_NV12_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in Packed format |
// add (4) a0.4<1>:uw r2.28<4;4,1>:ub 608:w // Initial Y,U,V offset in YUV422 block; it starts at m20 |
mov (8) r28.0<1>:ud r0.0<8;8,1>:ud |
mov (1) r28.0<1>:d r7.0<0;1,0>:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r28.1<1>:d r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r28.2<1>:ud 0x3000F:ud { NoDDChk } // Block width and height (32x8) |
//prepare the message headers |
mov (8) r18.0<1>:ud r28<8;8,1>:ud |
mov (8) r23.0<1>:ud r28<8;8,1>:ud |
//Bottom field Y |
mov (8) mudMSGHDR_DI_OUT1(1)<1> udDNDI_RESP(0,0) |
mov (8) mudMSGHDR_DI_OUT1(2)<1> udDNDI_RESP(0,8) |
// Top field Y |
mov (8) mudMSGHDR_DI_OUT2(1)<1> udDNDI_RESP(4,0) |
mov (8) mudMSGHDR_DI_OUT2(2)<1> udDNDI_RESP(4,8) |
//Change origin to U/V block |
asr (1) r28.1<1>:d r28.1<0;1,0>:d 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) r28.2<1>:ud 0x1000F:ud { NoDDChk } // Block width and height (16x2) |
// Bottom field U/V |
mov (16) r22.0<2>:ub ubDNDI_RESP(2, 1)<32;8,2> { NoDDClr } |
mov (16) r22.1<2>:ub ubDNDI_RESP(2, 0)<32;8,2> { NoDDChk } |
// Top field U/V |
mov (16) r27.0<2>:ub ubDNDI_RESP(6, 1)<32;8,2> { NoDDClr } |
mov (16) r27.1<2>:ub ubDNDI_RESP(6, 0)<32;8,2> { NoDDChk } |
//copy message desrcptor to the message header |
mov (8) r21<1>:ud r28<8;8,1>:ud |
mov (8) r26<1>:ud r28<8;8,1>:ud |
//Send out Y component on previous frame to surface |
send (8) null<1>:d r18 0x5 0x60A801B:ud |
//Send out Y component on current frame to surface |
send (8) null<1>:d r23 0x5 0x60A801E:ud |
//Send out U/V component on previous frame to surface |
send (8) null<1>:d r21 0x5 0x40A801C:ud |
//Send out U/V component on current frame to surface |
send (8) null<1>:d r26 0x5 0x40A801F:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/NV12_DNDI_422CP.g4a |
---|
0,0 → 1,557 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 116 // Total instruction count |
// 1 // Total kernel count |
.kernel NV12_DNDI_422CP |
.code |
// FileName: DNDI_PL_Core.asm |
// Author: Tatiya, Rupesh |
// FileName: DNDI_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN+DI case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4BE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (1) mudMSGHDR_HIST(1)<1> udDNDI_RESP(9,0)<0;1,0> // Move denoise history to MRF (4x1) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x3:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Load_UV_NV12_16x4.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x4 block through DATAPORT |
// FileName: UVCopy_Load_16x4.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x4 block through DATAPORT |
add (2) r27.0<1>:d r7.0<2;2,1>:w r4.4<2;2,1>:w // Source Y Block origin |
asr (1) r27.1<1>:d r27.1<0;1,0>:d 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) r27.2<1>:ud 0x1000F:ud { NoDDChk } // U/V block width and height (8x4) |
mov (8) mudMSGHDR_UVCOPY(0)<1> r27.0<8;8,1>:ud |
send (8) udDNDI_UV_RESP(0)<1> r36 0x4 0x2190001:ud |
// FileName: DN_Save_Y_16x4.asm |
// Author: Vivek Kumar |
// Description: Save one 16x4 blocks of Y channel of DN output for reference |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w r1.28<0;1,0>:ub 1:w |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
mov (2) mdMSGHDR_DN_OUT(0,0)<1> r7.0<2;2,1>:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x3000F:ud { NoDDChk } // block width and height (32x8) |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
mov (4) mudMSGHDR_DN_OUT(1,0)<1> udDNDI_RESP(10,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(1,4)<1> udDNDI_RESP(4,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
mov (4) mudMSGHDR_DN_OUT(2,0)<1> udDNDI_RESP(10,4)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(2,4)<1> udDNDI_RESP(5,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
mov (4) mudMSGHDR_DN_OUT(1,0)<1> udDNDI_RESP(4,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(1,4)<1> udDNDI_RESP(10,0)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
mov (4) mudMSGHDR_DN_OUT(2,0)<1> udDNDI_RESP(5,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(2,4)<1> udDNDI_RESP(10,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
SAVE_DN_CURR: |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0x60A8018:ud |
// FileName: DI_Save_422CP_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in 422 format to Color Pipe (IECP) |
.declare mubMSGHDR_DI_OUT1_1 Base=r18.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT1_2 Base=r21.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT2_1 Base=r24.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT2_2 Base=r27.0 ElementSize=1 Type=ub |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:ud r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:ud r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3000F:ud { NoDDClr, NoDDChk } // Block width and height (16x8) |
//M0.3 - 0 - CP Enable, 1 - Area of Interest, 3:2 Message Format(TBD), 4:3 - Ignored, 31:5 CP state pointer |
//Compose area-of-interest bit + color pipe state pointer |
or (1) r27.3<1>:ud r2.4<0;1,0>:ud r7.26<0;1,0>:b { NoDDChk } |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r24.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y; First 8x4 block |
mov (8) mubMSGHDR_DI_OUT1_1(1)<2> ubDNDI_RESP(0,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(1,16)<2> ubDNDI_RESP(0,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(2)<2> ubDNDI_RESP(0,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(2,16)<2> ubDNDI_RESP(0,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 2nd field U, V; First 8x4 block |
mov (4) mubMSGHDR_DI_OUT1_1(1,1)<4> ubDNDI_RESP(2,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,17)<4> ubDNDI_RESP(2,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,3)<4> ubDNDI_RESP(2,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,19)<4> ubDNDI_RESP(2,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,1)<4> ubDNDI_RESP(2,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,17)<4> ubDNDI_RESP(2,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,3)<4> ubDNDI_RESP(2,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,19)<4> ubDNDI_RESP(2,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Pack 2nd field Y; Second 8x4 block |
mov (8) r21.0<1>:ud r18.0<8;8,1>:ud |
add (1) r21.0<1>:ud r21.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DI_OUT1_2(1)<2> ubDNDI_RESP(0,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(1,16)<2> ubDNDI_RESP(0,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(2)<2> ubDNDI_RESP(0,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(2,16)<2> ubDNDI_RESP(0,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 2nd field U, V; Second 8x4 block |
mov (4) mubMSGHDR_DI_OUT1_2(1,1)<4> ubDNDI_RESP(2,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,17)<4> ubDNDI_RESP(2,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,3)<4> ubDNDI_RESP(2,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,19)<4> ubDNDI_RESP(2,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,1)<4> ubDNDI_RESP(2,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,17)<4> ubDNDI_RESP(2,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,3)<4> ubDNDI_RESP(2,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,19)<4> ubDNDI_RESP(2,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
send (8) null<1>:d r18.0 0x5 0x60A801B:ud |
send (8) null<1>:d r21.0 0x5 0x60A801B:ud |
// Pack 1st field Y; 1st 8x4 block |
mov (8) mubMSGHDR_DI_OUT2_1(1)<2> ubDNDI_RESP(4,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(1,16)<2> ubDNDI_RESP(4,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(2)<2> ubDNDI_RESP(4,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(2,16)<2> ubDNDI_RESP(4,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 1st field U,V; 1st 8x4 block |
mov (4) mubMSGHDR_DI_OUT2_1(1,1)<4> ubDNDI_RESP(6,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,17)<4> ubDNDI_RESP(6,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,3)<4> ubDNDI_RESP(6,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,19)<4> ubDNDI_RESP(6,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,1)<4> ubDNDI_RESP(6,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,17)<4> ubDNDI_RESP(6,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,3)<4> ubDNDI_RESP(6,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,19)<4> ubDNDI_RESP(6,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Pack 1st field Y; 2nd 8x4 block |
mov (8) r27.0<1>:ud r24.0<8;8,1>:ud |
add (1) r27.0<1>:ud r27.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DI_OUT2_2(1)<2> ubDNDI_RESP(4,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(1,16)<2> ubDNDI_RESP(4,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(2)<2> ubDNDI_RESP(4,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(2,16)<2> ubDNDI_RESP(4,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 1st field U, V; 2nd 8x4 block |
mov (4) mubMSGHDR_DI_OUT2_2(1,1)<4> ubDNDI_RESP(6,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,17)<4> ubDNDI_RESP(6,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,3)<4> ubDNDI_RESP(6,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,19)<4> ubDNDI_RESP(6,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,1)<4> ubDNDI_RESP(6,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,17)<4> ubDNDI_RESP(6,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,3)<4> ubDNDI_RESP(6,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,19)<4> ubDNDI_RESP(6,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
send (8) null<1>:d r24.0 0x5 0x60A801E:ud |
send (8) null<1>:d r27.0 0x5 0x60A801E:ud |
// FileName: DN_Save_UV_NV12_16x4.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x4 block through DATAPORT |
// FileName: UVCopy_Save_16x4.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x4 block through DATAPORT |
//Reuse the header from Load component |
mov (8) mudMSGHDR_UVCOPY(1)<1> udDNDI_UV_RESP(0)<8;8,1> |
send (8) null<1>:d r36 0x5 0x40A8019:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/NV12_DNDI_PA.g4a |
---|
0,0 → 1,495 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 86 // Total instruction count |
// 1 // Total kernel count |
.kernel NV12_DNDI_PA |
.code |
// FileName: DNDI_PL_Core.asm |
// Author: Tatiya, Rupesh |
// FileName: DNDI_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN+DI case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4BE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (1) mudMSGHDR_HIST(1)<1> udDNDI_RESP(9,0)<0;1,0> // Move denoise history to MRF (4x1) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x3:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Load_UV_NV12_16x4.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x4 block through DATAPORT |
// FileName: UVCopy_Load_16x4.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x4 block through DATAPORT |
add (2) r27.0<1>:d r7.0<2;2,1>:w r4.4<2;2,1>:w // Source Y Block origin |
asr (1) r27.1<1>:d r27.1<0;1,0>:d 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) r27.2<1>:ud 0x1000F:ud { NoDDChk } // U/V block width and height (8x4) |
mov (8) mudMSGHDR_UVCOPY(0)<1> r27.0<8;8,1>:ud |
send (8) udDNDI_UV_RESP(0)<1> r36 0x4 0x2190001:ud |
// FileName: DN_Save_Y_16x4.asm |
// Author: Vivek Kumar |
// Description: Save one 16x4 blocks of Y channel of DN output for reference |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w r1.28<0;1,0>:ub 1:w |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
mov (2) mdMSGHDR_DN_OUT(0,0)<1> r7.0<2;2,1>:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x3000F:ud { NoDDChk } // block width and height (32x8) |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
mov (4) mudMSGHDR_DN_OUT(1,0)<1> udDNDI_RESP(10,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(1,4)<1> udDNDI_RESP(4,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
mov (4) mudMSGHDR_DN_OUT(2,0)<1> udDNDI_RESP(10,4)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(2,4)<1> udDNDI_RESP(5,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
mov (4) mudMSGHDR_DN_OUT(1,0)<1> udDNDI_RESP(4,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(1,4)<1> udDNDI_RESP(10,0)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
mov (4) mudMSGHDR_DN_OUT(2,0)<1> udDNDI_RESP(5,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(2,4)<1> udDNDI_RESP(10,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
SAVE_DN_CURR: |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0x60A8018:ud |
// FileName: DI_Save_PA_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in Packed format |
add (4) a0.4<1>:uw r2.28<4;4,1>:ub 608:w // Initial Y,U,V offset in YUV422 block; it starts at m20 |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:d r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:d r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3001F:ud { NoDDChk } // Block width and height (32x8) |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r23.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y |
mov (16) r[a0.4, 0]<2> ubDNDI_RESP(0,0) { NoDDClr } |
mov (16) r[a0.4, 32]<2> ubDNDI_RESP(0,16) { NoDDClr } |
mov (16) r[a0.4, 64]<2> ubDNDI_RESP(0,32) { NoDDClr } |
mov (16) r[a0.4, 96]<2> ubDNDI_RESP(0,48) { NoDDClr } |
// Pack 2nd field U |
mov (8) r[a0.5, 0]<4> ubDNDI_RESP(2,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 32]<4> ubDNDI_RESP(2,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 64]<4> ubDNDI_RESP(2,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 96]<4> ubDNDI_RESP(2,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 2nd field V |
mov (8) r[a0.6, 0]<4> ubDNDI_RESP(2,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 32]<4> ubDNDI_RESP(2,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 64]<4> ubDNDI_RESP(2,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 96]<4> ubDNDI_RESP(2,48)<16;8,2> { NoDDChk } //Vpixels |
// Pack 1st field Y |
mov (16) r[a0.4, 160]<2> ubDNDI_RESP(4,0) { NoDDClr } |
mov (16) r[a0.4, 192]<2> ubDNDI_RESP(4,16) { NoDDClr } |
mov (16) r[a0.4, 224]<2> ubDNDI_RESP(4,32) { NoDDClr } |
mov (16) r[a0.4, 256]<2> ubDNDI_RESP(4,48) { NoDDClr } |
// Pack 1st field U |
mov (8) r[a0.5, 160]<4> ubDNDI_RESP(6,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 192]<4> ubDNDI_RESP(6,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 224]<4> ubDNDI_RESP(6,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 256]<4> ubDNDI_RESP(6,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 1st field V |
mov (8) r[a0.6, 160]<4> ubDNDI_RESP(6,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 192]<4> ubDNDI_RESP(6,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 224]<4> ubDNDI_RESP(6,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 256]<4> ubDNDI_RESP(6,48)<16;8,2> { NoDDChk } //Vpixels |
//save the previous frame |
send (8) null<1>:d r18.0 0x5 0xA0A801B:ud |
//save the current frame |
send (8) null<1>:d r23.0 0x5 0xA0A801E:ud |
// FileName: DN_Save_UV_NV12_16x4.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x4 block through DATAPORT |
// FileName: UVCopy_Save_16x4.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x4 block through DATAPORT |
//Reuse the header from Load component |
mov (8) mudMSGHDR_UVCOPY(1)<1> udDNDI_UV_RESP(0)<8;8,1> |
send (8) null<1>:d r36 0x5 0x40A8019:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/NV12_DNUV_NV12.g4a |
---|
0,0 → 1,2491 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 1153 // Total instruction count |
// 1 // Total kernel count |
.kernel NV12_DNUV_NV12 |
.code |
//Module : DN_UV_Setup |
//Author : Tatiya, Rupesh |
//Description : Initial Set-up for DN_UV |
// Module name : ChromaDenoise.inc |
// Author : Tatiya, Rupesh |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================================================== |
//Interface for serpent mode Chroma Denoise, added by Le |
//====================================================== |
//r1 |
//noise history thresholds (low and high) |
//temporal difference thresholds (high and low) |
//noise history thresholds (low and high) |
//#define ubNoiseHistMaxHigh r1.22 |
//#define ubNoiseHistMaxLow r1.23 |
//#define ubNoiseHistDeltaHigh r1.24 |
//#define ubNoiseHistDeltaLow r1.25 |
//Gaussian thresholds |
//temporal difference thresholds (default) |
//r2 |
//history thresholds (default) |
//denoise factor (0-63) |
//====================== Binding table (Explicit To DNUV)========================================= |
//Used by DN_UV kernels |
//Pointer to Current Frame UV |
//r1-r6 |
//CURBE GRFs used as TEMP : Used for max computation and storing max temporarily. : r1-r6 |
.declare ubCURBE_TEMP Base=r1.0 ElementSize=1 Type=ub |
.declare uwCURBE_TEMP Base=r1.0 ElementSize=2 Type=uw |
.declare wCURBE_TEMP Base=r1.0 ElementSize=2 Type=w |
.declare fCURBE_TEMP Base=r1.0 ElementSize=4 Type=f |
.declare udCURBE_TEMP Base=r1.0 ElementSize=4 Type=ud |
.declare uwMAX_ABS_DIFF Base=r5.0 ElementSize=2 Type=uw |
//r1 |
//r3 |
//r4 |
//r7 |
//All of the following has to defined in Same GRF for optimal performance. |
//r8-24 |
//Previous Frame UV |
.declare udPREV_UV Base=r8.0 ElementSize=4 Type=ud |
.declare ubPREV_UV Base=r8.0 ElementSize=1 Type=ub |
//r25-48 |
//TEMP Space for any Usage. |
//========================================================================= |
//Definations and declarations for serpent mode Chroma Denoise, added by Le |
//========================================================================= |
.declare udGNE_UV Base=r24.0 ElementSize=4 Type=ud |
.declare fGNE_UV Base=r24.0 ElementSize=4 Type=f |
.declare ubGNE_UV Base=r24.0 ElementSize=1 Type=ub |
.declare udMSGHDR_BNE_SERP Base=r25.0 ElementSize=4 Type=ud |
.declare udMSGSRC_BNE_SERP Base=r26.0 ElementSize=4 Type=ud |
.declare ubDN_UV_Thresholds Base=r26.0 ElementSize=1 Type=ub |
.declare ubDN_UV_Thresholds_Temp Base=r27.0 ElementSize=1 Type=ub |
.declare udDN_UV_Thresholds Base=r26.0 ElementSize=4 Type=ud |
.declare udDN_UV_Thresholds_Temp Base=r27.0 ElementSize=4 Type=ud |
.declare fDN_UV_Thresholds Base=r26.0 ElementSize=4 Type=f |
.declare fDN_UV_Thresholds_Temp Base=r27.0 ElementSize=4 Type=f |
//==================================================================================== |
//TEMP23: To hold V data for PL3 surfaces |
.declare udCURR_V_TEMP Base=r25.0 ElementSize=4 Type=ud |
.declare ubCURR_V_TEMP Base=r25.0 ElementSize=1 Type=ub |
//GRFs to calculate Median: r25-r42 |
.declare ubMEDIAN_TEMP Base=r25.0 ElementSize=1 Type=ub |
//18 GRFs to hold difference : r25-r42 |
.declare wDIFF Base=r25.0 ElementSize=2 Type=w |
.declare uwDIFF Base=r25.0 ElementSize=2 Type=uw |
//Temporal Diff |
.declare wDIFF_TEMPORAL Base=r25.0 ElementSize=2 Type=w |
.declare ubDIFF_TEMPORAL Base=r25.0 ElementSize=1 Type=ub |
//4 GRFs to hold Sobel Value : r43-46 |
.declare wSOBEL_X Base=r43.0 ElementSize=2 Type=w |
.declare uwSOBEL Base=r43.0 ElementSize=2 Type=uw |
//2 GRFs to hold SOAD temporarily: r47-48 |
.declare uwSOAD Base=r47.0 ElementSize=2 Type=uw |
//Temp GRFs to hold extra YUYV pixels: r43-r48 |
.declare ubTEMP5 Base=r43.0 ElementSize=1 Type=ub |
//Temp GRFs in Median Calculation: r47-r48 |
.declare ubTEMP1 Base=r47.0 ElementSize=1 Type=ub |
.declare uwTEMP0 Base=r48.0 ElementSize=2 Type=uw |
.declare ubTEMP0 Base=r48.0 ElementSize=1 Type=ub |
//Temp Space to store Median : r49-50 |
.declare ubMEDIAN Base=r49.0 ElementSize=1 Type=ub |
//r49 |
//r50 |
//Message Source |
//r51 |
//DN_UV History Surface |
.declare udHIST_UV Base=r51.0 ElementSize=4 Type=ud |
.declare ubHIST_UV Base=r51.0 ElementSize=1 Type=ub |
//r52 - r91 |
//r52 |
//Current Frame UV |
.declare udCURR_UV Base=r52.0 ElementSize=4 Type=ud |
.declare ubCURR_UV Base=r52.0 ElementSize=1 Type=ub |
//r54 |
//CURBE COPY |
//r55 |
.declare uwSOAD_MIN_8x4 Base=r56.0 ElementSize=2 Type=uw |
//r61 |
//r62 |
//History Surface Temp Origin |
//r63 |
//Current Frame Y Temp Origin |
//BNE Surface Origin |
//r70 |
.declare uwDIFF_TEMPORAL_SUM4x4 Base=r70.0 ElementSize=2 Type=uw //4 GRFs |
//r74-91 : For Saving Dest UV (PL2/PL3) |
.declare ubMSGPAYLOAD_UV0 Base=r75.0 ElementSize=1 Type=ub |
.declare ubMSGPAYLOAD_U Base=r75.0 ElementSize=1 Type=ub |
.declare ubMSGPAYLOAD_UV1 Base=r84.0 ElementSize=1 Type=ub |
.declare ubMSGPAYLOAD_V Base=r84.0 ElementSize=1 Type=ub |
//r90 |
.declare uwDIFF_TEMPORAL_SUM4x4_FINAL Base=r90.0 ElementSize=2 Type=uw //2 GRFs |
//r92-127 |
//Current Frame Y |
//r92 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_0 Base=r92 ElementSize=2 Type=uw |
//r101 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_1 Base=r101 ElementSize=2 Type=uw |
//r110 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_2 Base=r110 ElementSize=2 Type=uw |
//r119 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_3 Base=r119 ElementSize=2 Type=uw |
.declare udCURR_Y0 Base=r93.0 ElementSize=4 Type=ud |
.declare ubCURR_Y0 Base=r93.0 ElementSize=1 Type=ub |
.declare udCURR_Y1 Base=r102.0 ElementSize=4 Type=ud |
.declare ubCURR_Y1 Base=r102.0 ElementSize=1 Type=ub |
.declare udCURR_Y2 Base=r111.0 ElementSize=4 Type=ud |
.declare ubCURR_Y2 Base=r111.0 ElementSize=1 Type=ub |
.declare udCURR_Y3 Base=r120.0 ElementSize=4 Type=ud |
.declare ubCURR_Y3 Base=r120.0 ElementSize=1 Type=ub |
//r92: To hold U data for PL3 surfaces |
.declare udCURR_U_TEMP Base=r92.0 ElementSize=4 Type=ud |
.declare ubCURR_U_TEMP Base=r92.0 ElementSize=1 Type=ub |
//r112: To hold U data for PL3 surfaces |
.declare udPREV_U_TEMP Base=r112.0 ElementSize=4 Type=ud |
.declare ubPREV_U_TEMP Base=r112.0 ElementSize=1 Type=ub |
//r120: To hold U data for PL3 surfaces |
.declare udPREV_V_TEMP Base=r120.0 ElementSize=4 Type=ud |
.declare ubPREV_V_TEMP Base=r120.0 ElementSize=1 Type=ub |
// Initialize message source with r0. |
mov (8) r50.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r92.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r101.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r110.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r119.0<1>:ud r0.0<8;8,1>:ud |
//Module Name : DN_UV_PL2_Load_Curr_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Loads Current Frame UV data for PL2 input. |
//Module name : DN_UV_Load_Curr_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Loads Current Frame (UV only). |
// We need 4 extra rows (2 per field) and 2 extra pixel (1 each side) for both U and V each. |
// The processing size is 16x16 U and V each. So we need : U size - 18x20, V size - 18x20, UV size - 36x20, YUYV size - 72x20. |
//36x20 interleaved UV block is partitioned as follows: |
// <------ 18 --------> <--------18 -------> |
// ----------------------------------------- |
// | 20x8 A !| 20x8 D ! |
// | (overlapped) !| (overlapped) ! |
// |-------------------!|------------------! |
// | 20x8 B !| 20x8 E ! |
// | (overlapped) !| (overlapped) ! |
// |-------------------!|------------------! |
// | 20x4 C !| 20x4 F ! |
// | (overlapped) !| (overlapped) ! |
// ----------------------------------------- |
// |
// Cordinates: (x-2, y-2), (x+14, y-2), (x-2, y+6), (x+14, y+6), (x-2, y+14), (x+14, y+14) |
//UV surface origin: (ORIX, ORIY/2) |
add (2) r7.4<1>:w r7.0<2;2,1>:w r4.4<2;2,1>:w { AccWrEn } // Source Block origin |
shr (1) r7.5<1>:w acc0.5<0;1,0>:w 1:w |
mov (2) acc0.0<1>:d r7.4<2;2,1>:w |
//A |
add (2) r50.0<1>:d acc0.0<2;2,1>:d -2:d { AccWrEn } |
mov (1) r50.2<1>:ud 0x70013:ud |
send (8) udCURR_UV(0)<1> r50 0x4 0x2890004:ud |
//B |
add (1) r50.1<1>:d acc0.1<0;1,0>:d 8:d |
send (8) udCURR_UV(8)<1> r50 0x4 0x2890004:ud |
//C |
add (1) r50.1<1>:d acc0.1<0;1,0>:d 16:d |
mov (1) r50.2<1>:ud 0x30013:ud |
send (8) udCURR_UV(16)<1> r50 0x4 0x2490004:ud |
//D |
add (1) r50.0<1>:d acc0.0<0;1,0>:d 16:d { AccWrEn } |
mov (1) r50.1<1>:d acc0.1<0;1,0>:d |
mov (1) r50.2<1>:ud 0x70013:ud |
send (8) udCURR_UV(20)<1> r50 0x4 0x2890004:ud |
//E |
add (1) r50.1<1>:d acc0.1<0;1,0>:d 8:d |
send (8) udCURR_UV(28)<1> r50 0x4 0x2890004:ud |
//F |
add (1) r50.1<1>:d acc0.1<0;1,0>:d 16:d |
mov (1) r50.2<1>:ud 0x30013:ud |
send (8) udCURR_UV(36)<1> r50 0x4 0x2490004:ud |
//History Origin, Current Y origin and BNE surface origin - all are in inline GRF. Use , . -rT. |
//Calculate Origin For History Surface: (ORIX/4, ORIY/8) |
mov (16) acc0.0<1>:w r7.0<0;2,1>:w |
shr (1) r7.2<1>:w acc0.2<0;1,0>:w 2:w |
shr (1) r7.3<1>:w acc0.3<0;1,0>:w 3:w |
//Calculate Origin For BNE Surface: (ORIX/8, ORIY/16) |
shr (1) r7.6<1>:w acc0.6<0;1,0>:w 3:w |
shr (1) r7.7<1>:w acc0.7<0;1,0>:w 4:w |
//Module Name : DN_UV_PL2_Load_Prev_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Loads Pevious Frame UV data for PL2 input. |
//Module Name : DN_UV_Load_Prev_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Loads Prev Frame (UV only). U size - 16x16, V size - 16x16, UV size - 32x16, YUYV size - 64x16. |
mov (2) r50.0<1>:d r7.4<2;2,1>:w { AccWrEn } // Source lock origin |
mov (1) r50.2<1>:ud 0xF000F:ud // U/V block width and height (16x16) |
send (8) udPREV_UV(0)<1> r50 0x4 0x2890001:ud |
add (1) r50.0<1>:ud acc0.0<0;1,0>:d 16:w // Add 16 to X origin |
send (8) udPREV_UV(8)<1> r50 0x4 0x2890001:ud |
//TODO - See if History loading can be combined with Prev Frame Load. - rT |
//Module name : DN_UV_Load_Hist_UV |
//Author : Tatiya, Rupesh |
//Description : Load DN History for UV denoise. 4x4 for each U & V. |
mov (2) r50.0<1>:d r7.2<2;2,1>:w |
mov (1) r50.2<1>:ud 0x30007:ud |
send (8) udHIST_UV(0)<1> r50 0x4 0x2190022:ud |
//Module Name : DN_UV_420_Load_Curr_Frame_Y |
//Author : Tatiya, Rupesh |
//Description : Load Curr Frame Y data for 420 Input |
//Module Name : DN_UV_Load_Curr_Frame_Y |
//Author : Tatiya, Rupesh |
//Description : Loads Y of Current frame. |
//For 16x16 U and 16x16 V for 420, we need to read 32x32 Y. |
mov (8) acc0.0<1>:ud r0.0<8;8,1>:ud |
mov (1) acc0.2<1>:ud 0xF000F:ud |
add (2) acc0.0<1>:ud r7.0<2;2,1>:w r4.4<2;2,1>:w |
mov (8) r92.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r101.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r110.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r119.0<1>:ud acc0.0<8;8,1>:ud |
add (1) r101.1<1>:d acc0.1<0;1,0>:d 16:d |
add (1) r110.0<1>:d acc0.0<0;1,0>:d 16:d |
add (2) r119.0<1>:d acc0.0<2;2,1>:d 16:d |
send (8) udCURR_Y0(0)<1> r92 0x4 0x2890003:ud |
send (8) udCURR_Y1(0)<1> r101 0x4 0x2890003:ud |
send (8) udCURR_Y2(0)<1> r110 0x4 0x2890003:ud |
send (8) udCURR_Y3(0)<1> r119 0x4 0x2890003:ud |
//Module Name : DN_UV_Noise_Detection_UV |
//Author : Tatiya, Rupesh |
//Description : Performs noise detection on 16x16 U and 16x16 V each. |
//Module Name : DN_UV_Move_CURBE_Inline_UV.asm |
//Author : Tatiya, Rupesh |
//Mov CURBE data to another space - so that it can be used as Temp Space --> r1 - r6 |
mov (4) r54.28<1>:ub r2.28<4;4,1>:ub //Dest. YUY2 offset |
mov (2) r54.5<1>:ud r4.0<4;2,2>:ud //Src YUY2 offset and Origin offset |
mov (4) r55.28<1>:ub r1.0<4;4,1>:ub |
mov (8) r61.20<1>:ub r1.4<8;8,1>:ub |
mov (4) r61.28<1>:ub r1.12<4;4,1>:ub |
//Move Inline Data to another space - so that it can be used as Temp Space --> r7 |
mov (4) r62.10<1>:w r7.0<4;4,1>:w |
mov (4) r63.10<1>:w r7.4<4;4,1>:w |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
mov (1) a0.0:uw 1664:uw |
mov (1) a0.1:uw 1816:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 1792:uw |
mov (1) a0.1:uw 1820:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 1920:uw |
mov (1) a0.1:uw 1848:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2048:uw |
mov (1) a0.1:uw 1852:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
mov (1) a0.0:uw 2304:uw |
mov (1) a0.1:uw 1880:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2432:uw |
mov (1) a0.1:uw 1884:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2560:uw |
mov (1) a0.1:uw 1912:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2688:uw |
mov (1) a0.1:uw 1916:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module : DN_UV_Noise_Reduction_UV |
//Author : Tatiya, Rupesh |
//Description : Performs Noise Reduction on 16x16 U and 16x16 V. |
//Tasks : 1. Update weight history |
// 2. Find if it block is motion block |
// 3. Compute Denoised Pixel. |
//History is 1+1 byte every 4x4 U and 4x4 V. |
cmp.l.f0.0 (16) null<1>:w ubHIST_UV(0,0)<16;16,1> r61.20<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w ubHIST_UV(0,0)<16;16,1> r61.22<0;2,1>:ub |
mov (16) uwCURBE_TEMP(0)<1> 0:w |
mov (16) uwCURBE_TEMP(1)<1> 0:w |
//Compute diff betn curr and prev. - First 16 lines |
// 8 lines here |
add (16) wDIFF_TEMPORAL(0)<1> ubCURR_UV(2,2)<16;16,1> -ubPREV_UV(0,0)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(1)<1> ubCURR_UV(3,2)<16;16,1> -ubPREV_UV(0,16)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(2)<1> ubCURR_UV(4,2)<16;16,1> -ubPREV_UV(0,32)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(3)<1> ubCURR_UV(5,2)<16;16,1> -ubPREV_UV(0,48)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(4)<1> ubCURR_UV(6,2)<16;16,1> -ubPREV_UV(0,64)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(5)<1> ubCURR_UV(7,2)<16;16,1> -ubPREV_UV(0,80)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(6)<1> ubCURR_UV(8,2)<16;16,1> -ubPREV_UV(0,96)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(7)<1> ubCURR_UV(9,2)<16;16,1> -ubPREV_UV(0,112)<16;16,1> //Diff UV interleaved |
//Update WT HIST |
(-f0.0) shr (16) uwCURBE_TEMP(0)<1> ubHIST_UV(0,0)<16;16,1> 1:w |
(f1.0) add (16) uwCURBE_TEMP(2)<1> ubHIST_UV(0,0)<16;16,1> r61.24<0;2,1>:ub |
(f0.0) mov (16) uwCURBE_TEMP(2)<1> r61.20<0;2,1>:ub |
(-f0.0.anyv) mov (16) uwCURBE_TEMP(2)<1> ubHIST_UV(0,0)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w ubHIST_UV(0,16)<16;16,1> r61.20<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w ubHIST_UV(0,16)<16;16,1> r61.22<0;2,1>:ub |
//Compute diff betn curr and prev. - First 16 lines |
// 8 more lines here |
add (16) wDIFF_TEMPORAL(8)<1> ubCURR_UV(10,2)<16;16,1> -ubPREV_UV(0,128)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(9)<1> ubCURR_UV(11,2)<16;16,1> -ubPREV_UV(0,144)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(10)<1> ubCURR_UV(12,2)<16;16,1> -ubPREV_UV(0,160)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(11)<1> ubCURR_UV(13,2)<16;16,1> -ubPREV_UV(0,176)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(12)<1> ubCURR_UV(14,2)<16;16,1> -ubPREV_UV(0,192)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(13)<1> ubCURR_UV(15,2)<16;16,1> -ubPREV_UV(0,208)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(14)<1> ubCURR_UV(16,2)<16;16,1> -ubPREV_UV(0,224)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(15)<1> ubCURR_UV(17,2)<16;16,1> -ubPREV_UV(0,240)<16;16,1> //Diff UV interleaved |
(-f0.0) shr (16) uwCURBE_TEMP(1)<1> ubHIST_UV(0,16)<16;16,1> 1:w |
(f1.0) add (16) uwCURBE_TEMP(3)<1> ubHIST_UV(0,16)<16;16,1> r61.24<0;2,1>:ub |
(f0.0) mov (16) uwCURBE_TEMP(3)<1> r61.20<0;2,1>:ub |
(-f0.0.anyv) mov(16) uwCURBE_TEMP(3)<1> ubHIST_UV(0,16)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(0)<16;16,1> (abs)wDIFF_TEMPORAL(1)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(2)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(3)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(4)<16;16,1> (abs)wDIFF_TEMPORAL(5)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(6)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(7)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(8)<16;16,1> (abs)wDIFF_TEMPORAL(9)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(10)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(2)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(11)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(12)<16;16,1> (abs)wDIFF_TEMPORAL(13)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(14)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(3)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(15)<16;16,1> |
//Compute diff betn curr and prev. - Second 16 lines |
//13 lines. |
add (16) wDIFF_TEMPORAL(16)<1> ubCURR_UV(22,2)<16;16,1> -ubPREV_UV(8,0)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(17)<1> ubCURR_UV(23,2)<16;16,1> -ubPREV_UV(8,16)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(18)<1> ubCURR_UV(24,2)<16;16,1> -ubPREV_UV(8,32)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(19)<1> ubCURR_UV(25,2)<16;16,1> -ubPREV_UV(8,48)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(20)<1> ubCURR_UV(26,2)<16;16,1> -ubPREV_UV(8,64)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(21)<1> ubCURR_UV(27,2)<16;16,1> -ubPREV_UV(8,80)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(22)<1> ubCURR_UV(28,2)<16;16,1> -ubPREV_UV(8,96)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(23)<1> ubCURR_UV(29,2)<16;16,1> -ubPREV_UV(8,112)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(24)<1> ubCURR_UV(30,2)<16;16,1> -ubPREV_UV(8,128)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(25)<1> ubCURR_UV(31,2)<16;16,1> -ubPREV_UV(8,144)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(26)<1> ubCURR_UV(32,2)<16;16,1> -ubPREV_UV(8,160)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(27)<1> ubCURR_UV(33,2)<16;16,1> -ubPREV_UV(8,176)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(28)<1> ubCURR_UV(34,2)<16;16,1> -ubPREV_UV(8,192)<16;16,1> //Diff UV interleaved |
//3 more lines |
add (16) wCURBE_TEMP(4)<1> ubCURR_UV(35,2)<16;16,1> -ubPREV_UV(8,208)<16;16,1> //Diff UV interleaved |
add (16) wCURBE_TEMP(5)<1> ubCURR_UV(36,2)<16;16,1> -ubPREV_UV(8,224)<16;16,1> //Diff UV interleaved |
add (16) wCURBE_TEMP(6)<1> ubCURR_UV(37,2)<16;16,1> -ubPREV_UV(8,240)<16;16,1> //Diff UV interleaved |
//16x4 to 8x4 - First 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> uwDIFF_TEMPORAL_SUM4x4(2,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(2,2)<4;2,1> |
//8x4 to 4x4 - First 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4_FINAL(0)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> { AccWrEn } |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(16)<16;16,1> (abs)wDIFF_TEMPORAL(17)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(18)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(19)<16;16,1> |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(20)<16;16,1> (abs)wDIFF_TEMPORAL(21)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(22)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(23)<16;16,1> |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(24)<16;16,1> (abs)wDIFF_TEMPORAL(25)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(26)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(2)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(27)<16;16,1> |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(28)<16;16,1> (abs)wCURBE_TEMP(4)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wCURBE_TEMP(5)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(3)<1> acc0.0<16;16,1>:uw (abs)wCURBE_TEMP(6)<16;16,1> |
//Find if block is motion block - First 16 lines |
cmp.g.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_FINAL(0)<16;16,1> r61.26<0;2,1>:ub |
//Move TEMPORAL_SUM4x4 for SIMD16 use later. |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,0)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,2)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,4)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,6)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,8)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,10)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,12)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,14)<0;2,1> |
//Pick Appropriate Weight History Based on motion. - First 16 lines |
(-f0.0) mov (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(2)<16;16,1> |
//Actual DN - First 16 lines |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(0)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(0)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(2,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(2,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(2,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,0)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,8)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(0)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(0)<1> ubCURR_UV(2,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(0)<1> wDIFF_TEMPORAL(0)<16;16,1> ubCURR_UV(2,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(1)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(1)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(3,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(3,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(3,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,16)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,24)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(1)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(1)<1> ubCURR_UV(3,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(1)<1> wDIFF_TEMPORAL(1)<16;16,1> ubCURR_UV(3,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(2)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(2)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(4,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(4,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(4,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,32)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,40)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(2)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(2)<1> ubCURR_UV(4,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(2)<1> wDIFF_TEMPORAL(2)<16;16,1> ubCURR_UV(4,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(3)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(3)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(5,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(5,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(5,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,48)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,56)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(3)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(3)<1> ubCURR_UV(5,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(3)<1> wDIFF_TEMPORAL(3)<16;16,1> ubCURR_UV(5,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(4)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(4)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(6,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(6,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(6,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,64)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,72)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(4)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(4)<1> ubCURR_UV(6,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(4)<1> wDIFF_TEMPORAL(4)<16;16,1> ubCURR_UV(6,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(5)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(5)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(7,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(7,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(7,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,80)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,88)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(5)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(5)<1> ubCURR_UV(7,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(5)<1> wDIFF_TEMPORAL(5)<16;16,1> ubCURR_UV(7,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(6)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(6)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(8,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(8,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(8,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,96)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,104)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(6)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(6)<1> ubCURR_UV(8,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(6)<1> wDIFF_TEMPORAL(6)<16;16,1> ubCURR_UV(8,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(7)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(7)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(9,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(9,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(9,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,112)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,120)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(7)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(7)<1> ubCURR_UV(9,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(7)<1> wDIFF_TEMPORAL(7)<16;16,1> ubCURR_UV(9,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(8)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(8)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(10,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(10,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(10,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,128)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,136)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(8)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(8)<1> ubCURR_UV(10,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(8)<1> wDIFF_TEMPORAL(8)<16;16,1> ubCURR_UV(10,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(9)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(9)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(11,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(11,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(11,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,144)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,152)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(9)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(9)<1> ubCURR_UV(11,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(9)<1> wDIFF_TEMPORAL(9)<16;16,1> ubCURR_UV(11,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(10)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(10)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(12,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(12,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(12,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,160)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,168)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(10)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(10)<1> ubCURR_UV(12,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(10)<1> wDIFF_TEMPORAL(10)<16;16,1> ubCURR_UV(12,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(11)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(11)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(13,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(13,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(13,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,176)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,184)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(11)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(11)<1> ubCURR_UV(13,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(11)<1> wDIFF_TEMPORAL(11)<16;16,1> ubCURR_UV(13,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(12)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(12)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(14,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(14,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(14,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,192)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,200)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(12)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(12)<1> ubCURR_UV(14,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(12)<1> wDIFF_TEMPORAL(12)<16;16,1> ubCURR_UV(14,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(13)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(13)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(15,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(15,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(15,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,208)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,216)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(13)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(13)<1> ubCURR_UV(15,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(13)<1> wDIFF_TEMPORAL(13)<16;16,1> ubCURR_UV(15,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(14)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(14)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(16,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(16,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(16,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,224)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,232)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(14)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(14)<1> ubCURR_UV(16,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(14)<1> wDIFF_TEMPORAL(14)<16;16,1> ubCURR_UV(16,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(15)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(15)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(17,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(17,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(17,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,240)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,248)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(15)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(15)<1> ubCURR_UV(17,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(15)<1> wDIFF_TEMPORAL(15)<16;16,1> ubCURR_UV(17,2)<16;16,1> |
//16x4 to 8x4 - Second 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> uwDIFF_TEMPORAL_SUM4x4(2,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(2,2)<4;2,1> |
//8x4 to 4x4 - Second 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4_FINAL(1)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> { AccWrEn } |
//Find if block is motion block - Second 16 lines |
cmp.g.f1.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_FINAL(1)<16;16,1> r61.26<0;2,1>:ub |
//Move TEMPORAL_SUM4x4 for SIMD16 use later. |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,0)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,2)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,4)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,6)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,8)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,10)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,12)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,14)<0;2,1> |
//Pick Appropriate Weight History Based on motion. - Second 16 lines |
(-f1.0) mov (16) uwCURBE_TEMP(1)<1> uwCURBE_TEMP(3)<16;16,1> |
//Actual DN - Second 16 lines |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(16)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(16)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(22,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(22,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(22,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,0)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,8)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(16)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(16)<1> ubCURR_UV(22,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(16)<1> wDIFF_TEMPORAL(16)<16;16,1> ubCURR_UV(22,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(17)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(17)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(23,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(23,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(23,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,16)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,24)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(17)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(17)<1> ubCURR_UV(23,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(17)<1> wDIFF_TEMPORAL(17)<16;16,1> ubCURR_UV(23,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(18)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(18)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(24,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(24,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(24,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,32)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,40)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(18)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(18)<1> ubCURR_UV(24,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(18)<1> wDIFF_TEMPORAL(18)<16;16,1> ubCURR_UV(24,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(19)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(19)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(25,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(25,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(25,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,48)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,56)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(19)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(19)<1> ubCURR_UV(25,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(19)<1> wDIFF_TEMPORAL(19)<16;16,1> ubCURR_UV(25,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(20)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(20)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(26,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(26,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(26,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,64)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,72)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(20)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(20)<1> ubCURR_UV(26,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(20)<1> wDIFF_TEMPORAL(20)<16;16,1> ubCURR_UV(26,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(21)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(21)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(27,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(27,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(27,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,80)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,88)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(21)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(21)<1> ubCURR_UV(27,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(21)<1> wDIFF_TEMPORAL(21)<16;16,1> ubCURR_UV(27,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(22)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(22)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(28,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(28,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(28,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,96)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,104)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(22)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(22)<1> ubCURR_UV(28,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(22)<1> wDIFF_TEMPORAL(22)<16;16,1> ubCURR_UV(28,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(23)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(23)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(29,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(29,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(29,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,112)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,120)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(23)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(23)<1> ubCURR_UV(29,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(23)<1> wDIFF_TEMPORAL(23)<16;16,1> ubCURR_UV(29,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(24)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(24)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(30,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(30,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(30,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,128)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,136)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(24)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(24)<1> ubCURR_UV(30,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(24)<1> wDIFF_TEMPORAL(24)<16;16,1> ubCURR_UV(30,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(25)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(25)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(31,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(31,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(31,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,144)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,152)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(25)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(25)<1> ubCURR_UV(31,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(25)<1> wDIFF_TEMPORAL(25)<16;16,1> ubCURR_UV(31,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(26)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(26)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(32,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(32,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(32,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,160)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,168)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(26)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(26)<1> ubCURR_UV(32,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(26)<1> wDIFF_TEMPORAL(26)<16;16,1> ubCURR_UV(32,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(27)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(27)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(33,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(33,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(33,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,176)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,184)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(27)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(27)<1> ubCURR_UV(33,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(27)<1> wDIFF_TEMPORAL(27)<16;16,1> ubCURR_UV(33,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(28)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(28)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(34,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(34,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(34,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,192)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,200)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(28)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(28)<1> ubCURR_UV(34,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(28)<1> wDIFF_TEMPORAL(28)<16;16,1> ubCURR_UV(34,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wCURBE_TEMP(4)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wCURBE_TEMP(4)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(35,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(35,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(35,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,208)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,216)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wCURBE_TEMP(4)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wCURBE_TEMP(4)<1> ubCURR_UV(35,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wCURBE_TEMP(4)<1> wCURBE_TEMP(4)<16;16,1> ubCURR_UV(35,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wCURBE_TEMP(5)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wCURBE_TEMP(5)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(36,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(36,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(36,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,224)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,232)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wCURBE_TEMP(5)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wCURBE_TEMP(5)<1> ubCURR_UV(36,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wCURBE_TEMP(5)<1> wCURBE_TEMP(5)<16;16,1> ubCURR_UV(36,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wCURBE_TEMP(6)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wCURBE_TEMP(6)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(37,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(37,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(37,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,240)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,248)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wCURBE_TEMP(6)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wCURBE_TEMP(6)<1> ubCURR_UV(37,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wCURBE_TEMP(6)<1> wCURBE_TEMP(6)<16;16,1> ubCURR_UV(37,2)<16;16,1> |
//Pack Weight History WORD -> BYTE |
mov (16) ubCURBE_TEMP(3,0)<1> ubCURBE_TEMP(0)<32;16,2> |
mov (16) ubCURBE_TEMP(3,16)<1> ubCURBE_TEMP(1)<32;16,2> |
//Module Name : DN_UV_Compute_BNE_UV |
//Author : Tatiya, Rupesh |
//Description : Computes minimum SOAD for each 16x4 block. |
cmp.l.f0.0 (8) null:w uwSOAD_MIN_8x4(0,12)<16;4,1> uwSOAD_MIN_8x4(2,12)<16;4,1> |
(f0.0)sel (8) uwCURBE_TEMP(1,0)<1> uwSOAD_MIN_8x4(0,12)<16;4,1> uwSOAD_MIN_8x4(2,12)<16;4,1> |
mov (8) ubCURBE_TEMP(1)<1> ubCURBE_TEMP(1)<16;8,2> |
//Module Name : DN_UV_PL2_Pack_Denoised_UV |
//Name : Tatiya, Rupesh |
//Description : Pack UV denoised data based on PL2 input. |
//Module Name : DN_UV_Pack_Denoised_UV |
//Name : Tatiya, Rupesh |
//Description : Pack UV denoised data based on PL2/PL3/PA. |
//First 16 lines. |
mov (16) ubMSGPAYLOAD_UV0(0,0)<1> ubDIFF_TEMPORAL(0)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(0,16)<1> ubDIFF_TEMPORAL(1)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(1,0)<1> ubDIFF_TEMPORAL(2)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(1,16)<1> ubDIFF_TEMPORAL(3)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(2,0)<1> ubDIFF_TEMPORAL(4)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(2,16)<1> ubDIFF_TEMPORAL(5)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(3,0)<1> ubDIFF_TEMPORAL(6)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(3,16)<1> ubDIFF_TEMPORAL(7)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(4,0)<1> ubDIFF_TEMPORAL(8)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(4,16)<1> ubDIFF_TEMPORAL(9)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(5,0)<1> ubDIFF_TEMPORAL(10)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(5,16)<1> ubDIFF_TEMPORAL(11)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(6,0)<1> ubDIFF_TEMPORAL(12)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(6,16)<1> ubDIFF_TEMPORAL(13)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(7,0)<1> ubDIFF_TEMPORAL(14)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV0(7,16)<1> ubDIFF_TEMPORAL(15)<32;16,2> |
//Second 16 lines. |
//12 lines first |
mov (16) ubMSGPAYLOAD_UV1(0,0)<1> ubDIFF_TEMPORAL(16)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(0,16)<1> ubDIFF_TEMPORAL(17)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(1,0)<1> ubDIFF_TEMPORAL(18)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(1,16)<1> ubDIFF_TEMPORAL(19)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(2,0)<1> ubDIFF_TEMPORAL(20)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(2,16)<1> ubDIFF_TEMPORAL(21)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(3,0)<1> ubDIFF_TEMPORAL(22)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(3,16)<1> ubDIFF_TEMPORAL(23)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(4,0)<1> ubDIFF_TEMPORAL(24)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(4,16)<1> ubDIFF_TEMPORAL(25)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(5,0)<1> ubDIFF_TEMPORAL(26)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(5,16)<1> ubDIFF_TEMPORAL(27)<32;16,2> |
//3 lines next |
mov (16) ubMSGPAYLOAD_UV1(6,0)<1> ubDIFF_TEMPORAL(28)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(6,16)<1> ubCURBE_TEMP(4)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(7,0)<1> ubCURBE_TEMP(5)<32;16,2> |
mov (16) ubMSGPAYLOAD_UV1(7,16)<1> ubCURBE_TEMP(6)<32;16,2> |
//Module Name : DN_UV_420_Save_Curr_Frame_Y |
//Author : Tatiya, Rupesh |
//Description : Save Curr Frame Y data for 420 Input |
//Module Name : DN_UV_Load_Curr_Frame_Y |
//Author : Tatiya, Rupesh |
//Description : Saves Y or YUY2 of Current frame. |
mov (8) acc0.0<1>:ud r0.0<8;8,1>:ud |
mov (2) acc0.0<1>:d r62.10<2;2,1>:w |
mov (1) acc0.2<1>:d 0xF000F:ud |
mov (8) r92.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r101.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r110.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r119.0<1>:ud acc0.0<8;8,1>:ud |
add (1) r101.1<1>:d acc0.1<0;1,0>:d 16:d |
add (1) r110.0<1>:d acc0.0<0;1,0>:d 16:d |
add (2) r119.0<1>:d acc0.0<2;2,1>:d 16:d |
send (8) null<1>:d r92 0x5 0x120A8018:ud |
send (8) null<1>:d r101 0x5 0x120A8018:ud |
send (8) null<1>:d r110 0x5 0x120A8018:ud |
send (8) null<1>:d r119 0x5 0x120A8018:ud |
//TODO - See if History saving can be combined with Curr Frame Save. - rT |
//Module Name : DN_UV_Save_Hist_UV |
//Author : Tatiya, Rupesh |
//Description : Saves DN history for UV data. |
mov (8) r3.0<1>:ud r0.0<8;8,1>:ud |
mov (2) r3.0<1>:d r62.12<2;2,1>:w |
mov (1) r3.2<1>:d 0x30007:ud |
send (8) null<1>:d r3 0x5 0x40A8021:ud |
//Module Name : DN_UV_Save_BNE_UV |
//Author : Tatiya, Rupesh |
//Description : Saves BNE values for 16x16 U and 16x16 V. |
mov (8) r1.0<1>:ud r0.0<8;8,1>:ud |
mov (2) r1.0<1>:d r63.12<2;2,1>:w |
mov (1) r1.2<1>:d 0x10003:ud |
send (8) null<1>:d r1 0x5 0x40A8023:ud |
//Module Name : DN_UV_PL2_Save_Curr_Frame_UV |
//Author : Tatiya, Rupesh |
//Module name : DN_UV_Save_Curr_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Saves Current Frame (UV only). |
mov (8) r74<1>:ud r0.0<8;8,1>:ud |
mov (8) r83<1>:ud r0.0<8;8,1>:ud |
mov (1) r74.0<1>:d r62.10<0;1,0>:w |
shr (1) r74.1<1>:d r62.11<0;1,0>:w 1:w |
mov (1) r74.2<1>:d 0xF000F:ud |
add (1) r83.0<1>:d r62.10<0;1,0>:w 16:d |
shr (1) r83.1<1>:d r62.11<0;1,0>:w 1:w |
mov (1) r83.2<1>:d 0xF000F:ud |
send (8) null<1>:d r74 0x5 0x120A8019:ud |
send (8) null<1>:d r83 0x5 0x120A8019:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
//All sub-routines here |
// Module Name : Noise_Detection |
// Author : Tatiya, Rupesh |
// Description : Performs noise detection on 32 pixels of U (8x4) and 32 pixels of V (8x4). |
DN_UV_NOISE_DETECTION_UV: |
// Find Field Block Median |
// |
// Purpose : Find the median value of the nine pixels in the same field |
// which are centered at current pixel. |
// |
// Works on 9 pixels centered at the current pixel |
// NOTE: pixels are within same field. |
// v4 - current pixel |
// |
// v2 v1 v0 |
// * * * <--- Different field - not used |
// v5 v4 v3 |
// * * * <--- Different field - not used |
// v8 v7 v6 |
// Algorithm to find median modifies the data. |
// Copy the data needed to calculate median so the original source data stays intact. |
// |
//TODO - Change Interleaved implementation to separated one if - , does not work on predication. - rT |
//Delete Later - rT |
//mov (1) pCUR_UV:uw 52*32:uw |
// v0 |
mov (16) ubMEDIAN_TEMP(0,0)<1> r[a0.0,0]<16;16,1> |
// v0 |
mov (16) ubMEDIAN_TEMP(0,16)<1> r[a0.0,32]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(1,0)<1> r[a0.0,2]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(1,16)<1> r[a0.0,34]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(2,0)<1> r[a0.0,4]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(2,16)<1> r[a0.0,36]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(3,0)<1> r[a0.0,64]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(3,16)<1> r[a0.0,96]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(4,0)<1> r[a0.0,66]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(4,16)<1> r[a0.0,98]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(5,0)<1> r[a0.0,68]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(5,16)<1> r[a0.0,100]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(6,0)<1> r[a0.0,128]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(6,16)<1> r[a0.0,160]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(7,0)<1> r[a0.0,130]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(7,16)<1> r[a0.0,162]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(8,0)<1> r[a0.0,132]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(8,16)<1> r[a0.0,164]<16;16,1> |
//TODO - Optimize one instruction here. |
add (1) a0.0:uw a0.0<0;1,0>:uw 64:uw |
// v0 |
mov (16) ubMEDIAN_TEMP(9,0)<1> r[a0.0,0]<16;16,1> |
// v0 |
mov (16) ubMEDIAN_TEMP(9,16)<1> r[a0.0,32]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(10,0)<1> r[a0.0,2]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(10,16)<1> r[a0.0,34]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(11,0)<1> r[a0.0,4]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(11,16)<1> r[a0.0,36]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(12,0)<1> r[a0.0,64]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(12,16)<1> r[a0.0,96]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(13,0)<1> r[a0.0,66]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(13,16)<1> r[a0.0,98]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(14,0)<1> r[a0.0,68]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(14,16)<1> r[a0.0,100]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(15,0)<1> r[a0.0,128]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(15,16)<1> r[a0.0,160]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(16,0)<1> r[a0.0,130]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(16,16)<1> r[a0.0,162]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(17,0)<1> r[a0.0,132]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(17,16)<1> r[a0.0,164]<16;16,1> |
//TODO - Optimize one instruction here. |
add (1) a0.0:uw a0.0<0;1,0>:uw 64:uw |
// MedianSwap |
// |
// MedianSwap(inOutLeft, inOutRight) |
// { |
// if (inOutLeft > inOutRight) |
// { |
// temp = inOutLeft |
// inOutLeft = inOutRight |
// inOutRight = temp |
// } |
// } |
// MedianSwap(v1, v2) - U |
// MedianSwap(v4, v5) - U |
// MedianSwap(v1, v2) - V |
// MedianSwap(v4, v5) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(1,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(5,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(1,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(5,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(1,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(1,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(1,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(5,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(1,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(5,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(5,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(2,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(5,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v1) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v1) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(7,0)<32;16,2> ubMEDIAN_TEMP(8,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(0,0)<32;16,2> ubMEDIAN_TEMP(1,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(7,1)<32;16,2> ubMEDIAN_TEMP(8,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(0,1)<32;16,2> ubMEDIAN_TEMP(1,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(7,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(0,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(0,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(7,0)<2> ubMEDIAN_TEMP(8,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(0,0)<2> ubMEDIAN_TEMP(1,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(7,1)<2> ubMEDIAN_TEMP(8,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(0,1)<2> ubMEDIAN_TEMP(1,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(8,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(1,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(8,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(1,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v3, v4) - U |
// MedianSwap(v6, v7) - U |
// MedianSwap(v3, v4) - V |
// MedianSwap(v6, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(3,0)<32;16,2> ubMEDIAN_TEMP(4,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(6,0)<32;16,2> ubMEDIAN_TEMP(7,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(3,1)<32;16,2> ubMEDIAN_TEMP(4,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(6,1)<32;16,2> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(3,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(6,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(3,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(6,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(3,0)<2> ubMEDIAN_TEMP(4,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(6,0)<2> ubMEDIAN_TEMP(7,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(3,1)<2> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(6,1)<2> ubMEDIAN_TEMP(7,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(7,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(4,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(7,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v1, v2) - U |
// MedianSwap(v4, v5) - U |
// MedianSwap(v1, v2) - V |
// MedianSwap(v4, v5) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(1,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(5,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(1,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(5,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(1,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(1,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(1,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(5,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(1,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(5,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(5,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(2,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(5,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v3) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v3) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(7,0)<32;16,2> ubMEDIAN_TEMP(8,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(0,0)<32;16,2> ubMEDIAN_TEMP(3,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(7,1)<32;16,2> ubMEDIAN_TEMP(8,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(0,1)<32;16,2> ubMEDIAN_TEMP(3,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(7,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(0,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(0,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(7,0)<2> ubMEDIAN_TEMP(8,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(0,0)<2> ubMEDIAN_TEMP(3,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(7,1)<2> ubMEDIAN_TEMP(8,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(0,1)<2> ubMEDIAN_TEMP(3,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(8,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(3,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(8,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(3,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v0 to v6 to find the minimum. |
// Store the minimum for future use. |
//TODO - Find if MIN is needed. |
//cmp.l.f0.0 (16) null:w ubMEDIAN_TEMP(%1+0,0)<32;16,2> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//cmp.l.f1.0 (16) null:w ubMEDIAN_TEMP(%1+0,1)<32;16,2> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
// MedianSwap(v5, v8) - U |
// MedianSwap(v4, v7) - U |
// MedianSwap(v5, v8) - V |
// MedianSwap(v4, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(5,0)<32;16,2> ubMEDIAN_TEMP(8,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(7,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(5,1)<32;16,2> ubMEDIAN_TEMP(8,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(5,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(5,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(5,0)<2> ubMEDIAN_TEMP(8,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(7,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(5,1)<2> ubMEDIAN_TEMP(8,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(7,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(8,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(7,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(8,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(7,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v2 to v8 to find the maximum. |
// Store the maximum for future use. |
//TODO - Find if MAX is needed. |
// cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(%1+2,0)<32;16,2> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
// cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(%1+2,1)<32;16,2> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
// MedianSwap(v3, v6) - U |
// MedianSwap(v1, v4) - U |
// MedianSwap(v3, v6) - V |
// MedianSwap(v1, v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(3,0)<32;16,2> ubMEDIAN_TEMP(6,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(1,0)<32;16,2> ubMEDIAN_TEMP(4,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(3,1)<32;16,2> ubMEDIAN_TEMP(6,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(1,1)<32;16,2> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(6,0)<2> ubMEDIAN_TEMP(3,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(1,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(6,1)<2> ubMEDIAN_TEMP(3,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(1,1)<32;16,2> |
// MedianSwap(v2,v5) - U |
// MedianSwap(v4,v7) - U |
// MedianSwap(v2,v5) - V |
// MedianSwap(v4,v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(2,0)<32;16,2> ubMEDIAN_TEMP(5,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(7,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(2,1)<32;16,2> ubMEDIAN_TEMP(5,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(7,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubMEDIAN_TEMP(5,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(7,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(2,1)<2> ubMEDIAN_TEMP(5,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(7,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(2,1)<2> ubTEMP1(0,16)<16;16,1> |
// MedianSwap(v6,v4) - U |
// MedianSwap(v6,v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(6,0)<32;16,2> ubMEDIAN_TEMP(4,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(6,1)<32;16,2> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(6,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(6,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(10,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(14,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(10,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(14,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(10,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(10,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(10,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(14,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(10,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(14,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(14,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(11,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(14,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v1) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v1) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(16,0)<32;16,2> ubMEDIAN_TEMP(17,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(9,0)<32;16,2> ubMEDIAN_TEMP(10,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(16,1)<32;16,2> ubMEDIAN_TEMP(17,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(9,1)<32;16,2> ubMEDIAN_TEMP(10,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(16,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(9,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(9,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(16,0)<2> ubMEDIAN_TEMP(17,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(9,0)<2> ubMEDIAN_TEMP(10,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(16,1)<2> ubMEDIAN_TEMP(17,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(9,1)<2> ubMEDIAN_TEMP(10,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(17,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(10,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(17,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(10,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v3, v4) - U |
// MedianSwap(v6, v7) - U |
// MedianSwap(v3, v4) - V |
// MedianSwap(v6, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(12,0)<32;16,2> ubMEDIAN_TEMP(13,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(15,0)<32;16,2> ubMEDIAN_TEMP(16,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(12,1)<32;16,2> ubMEDIAN_TEMP(13,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(15,1)<32;16,2> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(12,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(15,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(12,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(15,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(12,0)<2> ubMEDIAN_TEMP(13,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(15,0)<2> ubMEDIAN_TEMP(16,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(12,1)<2> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(15,1)<2> ubMEDIAN_TEMP(16,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(16,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(13,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(16,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v1, v2) - U |
// MedianSwap(v4, v5) - U |
// MedianSwap(v1, v2) - V |
// MedianSwap(v4, v5) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(10,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(14,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(10,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(14,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(10,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(10,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(10,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(14,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(10,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(14,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(14,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(11,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(14,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v3) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v3) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(16,0)<32;16,2> ubMEDIAN_TEMP(17,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(9,0)<32;16,2> ubMEDIAN_TEMP(12,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(16,1)<32;16,2> ubMEDIAN_TEMP(17,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(9,1)<32;16,2> ubMEDIAN_TEMP(12,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(16,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(9,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(9,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(16,0)<2> ubMEDIAN_TEMP(17,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(9,0)<2> ubMEDIAN_TEMP(12,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(16,1)<2> ubMEDIAN_TEMP(17,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(9,1)<2> ubMEDIAN_TEMP(12,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(17,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(12,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(17,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(12,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v0 to v6 to find the minimum. |
// Store the minimum for future use. |
//TODO - Find if MIN is needed. |
//cmp.l.f0.0 (16) null:w ubMEDIAN_TEMP(%1+0,0)<32;16,2> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//cmp.l.f1.0 (16) null:w ubMEDIAN_TEMP(%1+0,1)<32;16,2> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
// MedianSwap(v5, v8) - U |
// MedianSwap(v4, v7) - U |
// MedianSwap(v5, v8) - V |
// MedianSwap(v4, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(14,0)<32;16,2> ubMEDIAN_TEMP(17,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(16,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(14,1)<32;16,2> ubMEDIAN_TEMP(17,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(14,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(14,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(14,0)<2> ubMEDIAN_TEMP(17,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(16,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(14,1)<2> ubMEDIAN_TEMP(17,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(16,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(17,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(16,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(17,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(16,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v2 to v8 to find the maximum. |
// Store the maximum for future use. |
//TODO - Find if MAX is needed. |
// cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(%1+2,0)<32;16,2> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
// cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(%1+2,1)<32;16,2> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
// MedianSwap(v3, v6) - U |
// MedianSwap(v1, v4) - U |
// MedianSwap(v3, v6) - V |
// MedianSwap(v1, v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(12,0)<32;16,2> ubMEDIAN_TEMP(15,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(10,0)<32;16,2> ubMEDIAN_TEMP(13,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(12,1)<32;16,2> ubMEDIAN_TEMP(15,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(10,1)<32;16,2> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(15,0)<2> ubMEDIAN_TEMP(12,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(10,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(15,1)<2> ubMEDIAN_TEMP(12,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(10,1)<32;16,2> |
// MedianSwap(v2,v5) - U |
// MedianSwap(v4,v7) - U |
// MedianSwap(v2,v5) - V |
// MedianSwap(v4,v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(11,0)<32;16,2> ubMEDIAN_TEMP(14,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(16,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(11,1)<32;16,2> ubMEDIAN_TEMP(14,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(16,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubMEDIAN_TEMP(14,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(16,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(11,1)<2> ubMEDIAN_TEMP(14,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(16,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(11,1)<2> ubTEMP1(0,16)<16;16,1> |
// MedianSwap(v6,v4) - U |
// MedianSwap(v6,v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(15,0)<32;16,2> ubMEDIAN_TEMP(13,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(15,1)<32;16,2> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(15,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(15,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
// Sobel Value calculation for the current pixel v4 |
// v2 v1 v0 |
// * * * <--- Different field - not used |
// v5 v4 v3 |
// * * * <--- Different field - not used |
// v8 v7 v6 |
// |
// Gx = -v0 - 2*v3 - v6 + v2 + 2*v5 + v8 |
// Gy = v0 + 2*v1 + v2 - v6 - 2*v7 - v8 |
// |
// Sobel = (|Gx| + |Gy|) >> 3 |
//TODO - Change Later - rT |
add (1) a0.0:uw a0.0<0;1,0>:uw -128:uw |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,64]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,132]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,0]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,128]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,4]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(0)<1> r[a0.0,68]<16;16,1>:ub 2:w |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,96]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,164]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,32]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,160]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,36]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(1)<1> r[a0.0,100]<16;16,1>:ub 2:w |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,128]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,196]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,64]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,192]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,68]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(2)<1> r[a0.0,132]<16;16,1>:ub 2:w |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,160]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,228]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,96]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,224]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,100]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(3)<1> r[a0.0,164]<16;16,1>:ub 2:w |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,2]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,0]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,132]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,4]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,128]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,130]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(0)<16;16,1> |
shr (16) uwSOBEL(0)<1> acc0.0<16;16,1>:uw 3:uw |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,34]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,32]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,164]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,36]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,160]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,162]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(1)<16;16,1> |
shr (16) uwSOBEL(1)<1> acc0.0<16;16,1>:uw 3:uw |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,66]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,64]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,196]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,68]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,192]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,194]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(2)<16;16,1> |
shr (16) uwSOBEL(2)<1> acc0.0<16;16,1>:uw 3:uw |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,98]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,96]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,228]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,100]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,224]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,226]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(3)<16;16,1> |
shr (16) uwSOBEL(3)<1> acc0.0<16;16,1>:uw 3:uw |
//Mov Median in CURBE_TEMP to free up temp space. |
mov (16) ubMEDIAN(0,0)<1> ubMEDIAN_TEMP(4,0)<16;16,1> |
mov (16) ubMEDIAN(0,16)<1> ubMEDIAN_TEMP(4,16)<16;16,1> |
mov (16) ubMEDIAN(0,32)<1> ubMEDIAN_TEMP(13,0)<16;16,1> |
mov (16) ubMEDIAN(0,48)<1> ubMEDIAN_TEMP(13,16)<16;16,1> |
// Find: |
// absDiff = abs(ubCurY - ubMedian) |
// Find the difference between pixel and median value. |
//Median is interleaved. So difference is also interleaved. |
//------------------------------------------------------------------------------------------ |
//Process 16 U and 16 V pixels here and rest later. |
// first row - v0,v1,v2 |
add (16) wDIFF(0)<1> r[a0.0,0]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(1)<1> r[a0.0,2]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(2)<1> r[a0.0,4]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(3)<1> r[a0.0,64]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(4)<1> r[a0.0,66]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(5)<1> r[a0.0,68]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
// third row - v6,v7,v8 |
add (16) wDIFF(6)<1> r[a0.0,128]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(7)<1> r[a0.0,130]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(8)<1> r[a0.0,132]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
// first row - v0,v1,v2 |
add (16) wDIFF(9)<1> r[a0.0,32]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(10)<1> r[a0.0,34]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(11)<1> r[a0.0,36]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(12)<1> r[a0.0,96]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(13)<1> r[a0.0,98]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(14)<1> r[a0.0,100]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
// third row - v6,v7,v8 |
add (16) wDIFF(15)<1> r[a0.0,160]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(16)<1> r[a0.0,162]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(17)<1> r[a0.0,164]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
//TODO - Change Later - rT |
add (1) a0.0:uw a0.0<0;1,0>:uw 64:uw |
// Find sum of all absolute differences AND |
// maximum absolute difference for 16 U and 16 V here. |
//First 2 rows of 8x4 |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(2)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(3)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(4)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(5)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(6)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(7)<16;16,1> |
add (16) uwSOAD(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF(8)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//------------ |
//DIFF(0-7) is not needed here. Populate it. |
// first row - v0,v1,v2 |
add (16) wDIFF(0)<1> r[a0.0,0]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(1)<1> r[a0.0,2]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(2)<1> r[a0.0,4]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(3)<1> r[a0.0,64]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(4)<1> r[a0.0,66]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(5)<1> r[a0.0,68]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
// third row - v6,v7 |
add (16) wDIFF(6)<1> r[a0.0,128]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(7)<1> r[a0.0,130]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
//------------ |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(0)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
//------------ |
//Load v8 - DIFF(8) |
add (16) wDIFF(8)<1> r[a0.0,132]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
//------------ |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(11)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(12)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(13)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(14)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(15)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(16)<16;16,1> |
add (16) uwSOAD(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF(17)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//------------ |
//DIFF(0-7) is not needed here. Populate it. |
// first row - v0,v1,v2 |
add (16) wDIFF(9)<1> r[a0.0,32]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(10)<1> r[a0.0,34]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(11)<1> r[a0.0,36]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(12)<1> r[a0.0,96]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(13)<1> r[a0.0,98]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(14)<1> r[a0.0,100]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
// third row - v6,v7 |
add (16) wDIFF(15)<1> r[a0.0,160]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(16)<1> r[a0.0,162]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
//------------ |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(1)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
//------------ |
//Load v8 - DIFF(8) |
add (16) wDIFF(17)<1> r[a0.0,164]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
//------------ |
//if ((sobel_edge_measure < m_SobelEdgeThreshold) && ((block_max-block_min) < m_LocalDiffThreshold)) |
// if (sigma_mb_min > sigma) |
// sigma_mb_min = sigma; |
//NOTE: block_min is always zero as median is one of the value in 3x3 block. So no need o calculate it. |
// So just do - |
//if ((sobel_edge_measure < m_SobelEdgeThreshold) && ((block_max) < m_LocalDiffThreshold) && ( sigma < sigma_mb_min)) |
// sigma_mb_min = sigma; |
//We are processing 32 bytes of U and 32 bytes of V - each of size 8x4. |
//Compare first 8 bytes with max possible (255). |
//Start above condition from second 8 bytes. |
//TODO - Change Later - rT |
// mov (1) pCUR_MIN_SOAD_8x4:uw 1752:uw //r54.24:ub |
//First row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(0)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(0)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(0)<16;16,1> 255:uw |
(f0.0) sel (16) uwSOBEL(0)<1> uwSOAD(0)<16;16,1> 255:uw |
//Second row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(1)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(1)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(1)<16;16,1> uwSOBEL(0)<16;16,1> |
(f0.0) mov (16) uwSOBEL(0)<1> uwSOAD(1)<16;16,1> |
// Find sum of all absolute differences AND |
// maximum absolute difference for 16 U and 16 V here. |
//Second 2 rows of 8x4 |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(2)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(3)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(4)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(5)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(6)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(7)<16;16,1> |
add (16) uwSOAD(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF(8)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(0)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(11)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(12)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(13)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(14)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(15)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(16)<16;16,1> |
add (16) uwSOAD(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF(17)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(1)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
//Third row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(2)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(0)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(0)<16;16,1> uwSOBEL(0)<16;16,1> |
(f0.0) mov (16) uwSOBEL(0)<1> uwSOAD(0)<16;16,1> |
//Fourth row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(3)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(1)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(1)<16;16,1> uwSOBEL(0)<16;16,1> |
(f0.0) mov (16) uwSOBEL(0)<1> uwSOAD(1)<16;16,1> |
cmp.l.f0.0 (8) null:uw uwSOBEL(0,0)<8;8,1> uwSOBEL(0,8)<8;8,1> |
(f0.0) sel (8) uwSOBEL(0)<1> uwSOBEL(0,0)<8;8,1> uwSOBEL(0,8)<8;8,1> |
cmp.l.f0.0 (4) null:uw uwSOBEL(0,0)<4;4,1> uwSOBEL(0,4)<4;4,1> |
(f0.0) sel (4) uwSOBEL(0)<1> uwSOBEL(0,0)<4;4,1> uwSOBEL(0,4)<4;4,1> |
cmp.l.f0.0 (2) null:uw uwSOBEL(0,0)<2;2,1> uwSOBEL(0,2)<2;2,1> |
(f0.0) sel (2) r[a0.1,0]<1>:uw uwSOBEL(0,0)<2;2,1> uwSOBEL(0,2)<2;2,1> |
// End of common.inc |
mov (1) ip:ud r7.7<0;1,0>:d |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/NV12_DN_422CP.g4a |
---|
0,0 → 1,539 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 113 // Total instruction count |
// 1 // Total kernel count |
.kernel NV12_DN_422CP |
.code |
// FileName: DN_PL_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) for planar format |
// FileName: DN.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x45E8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(4,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (2) mudMSGHDR_HIST(1)<1> udDNDI_RESP(4,0)<2;2,1> // Move denoise history to MRF (4x2) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x10003:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x50003:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | X | X | X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
//| X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
mov (1) mubMSGHDR_ENC_STATS(1,0)<1> ubDNDI_RESP(4,8)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,3)<1> uwDNDI_RESP(4,11)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,4)<1> uwDNDI_RESP(4,12)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,9)<1> uwDNDI_RESP(4,8)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,10)<1> uwDNDI_RESP(4,9)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Load_UV_NV12_16x8.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x8 block through DATAPORT |
// FileName: UVCopy_Load_16x8.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x8 block through DATAPORT |
//CHANGE : Read extra UV data to convert to 422. -rT |
//we are reading extra data in ALL cases irrespective of whether upsampling is reqd or not later on, to keep things simple. |
add (2) r27.0<1>:d r7.0<2;2,1>:w r4.4<2;2,1>:w // Source Y Block origin |
asr (1) r27.1<1>:d r27.1<0;1,0>:d 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) r27.2<1>:ud 0x4000F:ud { NoDDChk } // U/V block width and height (8x5) |
mov (8) mudMSGHDR_UVCOPY(0)<1> r27.0<8;8,1>:ud |
send (8) udDNDI_UV_RESP(0)<1> r36 0x4 0x2390001:ud |
//Update Header for Save |
mov (1) mudMSGHDR_UVCOPY(0,2)<1> 0x3000F:ud // U/V block width and height (8x4) |
// FileName: DN_Save_Y_16x8.asm |
// Author: Vivek Kumar |
// Description: Save one 16x8 blocks of Y channel of DN output for reference |
mov (8) mudDN_Y_OUT(0,0)<1> r0<8;8,1>:ud // message header |
mov (2) mudDN_Y_OUT(0,0)<1> r7.0<2;2,1>:w { NoDDClr } // X origin |
mov (1) mudDN_Y_OUT(0,2)<1> 0x7000F:ud { NoDDChk } // block width and height (16x8) |
//send out data through data port |
send (8) null<1>:d mudDN_Y_OUT 0x5 0xA0A8018:ud |
// FileName: DN_Save_UV_NV12_16x8.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x8 block through DATAPORT |
// FileName: UVCopy_Save_16x8.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x8 block through DATAPORT |
//Reuse the header from Load component |
//Header is modified at the end of load - to be usable for save. |
mov (8) mudMSGHDR_UVCOPY(1)<1> udDNDI_UV_RESP(0)<8;8,1> |
mov (8) mudMSGHDR_UVCOPY(2)<1> udDNDI_UV_RESP(1)<8;8,1> |
send (8) null<1>:d r36 0x5 0x60A8019:ud |
// FileName: DN_Upsample_UV_NV12_16x8.asm |
// Author: Tatiya, Rupesh |
// Description: Upconvert 420 UV to 422 |
// FileName: UVCopy_Upsample_UV_16x8.asm |
// Author: Tatiya, Rupesh |
// Description: Convert 42X UV to 422 - to be used for IECP. |
avg.sat (16) uwDNDI_UVCOPY_TEMP(0) ubDNDI_UV_RESP(0,0)<16;16,1> ubDNDI_UV_RESP(0,0)<16;16,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(1) ubDNDI_UV_RESP(0,0)<16;16,1> ubDNDI_UV_RESP(0,16)<16;16,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(2) ubDNDI_UV_RESP(0,16)<16;16,1> ubDNDI_UV_RESP(0,16)<16;16,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(3) ubDNDI_UV_RESP(0,16)<16;16,1> ubDNDI_UV_RESP(0,32)<16;16,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(4) ubDNDI_UV_RESP(0,32)<16;16,1> ubDNDI_UV_RESP(0,32)<16;16,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(5) ubDNDI_UV_RESP(0,32)<16;16,1> ubDNDI_UV_RESP(0,48)<16;16,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(6) ubDNDI_UV_RESP(0,48)<16;16,1> ubDNDI_UV_RESP(0,48)<16;16,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(7) ubDNDI_UV_RESP(0,48)<16;16,1> ubDNDI_UV_RESP(0,64)<16;16,1> |
mov (16) ubDNDI_RESP(5,1)<2> ubDNDI_UVCOPY_TEMP(0,0)<32;8,4> { NoDDClr } //Copy U data |
mov (16) ubDNDI_RESP(5,0)<2> ubDNDI_UVCOPY_TEMP(0,2)<32;8,4> { NoDDChk } //Copy V data |
mov (16) ubDNDI_RESP(5,33)<2> ubDNDI_UVCOPY_TEMP(2,0)<32;8,4> { NoDDClr } //Copy U data |
mov (16) ubDNDI_RESP(5,32)<2> ubDNDI_UVCOPY_TEMP(2,2)<32;8,4> { NoDDChk } //Copy V data |
mov (16) ubDNDI_RESP(5,65)<2> ubDNDI_UVCOPY_TEMP(4,0)<32;8,4> { NoDDClr } //Copy U data |
mov (16) ubDNDI_RESP(5,64)<2> ubDNDI_UVCOPY_TEMP(4,2)<32;8,4> { NoDDChk } //Copy V data |
mov (16) ubDNDI_RESP(5,97)<2> ubDNDI_UVCOPY_TEMP(6,0)<32;8,4> { NoDDClr } //Copy U data |
mov (16) ubDNDI_RESP(5,96)<2> ubDNDI_UVCOPY_TEMP(6,2)<32;8,4> { NoDDChk } //Copy V data |
// FileName: DN_Save_422CP_16x8.asm |
// Author: Vivek Kumar |
// Description: Save one 16x8 blocks of DN output to the color pipe in 4-2-2 format |
.declare mubMSGHDR_DN_OUT_2 Base=r36.0 ElementSize=1 Type=ub |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
shl (1) mdMSGHDR_DN_OUT(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mdMSGHDR_DN_OUT(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x7000F:ud { NoDDClr, NoDDChk } // block width and height (16x8) |
//M0.3 - 0 - CP Enable, 1 - Area of Interest, 3:2 Message Format(TBD), 4:3 - Ignored, 31:5 CP state pointer |
//Compose area-of-interest bit + color pipe state pointer |
or (1) mudMSGHDR_DN_OUT(0,3)<1> r2.4<0;1,0>:ud r7.26<0;1,0>:b { NoDDChk } |
// First 8 x 8 Block |
mov (8) mubMSGHDR_DN_OUT(1)<2> ubDNDI_RESP(0,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(1,16)<2> ubDNDI_RESP(0,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(2)<2> ubDNDI_RESP(0,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(2,16)<2> ubDNDI_RESP(0,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(3)<2> ubDNDI_RESP(0,64)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(3,16)<2> ubDNDI_RESP(0,80)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(4)<2> ubDNDI_RESP(0,96)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(4,16)<2> ubDNDI_RESP(0,112)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,1)<4> ubDNDI_RESP(5,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,17)<4> ubDNDI_RESP(5,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,3)<4> ubDNDI_RESP(5,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,19)<4> ubDNDI_RESP(5,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,1)<4> ubDNDI_RESP(5,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,17)<4> ubDNDI_RESP(5,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,3)<4> ubDNDI_RESP(5,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,19)<4> ubDNDI_RESP(5,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,1)<4> ubDNDI_RESP(5,65)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,17)<4> ubDNDI_RESP(5,81)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,3)<4> ubDNDI_RESP(5,64)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,19)<4> ubDNDI_RESP(5,80)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,1)<4> ubDNDI_RESP(5,97)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,17)<4> ubDNDI_RESP(5,113)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,3)<4> ubDNDI_RESP(5,96)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,19)<4> ubDNDI_RESP(5,112)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Second 8 x 8 Block |
mov (8) r36.0<1>:ud r31.0<8;8,1>:ud |
add (1) r36.0<1>:ud r36.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DN_OUT_2(1)<2> ubDNDI_RESP(0,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(1,16)<2> ubDNDI_RESP(0,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(2)<2> ubDNDI_RESP(0,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(2,16)<2> ubDNDI_RESP(0,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(3)<2> ubDNDI_RESP(0,72)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(3,16)<2> ubDNDI_RESP(0,88)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(4)<2> ubDNDI_RESP(0,104)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(4,16)<2> ubDNDI_RESP(0,120)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,1)<4> ubDNDI_RESP(5,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,17)<4> ubDNDI_RESP(5,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,3)<4> ubDNDI_RESP(5,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,19)<4> ubDNDI_RESP(5,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,1)<4> ubDNDI_RESP(5,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,17)<4> ubDNDI_RESP(5,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,3)<4> ubDNDI_RESP(5,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,19)<4> ubDNDI_RESP(5,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,1)<4> ubDNDI_RESP(5,73)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,17)<4> ubDNDI_RESP(5,89)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,3)<4> ubDNDI_RESP(5,72)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,19)<4> ubDNDI_RESP(5,88)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,1)<4> ubDNDI_RESP(5,105)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,17)<4> ubDNDI_RESP(5,121)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,3)<4> ubDNDI_RESP(5,104)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,19)<4> ubDNDI_RESP(5,120)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0xA0A801B:ud |
send (8) null<1>:d r36.0 0x5 0xA0A801B:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/NV12_DN_NV12.g4a |
---|
0,0 → 1,420 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 40 // Total instruction count |
// 1 // Total kernel count |
.kernel NV12_DN_NV12 |
.code |
// FileName: DN_PL_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) for planar format |
// FileName: DN.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x45E8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(4,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (2) mudMSGHDR_HIST(1)<1> udDNDI_RESP(4,0)<2;2,1> // Move denoise history to MRF (4x2) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x10003:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x50003:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | X | X | X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
//| X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
mov (1) mubMSGHDR_ENC_STATS(1,0)<1> ubDNDI_RESP(4,8)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,3)<1> uwDNDI_RESP(4,11)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,4)<1> uwDNDI_RESP(4,12)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,9)<1> uwDNDI_RESP(4,8)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,10)<1> uwDNDI_RESP(4,9)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Load_UV_NV12_16x8.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x8 block through DATAPORT |
// FileName: UVCopy_Load_16x8.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x8 block through DATAPORT |
//CHANGE : Read extra UV data to convert to 422. -rT |
//we are reading extra data in ALL cases irrespective of whether upsampling is reqd or not later on, to keep things simple. |
add (2) r27.0<1>:d r7.0<2;2,1>:w r4.4<2;2,1>:w // Source Y Block origin |
asr (1) r27.1<1>:d r27.1<0;1,0>:d 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) r27.2<1>:ud 0x4000F:ud { NoDDChk } // U/V block width and height (8x5) |
mov (8) mudMSGHDR_UVCOPY(0)<1> r27.0<8;8,1>:ud |
send (8) udDNDI_UV_RESP(0)<1> r36 0x4 0x2390001:ud |
//Update Header for Save |
mov (1) mudMSGHDR_UVCOPY(0,2)<1> 0x3000F:ud // U/V block width and height (8x4) |
// FileName: DN_Save_Y_16x8.asm |
// Author: Vivek Kumar |
// Description: Save one 16x8 blocks of Y channel of DN output for reference |
mov (8) mudDN_Y_OUT(0,0)<1> r0<8;8,1>:ud // message header |
mov (2) mudDN_Y_OUT(0,0)<1> r7.0<2;2,1>:w { NoDDClr } // X origin |
mov (1) mudDN_Y_OUT(0,2)<1> 0x7000F:ud { NoDDChk } // block width and height (16x8) |
//send out data through data port |
send (8) null<1>:d mudDN_Y_OUT 0x5 0xA0A8018:ud |
// FileName: DN_Save_UV_NV12_16x8.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x8 block through DATAPORT |
// FileName: UVCopy_Save_16x8.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x8 block through DATAPORT |
//Reuse the header from Load component |
//Header is modified at the end of load - to be usable for save. |
mov (8) mudMSGHDR_UVCOPY(1)<1> udDNDI_UV_RESP(0)<8;8,1> |
mov (8) mudMSGHDR_UVCOPY(2)<1> udDNDI_UV_RESP(1)<8;8,1> |
send (8) null<1>:d r36 0x5 0x60A8019:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PA_AVS_Buf_0.g4a |
---|
0,0 → 1,539 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 39 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PA_AVS_Buf_0.asm |
// Author: Vivek Kumar |
// Description: Loads 8x8 AVS/IEF Packed data into Buffer 0 |
// FileName : PA_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF Packed data into Buffer N |
//On IVB, for AVS module - set buffer pointers offset according to AVS Layout. |
//Change it to Sample Unorm layout in Shuffle modules. |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//NOTE: We need offsets for second halfof LAYER 0 - even if we do not load it. |
//Update the channel offset in the buffers for the lower 8x4 data for BUFFER_0. |
mov (1) r22.4<1>:ud 0x400040:ud |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_0_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x50EB400:ud //msg desc |
mov (1) r16.2:ud 0x00000000:ud // Enable ARGB channels |
//OPT: rAVS_PAYLOAD.1 and .7 --> use NODDCLR, NODDCHK -rT |
mov (1) r25.7<1>:ud r7.7:ud { NoDDClr } |
mov (1) r25.1<1>:ud r7.12:uw { NoDDChk } |
// set the vertical block number |
mov (8) r17.0:ud r25.0<8;8,1>:ud |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_AVS_WA_DONE_L0_0_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_AVS_WA_DONE_L0_0_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_0(0)<1> r16 0x2 a0.0:ud |
// Returns packed data in 16 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_0_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PA_AVS_Buf_1.g4a |
---|
0,0 → 1,531 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 37 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PA_AVS_Buf_1.asm |
// Author: Vivek Kumar |
// Description: Loads 8x8 AVS/IEF Packed data into Buffer 1 |
// FileName : PA_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF Packed data into Buffer N |
//On IVB, for AVS module - set buffer pointers offset according to AVS Layout. |
//Change it to Sample Unorm layout in Shuffle modules. |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_1_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x50EB400:ud //msg desc |
mov (1) r16.2:ud 0x00000000:ud // Enable ARGB channels |
// set the vertical block number |
add (1) r25.1<1>:ud r7.12:uw 1:ud |
mov (8) r17.0:ud r25.0<8;8,1>:ud |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_AVS_WA_DONE_L0_1_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_AVS_WA_DONE_L0_1_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_1(0)<1> r16 0x2 a0.0:ud |
// Returns packed data in 16 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_1_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PA_AVS_Buf_2.g4a |
---|
0,0 → 1,532 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 37 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PA_AVS_Buf_2.asm |
// Author: Vivek Kumar |
// Description: Loads 8x8 AVS/IEF Packed data into Buffer 2 |
// FileName : PA_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF Packed data into Buffer N |
//On IVB, for AVS module - set buffer pointers offset according to AVS Layout. |
//Change it to Sample Unorm layout in Shuffle modules. |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_2_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x50EB400:ud //msg desc |
mov (1) r16.2:ud 0x00000000:ud // Enable ARGB channels |
// set the vertical block number |
add (1) r25.1<1>:ud r7.12:uw 2:ud |
mov (8) r17.0:ud r25.0<8;8,1>:ud |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_AVS_WA_DONE_L0_2_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_AVS_WA_DONE_L0_2_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_2(0)<1> r16 0x2 a0.0:ud |
// Returns packed data in 16 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_2_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PA_AVS_Buf_3.g4a |
---|
0,0 → 1,532 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 37 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PA_AVS_Buf_3.asm |
// Author: Vivek Kumar |
// Description: Loads 8x8 AVS/IEF Packed data into Buffer 3 |
// FileName : PA_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF Packed data into Buffer N |
//On IVB, for AVS module - set buffer pointers offset according to AVS Layout. |
//Change it to Sample Unorm layout in Shuffle modules. |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_3_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x50EB400:ud //msg desc |
mov (1) r16.2:ud 0x00000000:ud // Enable ARGB channels |
// set the vertical block number |
add (1) r25.1<1>:ud r7.12:uw 3:ud |
mov (8) r17.0:ud r25.0<8;8,1>:ud |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_AVS_WA_DONE_L0_3_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_AVS_WA_DONE_L0_3_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_3(0)<1> r16 0x2 a0.0:ud |
// Returns packed data in 16 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_3_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PA_DI_422CP.g4a |
---|
0,0 → 1,461 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 87 // Total instruction count |
// 1 // Total kernel count |
.kernel PA_DI_422CP |
.code |
// FileName: DI.asm |
// Author: Vivek Kumar |
// Description: Tasks for DI only case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4AE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DI_Save_422CP_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in 422 format to Color Pipe (IECP) |
.declare mubMSGHDR_DI_OUT1_1 Base=r18.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT1_2 Base=r21.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT2_1 Base=r24.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT2_2 Base=r27.0 ElementSize=1 Type=ub |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:ud r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:ud r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3000F:ud { NoDDClr, NoDDChk } // Block width and height (16x8) |
//M0.3 - 0 - CP Enable, 1 - Area of Interest, 3:2 Message Format(TBD), 4:3 - Ignored, 31:5 CP state pointer |
//Compose area-of-interest bit + color pipe state pointer |
or (1) r27.3<1>:ud r2.4<0;1,0>:ud r7.26<0;1,0>:b { NoDDChk } |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r24.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y; First 8x4 block |
mov (8) mubMSGHDR_DI_OUT1_1(1)<2> ubDNDI_RESP(0,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(1,16)<2> ubDNDI_RESP(0,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(2)<2> ubDNDI_RESP(0,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(2,16)<2> ubDNDI_RESP(0,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 2nd field U, V; First 8x4 block |
mov (4) mubMSGHDR_DI_OUT1_1(1,1)<4> ubDNDI_RESP(2,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,17)<4> ubDNDI_RESP(2,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,3)<4> ubDNDI_RESP(2,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,19)<4> ubDNDI_RESP(2,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,1)<4> ubDNDI_RESP(2,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,17)<4> ubDNDI_RESP(2,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,3)<4> ubDNDI_RESP(2,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,19)<4> ubDNDI_RESP(2,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Pack 2nd field Y; Second 8x4 block |
mov (8) r21.0<1>:ud r18.0<8;8,1>:ud |
add (1) r21.0<1>:ud r21.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DI_OUT1_2(1)<2> ubDNDI_RESP(0,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(1,16)<2> ubDNDI_RESP(0,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(2)<2> ubDNDI_RESP(0,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(2,16)<2> ubDNDI_RESP(0,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 2nd field U, V; Second 8x4 block |
mov (4) mubMSGHDR_DI_OUT1_2(1,1)<4> ubDNDI_RESP(2,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,17)<4> ubDNDI_RESP(2,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,3)<4> ubDNDI_RESP(2,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,19)<4> ubDNDI_RESP(2,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,1)<4> ubDNDI_RESP(2,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,17)<4> ubDNDI_RESP(2,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,3)<4> ubDNDI_RESP(2,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,19)<4> ubDNDI_RESP(2,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
send (8) null<1>:d r18.0 0x5 0x60A801B:ud |
send (8) null<1>:d r21.0 0x5 0x60A801B:ud |
// Pack 1st field Y; 1st 8x4 block |
mov (8) mubMSGHDR_DI_OUT2_1(1)<2> ubDNDI_RESP(4,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(1,16)<2> ubDNDI_RESP(4,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(2)<2> ubDNDI_RESP(4,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(2,16)<2> ubDNDI_RESP(4,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 1st field U,V; 1st 8x4 block |
mov (4) mubMSGHDR_DI_OUT2_1(1,1)<4> ubDNDI_RESP(6,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,17)<4> ubDNDI_RESP(6,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,3)<4> ubDNDI_RESP(6,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,19)<4> ubDNDI_RESP(6,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,1)<4> ubDNDI_RESP(6,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,17)<4> ubDNDI_RESP(6,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,3)<4> ubDNDI_RESP(6,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,19)<4> ubDNDI_RESP(6,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Pack 1st field Y; 2nd 8x4 block |
mov (8) r27.0<1>:ud r24.0<8;8,1>:ud |
add (1) r27.0<1>:ud r27.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DI_OUT2_2(1)<2> ubDNDI_RESP(4,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(1,16)<2> ubDNDI_RESP(4,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(2)<2> ubDNDI_RESP(4,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(2,16)<2> ubDNDI_RESP(4,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 1st field U, V; 2nd 8x4 block |
mov (4) mubMSGHDR_DI_OUT2_2(1,1)<4> ubDNDI_RESP(6,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,17)<4> ubDNDI_RESP(6,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,3)<4> ubDNDI_RESP(6,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,19)<4> ubDNDI_RESP(6,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,1)<4> ubDNDI_RESP(6,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,17)<4> ubDNDI_RESP(6,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,3)<4> ubDNDI_RESP(6,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,19)<4> ubDNDI_RESP(6,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
send (8) null<1>:d r24.0 0x5 0x60A801E:ud |
send (8) null<1>:d r27.0 0x5 0x60A801E:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PA_DI_PA.g4a |
---|
0,0 → 1,399 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 57 // Total instruction count |
// 1 // Total kernel count |
.kernel PA_DI_PA |
.code |
// FileName: DI.asm |
// Author: Vivek Kumar |
// Description: Tasks for DI only case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4AE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DI_Save_PA_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in Packed format |
add (4) a0.4<1>:uw r2.28<4;4,1>:ub 608:w // Initial Y,U,V offset in YUV422 block; it starts at m20 |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:d r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:d r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3001F:ud { NoDDChk } // Block width and height (32x8) |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r23.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y |
mov (16) r[a0.4, 0]<2> ubDNDI_RESP(0,0) { NoDDClr } |
mov (16) r[a0.4, 32]<2> ubDNDI_RESP(0,16) { NoDDClr } |
mov (16) r[a0.4, 64]<2> ubDNDI_RESP(0,32) { NoDDClr } |
mov (16) r[a0.4, 96]<2> ubDNDI_RESP(0,48) { NoDDClr } |
// Pack 2nd field U |
mov (8) r[a0.5, 0]<4> ubDNDI_RESP(2,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 32]<4> ubDNDI_RESP(2,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 64]<4> ubDNDI_RESP(2,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 96]<4> ubDNDI_RESP(2,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 2nd field V |
mov (8) r[a0.6, 0]<4> ubDNDI_RESP(2,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 32]<4> ubDNDI_RESP(2,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 64]<4> ubDNDI_RESP(2,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 96]<4> ubDNDI_RESP(2,48)<16;8,2> { NoDDChk } //Vpixels |
// Pack 1st field Y |
mov (16) r[a0.4, 160]<2> ubDNDI_RESP(4,0) { NoDDClr } |
mov (16) r[a0.4, 192]<2> ubDNDI_RESP(4,16) { NoDDClr } |
mov (16) r[a0.4, 224]<2> ubDNDI_RESP(4,32) { NoDDClr } |
mov (16) r[a0.4, 256]<2> ubDNDI_RESP(4,48) { NoDDClr } |
// Pack 1st field U |
mov (8) r[a0.5, 160]<4> ubDNDI_RESP(6,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 192]<4> ubDNDI_RESP(6,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 224]<4> ubDNDI_RESP(6,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 256]<4> ubDNDI_RESP(6,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 1st field V |
mov (8) r[a0.6, 160]<4> ubDNDI_RESP(6,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 192]<4> ubDNDI_RESP(6,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 224]<4> ubDNDI_RESP(6,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 256]<4> ubDNDI_RESP(6,48)<16;8,2> { NoDDChk } //Vpixels |
//save the previous frame |
send (8) null<1>:d r18.0 0x5 0xA0A801B:ud |
//save the current frame |
send (8) null<1>:d r23.0 0x5 0xA0A801E:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PA_DNDI_422CP.g4a |
---|
0,0 → 1,537 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 127 // Total instruction count |
// 1 // Total kernel count |
.kernel PA_DNDI_422CP |
.code |
// FileName: DNDI_PL_Core.asm |
// Author: Tatiya, Rupesh |
// FileName: DNDI_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN+DI case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4CE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (1) mudMSGHDR_HIST(1)<1> udDNDI_RESP(9,0)<0;1,0> // Move denoise history to MRF (4x1) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x3:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Save_PA_16x4.asm |
// Author: Vivek Kumar |
// Description: Save one 16x4 blocks of DN output in Packed format for reference |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w r1.28<0;1,0>:ub 1:w |
add (4) a0.4<1>:uw r4.0<4;4,1>:ub 1024:w // Initial Y,U,V offset in YUV422 block; it starts at m14 |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
shl (1) mdMSGHDR_DN_OUT(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mdMSGHDR_DN_OUT(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x3001F:ud { NoDDChk } // block width and height (32x8) |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
mov (16) r[a0.4, 0]<2>:ub ubDNDI_RESP(10,0) { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (16) r[a0.4, 32]<2>:ub ubDNDI_RESP(4,16) { NoDDClr } // 1st field luma from current frame (line 1,3) |
mov (16) r[a0.4, 64]<2>:ub ubDNDI_RESP(10,16) { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (16) r[a0.4, 96]<2>:ub ubDNDI_RESP(5,16) { NoDDClr } // 1st field luma from current frame (line 1,3) |
mov (8) r[a0.5, 0]<4>:ub ubDNDI_RESP(11,1)<16;8,2> { NoDDClr, NoDDChk } // 2nd field U from current frame (line 0,2) |
mov (8) r[a0.5, 32]<4>:ub ubDNDI_RESP(6,17)<16;8,2> { NoDDClr, NoDDChk } // 1st field U from current frame (line 1,3) |
mov (8) r[a0.5, 64]<4>:ub ubDNDI_RESP(11,17)<16;8,2> { NoDDClr, NoDDChk } // 2nd field U from current frame (line 0,2) |
mov (8) r[a0.5, 96]<4>:ub ubDNDI_RESP(7,17)<16;8,2> { NoDDClr, NoDDChk } // 1st field U from current frame (line 1,3) |
mov (8) r[a0.6, 0]<4>:ub ubDNDI_RESP(11,0)<16;8,2> { NoDDChk } // 2nd field V from current frame (line 0,2) |
mov (8) r[a0.6, 32]<4>:ub ubDNDI_RESP(6,16)<16;8,2> { NoDDChk } // 1st field U from current frame (line 1,3) |
mov (8) r[a0.6, 64]<4>:ub ubDNDI_RESP(11,16)<16;8,2> { NoDDChk } // 2nd field V from current frame (line 0,2) |
mov (8) r[a0.6, 96]<4>:ub ubDNDI_RESP(7,16)<16;8,2> { NoDDChk } // 1st field U from current frame (line 1,3) |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
mov (16) r[a0.4, 0]<2>:ub ubDNDI_RESP(4,0) { NoDDClr } // 1st field luma from current frame (line 0,2) |
mov (16) r[a0.4, 32]<2>:ub ubDNDI_RESP(10,0) { NoDDClr } // 2nd field luma from current frame (line 1,3) |
mov (16) r[a0.4, 64]<2>:ub ubDNDI_RESP(5,0) { NoDDClr } // 1st field luma from current frame (line 0,2) |
mov (16) r[a0.4, 96]<2>:ub ubDNDI_RESP(10,16) { NoDDClr } // 2nd field luma from current frame (line 1,3) |
mov (8) r[a0.5, 0]<4>:ub ubDNDI_RESP(6,1)<16;8,2> { NoDDClr, NoDDChk } // 1st field U from current frame (line 0,2) |
mov (8) r[a0.5, 32]<4>:ub ubDNDI_RESP(11,1)<16;8,2> { NoDDClr, NoDDChk } // 2nd field U from current frame (line 1,3) |
mov (8) r[a0.5, 64]<4>:ub ubDNDI_RESP(7,1)<16;8,2> { NoDDClr, NoDDChk } // 1st field U from current frame (line 0,2) |
mov (8) r[a0.5, 96]<4>:ub ubDNDI_RESP(11,17)<16;8,2> { NoDDClr, NoDDChk } // 2nd field U from current frame (line 1,3) |
mov (8) r[a0.6, 0]<4>:ub ubDNDI_RESP(6,0)<16;8,2> { NoDDChk } // 1st field V from current frame (line 0,2) |
mov (8) r[a0.6, 32]<4>:ub ubDNDI_RESP(11,0)<16;8,2> { NoDDChk } // 2nd field V from current frame (line 1,3) |
mov (8) r[a0.6, 64]<4>:ub ubDNDI_RESP(7,0)<16;8,2> { NoDDChk } // 1st field V from current frame (line 0,2) |
mov (8) r[a0.6, 96]<4>:ub ubDNDI_RESP(11,16)<16;8,2> { NoDDChk } // 2nd field V from current frame (line 1,3) |
SAVE_DN_CURR: |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0xA0A8018:ud |
// FileName: DI_Save_422CP_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in 422 format to Color Pipe (IECP) |
.declare mubMSGHDR_DI_OUT1_1 Base=r18.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT1_2 Base=r21.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT2_1 Base=r24.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT2_2 Base=r27.0 ElementSize=1 Type=ub |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:ud r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:ud r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3000F:ud { NoDDClr, NoDDChk } // Block width and height (16x8) |
//M0.3 - 0 - CP Enable, 1 - Area of Interest, 3:2 Message Format(TBD), 4:3 - Ignored, 31:5 CP state pointer |
//Compose area-of-interest bit + color pipe state pointer |
or (1) r27.3<1>:ud r2.4<0;1,0>:ud r7.26<0;1,0>:b { NoDDChk } |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r24.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y; First 8x4 block |
mov (8) mubMSGHDR_DI_OUT1_1(1)<2> ubDNDI_RESP(0,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(1,16)<2> ubDNDI_RESP(0,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(2)<2> ubDNDI_RESP(0,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(2,16)<2> ubDNDI_RESP(0,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 2nd field U, V; First 8x4 block |
mov (4) mubMSGHDR_DI_OUT1_1(1,1)<4> ubDNDI_RESP(2,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,17)<4> ubDNDI_RESP(2,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,3)<4> ubDNDI_RESP(2,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,19)<4> ubDNDI_RESP(2,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,1)<4> ubDNDI_RESP(2,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,17)<4> ubDNDI_RESP(2,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,3)<4> ubDNDI_RESP(2,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,19)<4> ubDNDI_RESP(2,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Pack 2nd field Y; Second 8x4 block |
mov (8) r21.0<1>:ud r18.0<8;8,1>:ud |
add (1) r21.0<1>:ud r21.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DI_OUT1_2(1)<2> ubDNDI_RESP(0,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(1,16)<2> ubDNDI_RESP(0,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(2)<2> ubDNDI_RESP(0,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(2,16)<2> ubDNDI_RESP(0,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 2nd field U, V; Second 8x4 block |
mov (4) mubMSGHDR_DI_OUT1_2(1,1)<4> ubDNDI_RESP(2,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,17)<4> ubDNDI_RESP(2,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,3)<4> ubDNDI_RESP(2,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,19)<4> ubDNDI_RESP(2,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,1)<4> ubDNDI_RESP(2,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,17)<4> ubDNDI_RESP(2,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,3)<4> ubDNDI_RESP(2,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,19)<4> ubDNDI_RESP(2,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
send (8) null<1>:d r18.0 0x5 0x60A801B:ud |
send (8) null<1>:d r21.0 0x5 0x60A801B:ud |
// Pack 1st field Y; 1st 8x4 block |
mov (8) mubMSGHDR_DI_OUT2_1(1)<2> ubDNDI_RESP(4,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(1,16)<2> ubDNDI_RESP(4,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(2)<2> ubDNDI_RESP(4,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(2,16)<2> ubDNDI_RESP(4,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 1st field U,V; 1st 8x4 block |
mov (4) mubMSGHDR_DI_OUT2_1(1,1)<4> ubDNDI_RESP(6,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,17)<4> ubDNDI_RESP(6,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,3)<4> ubDNDI_RESP(6,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,19)<4> ubDNDI_RESP(6,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,1)<4> ubDNDI_RESP(6,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,17)<4> ubDNDI_RESP(6,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,3)<4> ubDNDI_RESP(6,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,19)<4> ubDNDI_RESP(6,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Pack 1st field Y; 2nd 8x4 block |
mov (8) r27.0<1>:ud r24.0<8;8,1>:ud |
add (1) r27.0<1>:ud r27.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DI_OUT2_2(1)<2> ubDNDI_RESP(4,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(1,16)<2> ubDNDI_RESP(4,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(2)<2> ubDNDI_RESP(4,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(2,16)<2> ubDNDI_RESP(4,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 1st field U, V; 2nd 8x4 block |
mov (4) mubMSGHDR_DI_OUT2_2(1,1)<4> ubDNDI_RESP(6,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,17)<4> ubDNDI_RESP(6,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,3)<4> ubDNDI_RESP(6,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,19)<4> ubDNDI_RESP(6,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,1)<4> ubDNDI_RESP(6,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,17)<4> ubDNDI_RESP(6,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,3)<4> ubDNDI_RESP(6,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,19)<4> ubDNDI_RESP(6,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
send (8) null<1>:d r24.0 0x5 0x60A801E:ud |
send (8) null<1>:d r27.0 0x5 0x60A801E:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PA_DNDI_PA.g4a |
---|
0,0 → 1,475 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 97 // Total instruction count |
// 1 // Total kernel count |
.kernel PA_DNDI_PA |
.code |
// FileName: DNDI_PL_Core.asm |
// Author: Tatiya, Rupesh |
// FileName: DNDI_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN+DI case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4CE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (1) mudMSGHDR_HIST(1)<1> udDNDI_RESP(9,0)<0;1,0> // Move denoise history to MRF (4x1) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x3:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Save_PA_16x4.asm |
// Author: Vivek Kumar |
// Description: Save one 16x4 blocks of DN output in Packed format for reference |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w r1.28<0;1,0>:ub 1:w |
add (4) a0.4<1>:uw r4.0<4;4,1>:ub 1024:w // Initial Y,U,V offset in YUV422 block; it starts at m14 |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
shl (1) mdMSGHDR_DN_OUT(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mdMSGHDR_DN_OUT(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x3001F:ud { NoDDChk } // block width and height (32x8) |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
mov (16) r[a0.4, 0]<2>:ub ubDNDI_RESP(10,0) { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (16) r[a0.4, 32]<2>:ub ubDNDI_RESP(4,16) { NoDDClr } // 1st field luma from current frame (line 1,3) |
mov (16) r[a0.4, 64]<2>:ub ubDNDI_RESP(10,16) { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (16) r[a0.4, 96]<2>:ub ubDNDI_RESP(5,16) { NoDDClr } // 1st field luma from current frame (line 1,3) |
mov (8) r[a0.5, 0]<4>:ub ubDNDI_RESP(11,1)<16;8,2> { NoDDClr, NoDDChk } // 2nd field U from current frame (line 0,2) |
mov (8) r[a0.5, 32]<4>:ub ubDNDI_RESP(6,17)<16;8,2> { NoDDClr, NoDDChk } // 1st field U from current frame (line 1,3) |
mov (8) r[a0.5, 64]<4>:ub ubDNDI_RESP(11,17)<16;8,2> { NoDDClr, NoDDChk } // 2nd field U from current frame (line 0,2) |
mov (8) r[a0.5, 96]<4>:ub ubDNDI_RESP(7,17)<16;8,2> { NoDDClr, NoDDChk } // 1st field U from current frame (line 1,3) |
mov (8) r[a0.6, 0]<4>:ub ubDNDI_RESP(11,0)<16;8,2> { NoDDChk } // 2nd field V from current frame (line 0,2) |
mov (8) r[a0.6, 32]<4>:ub ubDNDI_RESP(6,16)<16;8,2> { NoDDChk } // 1st field U from current frame (line 1,3) |
mov (8) r[a0.6, 64]<4>:ub ubDNDI_RESP(11,16)<16;8,2> { NoDDChk } // 2nd field V from current frame (line 0,2) |
mov (8) r[a0.6, 96]<4>:ub ubDNDI_RESP(7,16)<16;8,2> { NoDDChk } // 1st field U from current frame (line 1,3) |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
mov (16) r[a0.4, 0]<2>:ub ubDNDI_RESP(4,0) { NoDDClr } // 1st field luma from current frame (line 0,2) |
mov (16) r[a0.4, 32]<2>:ub ubDNDI_RESP(10,0) { NoDDClr } // 2nd field luma from current frame (line 1,3) |
mov (16) r[a0.4, 64]<2>:ub ubDNDI_RESP(5,0) { NoDDClr } // 1st field luma from current frame (line 0,2) |
mov (16) r[a0.4, 96]<2>:ub ubDNDI_RESP(10,16) { NoDDClr } // 2nd field luma from current frame (line 1,3) |
mov (8) r[a0.5, 0]<4>:ub ubDNDI_RESP(6,1)<16;8,2> { NoDDClr, NoDDChk } // 1st field U from current frame (line 0,2) |
mov (8) r[a0.5, 32]<4>:ub ubDNDI_RESP(11,1)<16;8,2> { NoDDClr, NoDDChk } // 2nd field U from current frame (line 1,3) |
mov (8) r[a0.5, 64]<4>:ub ubDNDI_RESP(7,1)<16;8,2> { NoDDClr, NoDDChk } // 1st field U from current frame (line 0,2) |
mov (8) r[a0.5, 96]<4>:ub ubDNDI_RESP(11,17)<16;8,2> { NoDDClr, NoDDChk } // 2nd field U from current frame (line 1,3) |
mov (8) r[a0.6, 0]<4>:ub ubDNDI_RESP(6,0)<16;8,2> { NoDDChk } // 1st field V from current frame (line 0,2) |
mov (8) r[a0.6, 32]<4>:ub ubDNDI_RESP(11,0)<16;8,2> { NoDDChk } // 2nd field V from current frame (line 1,3) |
mov (8) r[a0.6, 64]<4>:ub ubDNDI_RESP(7,0)<16;8,2> { NoDDChk } // 1st field V from current frame (line 0,2) |
mov (8) r[a0.6, 96]<4>:ub ubDNDI_RESP(11,16)<16;8,2> { NoDDChk } // 2nd field V from current frame (line 1,3) |
SAVE_DN_CURR: |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0xA0A8018:ud |
// FileName: DI_Save_PA_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in Packed format |
add (4) a0.4<1>:uw r2.28<4;4,1>:ub 608:w // Initial Y,U,V offset in YUV422 block; it starts at m20 |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:d r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:d r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3001F:ud { NoDDChk } // Block width and height (32x8) |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r23.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y |
mov (16) r[a0.4, 0]<2> ubDNDI_RESP(0,0) { NoDDClr } |
mov (16) r[a0.4, 32]<2> ubDNDI_RESP(0,16) { NoDDClr } |
mov (16) r[a0.4, 64]<2> ubDNDI_RESP(0,32) { NoDDClr } |
mov (16) r[a0.4, 96]<2> ubDNDI_RESP(0,48) { NoDDClr } |
// Pack 2nd field U |
mov (8) r[a0.5, 0]<4> ubDNDI_RESP(2,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 32]<4> ubDNDI_RESP(2,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 64]<4> ubDNDI_RESP(2,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 96]<4> ubDNDI_RESP(2,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 2nd field V |
mov (8) r[a0.6, 0]<4> ubDNDI_RESP(2,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 32]<4> ubDNDI_RESP(2,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 64]<4> ubDNDI_RESP(2,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 96]<4> ubDNDI_RESP(2,48)<16;8,2> { NoDDChk } //Vpixels |
// Pack 1st field Y |
mov (16) r[a0.4, 160]<2> ubDNDI_RESP(4,0) { NoDDClr } |
mov (16) r[a0.4, 192]<2> ubDNDI_RESP(4,16) { NoDDClr } |
mov (16) r[a0.4, 224]<2> ubDNDI_RESP(4,32) { NoDDClr } |
mov (16) r[a0.4, 256]<2> ubDNDI_RESP(4,48) { NoDDClr } |
// Pack 1st field U |
mov (8) r[a0.5, 160]<4> ubDNDI_RESP(6,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 192]<4> ubDNDI_RESP(6,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 224]<4> ubDNDI_RESP(6,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 256]<4> ubDNDI_RESP(6,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 1st field V |
mov (8) r[a0.6, 160]<4> ubDNDI_RESP(6,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 192]<4> ubDNDI_RESP(6,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 224]<4> ubDNDI_RESP(6,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 256]<4> ubDNDI_RESP(6,48)<16;8,2> { NoDDChk } //Vpixels |
//save the previous frame |
send (8) null<1>:d r18.0 0x5 0xA0A801B:ud |
//save the current frame |
send (8) null<1>:d r23.0 0x5 0xA0A801E:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PA_DNUV_PA.g4a |
---|
0,0 → 1,2704 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 1319 // Total instruction count |
// 1 // Total kernel count |
.kernel YUY2_DNUV_YUY2 |
.code |
//Module : DN_UV_Setup |
//Author : Tatiya, Rupesh |
//Description : Initial Set-up for DN_UV |
// Module name : ChromaDenoise.inc |
// Author : Tatiya, Rupesh |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================================================== |
//Interface for serpent mode Chroma Denoise, added by Le |
//====================================================== |
//r1 |
//noise history thresholds (low and high) |
//temporal difference thresholds (high and low) |
//noise history thresholds (low and high) |
//#define ubNoiseHistMaxHigh r1.22 |
//#define ubNoiseHistMaxLow r1.23 |
//#define ubNoiseHistDeltaHigh r1.24 |
//#define ubNoiseHistDeltaLow r1.25 |
//Gaussian thresholds |
//temporal difference thresholds (default) |
//r2 |
//history thresholds (default) |
//denoise factor (0-63) |
//====================== Binding table (Explicit To DNUV)========================================= |
//Used by DN_UV kernels |
//Pointer to Current Frame UV |
//r1-r6 |
//CURBE GRFs used as TEMP : Used for max computation and storing max temporarily. : r1-r6 |
.declare ubCURBE_TEMP Base=r1.0 ElementSize=1 Type=ub |
.declare uwCURBE_TEMP Base=r1.0 ElementSize=2 Type=uw |
.declare wCURBE_TEMP Base=r1.0 ElementSize=2 Type=w |
.declare fCURBE_TEMP Base=r1.0 ElementSize=4 Type=f |
.declare udCURBE_TEMP Base=r1.0 ElementSize=4 Type=ud |
.declare uwMAX_ABS_DIFF Base=r5.0 ElementSize=2 Type=uw |
//r1 |
//r3 |
//r4 |
//r7 |
//All of the following has to defined in Same GRF for optimal performance. |
//r8-24 |
//Previous Frame UV |
.declare udPREV_UV Base=r8.0 ElementSize=4 Type=ud |
.declare ubPREV_UV Base=r8.0 ElementSize=1 Type=ub |
//r25-48 |
//TEMP Space for any Usage. |
//========================================================================= |
//Definations and declarations for serpent mode Chroma Denoise, added by Le |
//========================================================================= |
.declare udGNE_UV Base=r24.0 ElementSize=4 Type=ud |
.declare fGNE_UV Base=r24.0 ElementSize=4 Type=f |
.declare ubGNE_UV Base=r24.0 ElementSize=1 Type=ub |
.declare udMSGHDR_BNE_SERP Base=r25.0 ElementSize=4 Type=ud |
.declare udMSGSRC_BNE_SERP Base=r26.0 ElementSize=4 Type=ud |
.declare ubDN_UV_Thresholds Base=r26.0 ElementSize=1 Type=ub |
.declare ubDN_UV_Thresholds_Temp Base=r27.0 ElementSize=1 Type=ub |
.declare udDN_UV_Thresholds Base=r26.0 ElementSize=4 Type=ud |
.declare udDN_UV_Thresholds_Temp Base=r27.0 ElementSize=4 Type=ud |
.declare fDN_UV_Thresholds Base=r26.0 ElementSize=4 Type=f |
.declare fDN_UV_Thresholds_Temp Base=r27.0 ElementSize=4 Type=f |
//==================================================================================== |
//TEMP23: To hold V data for PL3 surfaces |
.declare udCURR_V_TEMP Base=r25.0 ElementSize=4 Type=ud |
.declare ubCURR_V_TEMP Base=r25.0 ElementSize=1 Type=ub |
//GRFs to calculate Median: r25-r42 |
.declare ubMEDIAN_TEMP Base=r25.0 ElementSize=1 Type=ub |
//18 GRFs to hold difference : r25-r42 |
.declare wDIFF Base=r25.0 ElementSize=2 Type=w |
.declare uwDIFF Base=r25.0 ElementSize=2 Type=uw |
//Temporal Diff |
.declare wDIFF_TEMPORAL Base=r25.0 ElementSize=2 Type=w |
.declare ubDIFF_TEMPORAL Base=r25.0 ElementSize=1 Type=ub |
//4 GRFs to hold Sobel Value : r43-46 |
.declare wSOBEL_X Base=r43.0 ElementSize=2 Type=w |
.declare uwSOBEL Base=r43.0 ElementSize=2 Type=uw |
//2 GRFs to hold SOAD temporarily: r47-48 |
.declare uwSOAD Base=r47.0 ElementSize=2 Type=uw |
//Temp GRFs to hold extra YUYV pixels: r43-r48 |
.declare ubTEMP5 Base=r43.0 ElementSize=1 Type=ub |
//Temp GRFs in Median Calculation: r47-r48 |
.declare ubTEMP1 Base=r47.0 ElementSize=1 Type=ub |
.declare uwTEMP0 Base=r48.0 ElementSize=2 Type=uw |
.declare ubTEMP0 Base=r48.0 ElementSize=1 Type=ub |
//Temp Space to store Median : r49-50 |
.declare ubMEDIAN Base=r49.0 ElementSize=1 Type=ub |
//r49 |
//r50 |
//Message Source |
//r51 |
//DN_UV History Surface |
.declare udHIST_UV Base=r51.0 ElementSize=4 Type=ud |
.declare ubHIST_UV Base=r51.0 ElementSize=1 Type=ub |
//r52 - r91 |
//r52 |
//Current Frame UV |
.declare udCURR_UV Base=r52.0 ElementSize=4 Type=ud |
.declare ubCURR_UV Base=r52.0 ElementSize=1 Type=ub |
//r54 |
//CURBE COPY |
//r55 |
.declare uwSOAD_MIN_8x4 Base=r56.0 ElementSize=2 Type=uw |
//r61 |
//r62 |
//History Surface Temp Origin |
//r63 |
//Current Frame Y Temp Origin |
//BNE Surface Origin |
//r70 |
.declare uwDIFF_TEMPORAL_SUM4x4 Base=r70.0 ElementSize=2 Type=uw //4 GRFs |
//r74-91 : For Saving Dest UV (PL2/PL3) |
.declare ubMSGPAYLOAD_UV0 Base=r75.0 ElementSize=1 Type=ub |
.declare ubMSGPAYLOAD_U Base=r75.0 ElementSize=1 Type=ub |
.declare ubMSGPAYLOAD_UV1 Base=r84.0 ElementSize=1 Type=ub |
.declare ubMSGPAYLOAD_V Base=r84.0 ElementSize=1 Type=ub |
//r90 |
.declare uwDIFF_TEMPORAL_SUM4x4_FINAL Base=r90.0 ElementSize=2 Type=uw //2 GRFs |
//r92-127 |
//Current Frame Y |
//r92 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_0 Base=r92 ElementSize=2 Type=uw |
//r101 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_1 Base=r101 ElementSize=2 Type=uw |
//r110 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_2 Base=r110 ElementSize=2 Type=uw |
//r119 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_3 Base=r119 ElementSize=2 Type=uw |
.declare udCURR_Y0 Base=r93.0 ElementSize=4 Type=ud |
.declare ubCURR_Y0 Base=r93.0 ElementSize=1 Type=ub |
.declare udCURR_Y1 Base=r102.0 ElementSize=4 Type=ud |
.declare ubCURR_Y1 Base=r102.0 ElementSize=1 Type=ub |
.declare udCURR_Y2 Base=r111.0 ElementSize=4 Type=ud |
.declare ubCURR_Y2 Base=r111.0 ElementSize=1 Type=ub |
.declare udCURR_Y3 Base=r120.0 ElementSize=4 Type=ud |
.declare ubCURR_Y3 Base=r120.0 ElementSize=1 Type=ub |
//r92: To hold U data for PL3 surfaces |
.declare udCURR_U_TEMP Base=r92.0 ElementSize=4 Type=ud |
.declare ubCURR_U_TEMP Base=r92.0 ElementSize=1 Type=ub |
//r112: To hold U data for PL3 surfaces |
.declare udPREV_U_TEMP Base=r112.0 ElementSize=4 Type=ud |
.declare ubPREV_U_TEMP Base=r112.0 ElementSize=1 Type=ub |
//r120: To hold U data for PL3 surfaces |
.declare udPREV_V_TEMP Base=r120.0 ElementSize=4 Type=ud |
.declare ubPREV_V_TEMP Base=r120.0 ElementSize=1 Type=ub |
// Initialize message source with r0. |
mov (8) r50.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r92.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r101.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r110.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r119.0<1>:ud r0.0<8;8,1>:ud |
//Module Name : DN_UV_YUY2_Load_Curr_Frame_YUV |
//Author : Tatiya, Rupesh |
//Description : Loads Current Frame YUV data for YUY2 input. |
//Module name : DN_UV_Load_Curr_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Loads Current Frame (UV only). |
// We need 4 extra rows (2 per field) and 2 extra pixel (1 each side) for both U and V each. |
// The processing size is 16x16 U and V each. So we need : U size - 18x20, V size - 18x20, UV size - 36x20, YUYV size - 72x20. |
//72x20 interleaved YUYV block is partitioned as follows: |
// <------ 36 --------> <--------36 -------> |
// ------------------------------------------ |
// | | 32x2 B1 | 32x2 B2 | | |
// | 4 |--------------------------------| 4 | |
// | x | | | x | |
// |20 | 32x8 A1 | 32x8 A3 | 20| |
// | |---------------|----------------| | |
// | C1| 32x8 A2 | 32x8 A4 | C2| |
// | | | | | |
// | |--------------------------------| | |
// | | 32x2 B3 | 32x2 B4 | | |
// ------------------------------------------ |
// |
// Cordinates: (x, y), (x, y+8), (x+32, y), (x+32, y+8), (x-4, y-2), (x+64, y-2),(x, y-2), (x+32, y-2), (x, y+16), (x+32, y+16) |
//UV surface origin: (2xORIX, ORIY) |
add (2) r7.4<1>:w r7.0<2;2,1>:w r4.4<2;2,1>:w { AccWrEn } // Source Block origin |
shl (1) r7.4<1>:w acc0.4<0;1,0>:w 1:w |
//A1 |
mov (2) r92.0<1>:d r7.4<2;2,1>:w { AccWrEn } // Source Block origin |
mov (1) r92.2<1>:ud 0x7001F:ud |
send (8) udCURR_Y0(0)<1> r92 0x4 0x2890003:ud |
//A2 |
mov (1) r101.0<1>:d acc0.0<0;1,0>:d |
add (1) r101.1<1>:d acc0.1<0;1,0>:d 8:d |
mov (1) r101.2<1>:ud 0x7001F:ud |
send (8) udCURR_Y1(0)<1> r101 0x4 0x2890003:ud |
//B1 |
mov (1) r50.0<1>:d acc0.0<0;1,0>:d |
add (1) r50.1<1>:d acc0.1<0;1,0>:d -2:d |
mov (1) r50.2<1>:ud 0x1001F:ud |
send (8) udCURR_UV(0)<1> r50 0x4 0x2290003:ud |
//B3 |
mov (1) r50.0<1>:d acc0.0<0;1,0>:d |
add (1) r50.1<1>:d acc0.1<0;1,0>:d 16:d |
send (8) udCURR_UV(18)<1> r50 0x4 0x2290003:ud |
//C1 |
add (1) r50.0<1>:d acc0.0<0;1,0>:d -4:d |
add (1) r50.1<1>:d acc0.1<0;1,0>:d -2:d |
mov (1) r50.2<1>:ud 0x130003:ud |
send (8) ubTEMP5(0)<1> r50 0x4 0x2390003:ud |
//A3 |
add (1) r110.0<1>:d acc0.0<0;1,0>:d 32:d |
mov (1) r110.1<1>:d acc0.1<0;1,0>:d |
mov (1) r110.2<1>:ud 0x7001F:ud |
send (8) udCURR_Y2(0)<1> r110 0x4 0x2890003:ud |
//A4 |
add (1) r119.0<1>:d acc0.0<0;1,0>:d 32:d |
add (1) r119.1<1>:d acc0.1<0;1,0>:d 8:d |
mov (1) r119.2<1>:ud 0x7001F:ud |
send (8) udCURR_Y3(0)<1> r119 0x4 0x2890003:ud |
//B2 |
add (1) r50.0<1>:d acc0.0<0;1,0>:d 32:d |
add (1) r50.1<1>:d acc0.1<0;1,0>:d -2:d |
mov (1) r50.2<1>:ud 0x1001F:ud |
send (8) udCURR_UV(20)<1> r50 0x4 0x2290003:ud |
//B4 |
add (1) r50.0<1>:d acc0.0<0;1,0>:d 32:d |
add (1) r50.1<1>:d acc0.1<0;1,0>:d 16:d |
send (8) udCURR_UV(38)<1> r50 0x4 0x2290003:ud |
//C2 |
add (1) r50.0<1>:d acc0.0<0;1,0>:d 64:d |
add (1) r50.1<1>:d acc0.1<0;1,0>:d -2:d |
mov (1) r50.2<1>:ud 0x130003:ud |
send (8) ubTEMP5(3)<1> r50 0x4 0x2390003:ud |
//History Origin, Current Y origin and BNE surface origin - all are in inline GRF. Use , . -rT. |
//Calculate Origin For History Surface: (ORIX/4, ORIY/4) |
shr (2) r7.2<1>:w r7.0<2;2,1>:w 2:w |
//Calculate Origin For BNE Surface: (ORIX/8, ORIY/8) |
shr (2) r7.6<1>:w r7.0<2;2,1>:w 3:w |
//Module Name : DN_UV_YUY2_Load_Prev_Frame_YUV.asm |
//Author : Tatiya, Rupesh |
//Description : Loads Pevious Frame YUV data for YUY2 input. |
//Module Name : DN_UV_Load_Prev_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Loads Prev Frame (UV only). U size - 16x16, V size - 16x16, UV size - 32x16, YUYV size - 64x16. |
mov (2) r50.0<1>:d r7.4<2;2,1>:w { AccWrEn } // Source lock origin |
mov (1) r50.2<1>:ud 0x7001F:ud // U/V block width and height (16x16) |
send (8) udPREV_UV(0)<1> r50 0x4 0x2890000:ud |
add (1) r50.1<1>:ud acc0.1<0;1,0>:d 8:w // Add 16 to X origin |
send (8) udPREV_UV(8)<1> r50 0x4 0x2890000:ud |
add (1) r50.0<1>:ud acc0.0<0;1,0>:d 32:w |
mov (1) r50.1<1>:ud acc0.1<0;1,0>:d |
send (8) udPREV_UV(16)<1> r50 0x4 0x2890000:ud |
add (1) r50.1<1>:ud acc0.0<0;1,0>:d 8:w |
send (8) udPREV_UV(24)<1> r50 0x4 0x2890000:ud |
//TODO - See if History loading can be combined with Prev Frame Load. - rT |
//Module name : DN_UV_Load_Hist_UV |
//Author : Tatiya, Rupesh |
//Description : Load DN History for UV denoise. 4x4 for each U & V. |
mov (2) r50.0<1>:d r7.2<2;2,1>:w |
mov (1) r50.2<1>:ud 0x30007:ud |
send (8) udHIST_UV(0)<1> r50 0x4 0x2190022:ud |
//Module Name: DN_UV_YUY2_Extract_Curr_Frame_UV |
//Author : Tatiya, Rupesh |
//Description: Extract UV data from current YUY2 frame. |
//72x20 interleaved YUYV block is partitioned as follows: |
// <------ 36 --------> <--------36 -------> |
// ------------------------------------------ |
// | | 32x2 B1 | 32x2 B2 | | |
// | 4 |--------------------------------| 4 | |
// | x | | | x | |
// |20 | 32x8 A1 | 32x8 A3 | 20| |
// | |---------------|----------------| | |
// | C1| 32x8 A2 | 32x8 A4 | C2| |
// | | | | | |
// | |--------------------------------| | |
// | | 32x2 B3 | 32x2 B4 | | |
// ------------------------------------------ |
// Set SRC pointers according to Input packing i.e. YUYV, YVYU, UYVY, VYUY |
add (1) a0.0<1>:uw r4.1<0;1,0>:ub 2976:w //A1 |
add (1) a0.1<1>:uw r4.1<0;1,0>:ub 3264:w //A2 |
add (1) a0.2<1>:uw r4.1<0;1,0>:ub 3552:w //A3 |
add (1) a0.3<1>:uw r4.1<0;1,0>:ub 3840:w //A4 |
add (1) a0.4<1>:uw r4.1<0;1,0>:ub 1664:w //B1 |
add (1) a0.5<1>:uw r4.1<0;1,0>:ub 2240:w //B3B2 |
add (1) a0.6<1>:uw r4.1<0;1,0>:ub 2880:w //B4 |
add (1) a0.7<1>:uw r4.1<0;1,0>:ub 1376:w //C1C2 |
//Left 20x20 UV : 16x16 UV (Original)+4 extra rows(2 per field on top/bottom)+4 extra pixels(2 on left/right) |
//A1 |
mov (16) ubCURR_UV(2,2)<1> r[a0.0, 0]<32;16,2> |
mov (16) ubCURR_UV(3,2)<1> r[a0.0, 32]<32;16,2> |
mov (16) ubCURR_UV(4,2)<1> r[a0.0, 64]<32;16,2> |
mov (16) ubCURR_UV(5,2)<1> r[a0.0, 96]<32;16,2> |
mov (16) ubCURR_UV(6,2)<1> r[a0.0, 128]<32;16,2> |
mov (16) ubCURR_UV(7,2)<1> r[a0.0, 160]<32;16,2> |
mov (16) ubCURR_UV(8,2)<1> r[a0.0, 192]<32;16,2> |
mov (16) ubCURR_UV(9,2)<1> r[a0.0, 224]<32;16,2> |
//A2 |
mov (16) ubCURR_UV(10,2)<1> r[a0.1, 0]<32;16,2> |
mov (16) ubCURR_UV(11,2)<1> r[a0.1, 32]<32;16,2> |
mov (16) ubCURR_UV(12,2)<1> r[a0.1, 64]<32;16,2> |
mov (16) ubCURR_UV(13,2)<1> r[a0.1, 96]<32;16,2> |
mov (16) ubCURR_UV(14,2)<1> r[a0.1, 128]<32;16,2> |
mov (16) ubCURR_UV(15,2)<1> r[a0.1, 160]<32;16,2> |
mov (16) ubCURR_UV(16,2)<1> r[a0.1, 192]<32;16,2> |
mov (16) ubCURR_UV(17,2)<1> r[a0.1, 224]<32;16,2> |
//B1 |
mov (16) ubCURR_UV(0,2)<1> r[a0.4, 0]<32;16,2> |
mov (16) ubCURR_UV(1,2)<1> r[a0.4, 32]<32;16,2> |
//B3 |
mov (16) ubCURR_UV(18,2)<1> r[a0.5, 0]<32;16,2> |
mov (16) ubCURR_UV(19,2)<1> r[a0.5, 32]<32;16,2> |
//TODO - Find a way to reduce this 40 SIMD2 instructions - rT |
//C1 |
mov (2) ubCURR_UV(0,0)<1> r[a0.7, 0]<4;2,2> |
mov (2) ubCURR_UV(1,0)<1> r[a0.7, 4]<4;2,2> |
mov (2) ubCURR_UV(2,0)<1> r[a0.7, 8]<4;2,2> |
mov (2) ubCURR_UV(3,0)<1> r[a0.7, 12]<4;2,2> |
mov (2) ubCURR_UV(4,0)<1> r[a0.7, 16]<4;2,2> |
mov (2) ubCURR_UV(5,0)<1> r[a0.7, 20]<4;2,2> |
mov (2) ubCURR_UV(6,0)<1> r[a0.7, 24]<4;2,2> |
mov (2) ubCURR_UV(7,0)<1> r[a0.7, 28]<4;2,2> |
mov (2) ubCURR_UV(8,0)<1> r[a0.7, 32]<4;2,2> |
mov (2) ubCURR_UV(9,0)<1> r[a0.7, 36]<4;2,2> |
mov (2) ubCURR_UV(10,0)<1> r[a0.7, 40]<4;2,2> |
mov (2) ubCURR_UV(11,0)<1> r[a0.7, 44]<4;2,2> |
mov (2) ubCURR_UV(12,0)<1> r[a0.7, 48]<4;2,2> |
mov (2) ubCURR_UV(13,0)<1> r[a0.7, 52]<4;2,2> |
mov (2) ubCURR_UV(14,0)<1> r[a0.7, 56]<4;2,2> |
mov (2) ubCURR_UV(15,0)<1> r[a0.7, 60]<4;2,2> |
mov (2) ubCURR_UV(16,0)<1> r[a0.7, 64]<4;2,2> |
mov (2) ubCURR_UV(17,0)<1> r[a0.7, 68]<4;2,2> |
mov (2) ubCURR_UV(18,0)<1> r[a0.7, 72]<4;2,2> |
mov (2) ubCURR_UV(19,0)<1> r[a0.7, 76]<4;2,2> |
//2 right bytes from B2 - 2 rows |
mov (2) ubCURR_UV(0,18)<1> r[a0.5, 64]<4;2,2> |
mov (2) ubCURR_UV(1,18)<1> r[a0.5, 96]<4;2,2> |
//2 right bytes from A3 - 8 rows |
mov (2) ubCURR_UV(2,18)<1> r[a0.2, 0]<4;2,2> |
mov (2) ubCURR_UV(3,18)<1> r[a0.2, 32]<4;2,2> |
mov (2) ubCURR_UV(4,18)<1> r[a0.2, 64]<4;2,2> |
mov (2) ubCURR_UV(5,18)<1> r[a0.2, 96]<4;2,2> |
mov (2) ubCURR_UV(6,18)<1> r[a0.2, 128]<4;2,2> |
mov (2) ubCURR_UV(7,18)<1> r[a0.2, 160]<4;2,2> |
mov (2) ubCURR_UV(8,18)<1> r[a0.2, 192]<4;2,2> |
mov (2) ubCURR_UV(9,18)<1> r[a0.2, 224]<4;2,2> |
//2 right bytes from A4 - 8 rows |
mov (2) ubCURR_UV(10,18)<1> r[a0.3, 0]<4;2,2> |
mov (2) ubCURR_UV(11,18)<1> r[a0.3, 32]<4;2,2> |
mov (2) ubCURR_UV(12,18)<1> r[a0.3, 64]<4;2,2> |
mov (2) ubCURR_UV(13,18)<1> r[a0.3, 96]<4;2,2> |
mov (2) ubCURR_UV(14,18)<1> r[a0.3, 128]<4;2,2> |
mov (2) ubCURR_UV(15,18)<1> r[a0.3, 160]<4;2,2> |
mov (2) ubCURR_UV(16,18)<1> r[a0.3, 192]<4;2,2> |
mov (2) ubCURR_UV(17,18)<1> r[a0.3, 224]<4;2,2> |
//2 right bytes from B4 - 2 rows |
mov (2) ubCURR_UV(18,18)<1> r[a0.6, 0]<4;2,2> |
mov (2) ubCURR_UV(19,18)<1> r[a0.6, 32]<4;2,2> |
//Right 20x20 UV : 16x16 UV (Original)+4 extra rows(2 per field on top/bottom)+4 extra pixels(2 on left/right) |
//A3 |
mov (16) ubCURR_UV(22,2)<1> r[a0.2, 0]<32;16,2> |
mov (16) ubCURR_UV(23,2)<1> r[a0.2, 32]<32;16,2> |
mov (16) ubCURR_UV(24,2)<1> r[a0.2, 64]<32;16,2> |
mov (16) ubCURR_UV(25,2)<1> r[a0.2, 96]<32;16,2> |
mov (16) ubCURR_UV(26,2)<1> r[a0.2, 128]<32;16,2> |
mov (16) ubCURR_UV(27,2)<1> r[a0.2, 160]<32;16,2> |
mov (16) ubCURR_UV(28,2)<1> r[a0.2, 192]<32;16,2> |
mov (16) ubCURR_UV(29,2)<1> r[a0.2, 224]<32;16,2> |
//A4 |
mov (16) ubCURR_UV(30,2)<1> r[a0.3, 0]<32;16,2> |
mov (16) ubCURR_UV(31,2)<1> r[a0.3, 32]<32;16,2> |
mov (16) ubCURR_UV(32,2)<1> r[a0.3, 64]<32;16,2> |
mov (16) ubCURR_UV(33,2)<1> r[a0.3, 96]<32;16,2> |
mov (16) ubCURR_UV(34,2)<1> r[a0.3, 128]<32;16,2> |
mov (16) ubCURR_UV(35,2)<1> r[a0.3, 160]<32;16,2> |
mov (16) ubCURR_UV(36,2)<1> r[a0.3, 192]<32;16,2> |
mov (16) ubCURR_UV(37,2)<1> r[a0.3, 224]<32;16,2> |
//B2 |
mov (16) ubCURR_UV(20,2)<1> r[a0.5, 64]<32;16,2> |
mov (16) ubCURR_UV(21,2)<1> r[a0.5, 96]<32;16,2> |
//B4 |
mov (16) ubCURR_UV(38,2)<1> r[a0.6, 0]<32;16,2> |
mov (16) ubCURR_UV(39,2)<1> r[a0.6, 32]<32;16,2> |
//TODO - Find a way to reduce this 40 SIMD2 instructions - rT |
//C2 |
mov (2) ubCURR_UV(20,18)<1> r[a0.7, 96]<4;2,2> |
mov (2) ubCURR_UV(21,18)<1> r[a0.7, 100]<4;2,2> |
mov (2) ubCURR_UV(22,18)<1> r[a0.7, 104]<4;2,2> |
mov (2) ubCURR_UV(23,18)<1> r[a0.7, 108]<4;2,2> |
mov (2) ubCURR_UV(24,18)<1> r[a0.7, 112]<4;2,2> |
mov (2) ubCURR_UV(25,18)<1> r[a0.7, 116]<4;2,2> |
mov (2) ubCURR_UV(26,18)<1> r[a0.7, 120]<4;2,2> |
mov (2) ubCURR_UV(27,18)<1> r[a0.7, 124]<4;2,2> |
mov (2) ubCURR_UV(28,18)<1> r[a0.7, 128]<4;2,2> |
mov (2) ubCURR_UV(29,18)<1> r[a0.7, 132]<4;2,2> |
mov (2) ubCURR_UV(30,18)<1> r[a0.7, 136]<4;2,2> |
mov (2) ubCURR_UV(31,18)<1> r[a0.7, 140]<4;2,2> |
mov (2) ubCURR_UV(32,18)<1> r[a0.7, 144]<4;2,2> |
mov (2) ubCURR_UV(33,18)<1> r[a0.7, 148]<4;2,2> |
mov (2) ubCURR_UV(34,18)<1> r[a0.7, 152]<4;2,2> |
mov (2) ubCURR_UV(35,18)<1> r[a0.7, 156]<4;2,2> |
mov (2) ubCURR_UV(36,18)<1> r[a0.7, 160]<4;2,2> |
mov (2) ubCURR_UV(37,18)<1> r[a0.7, 164]<4;2,2> |
mov (2) ubCURR_UV(38,18)<1> r[a0.7, 168]<4;2,2> |
mov (2) ubCURR_UV(39,18)<1> r[a0.7, 172]<4;2,2> |
//2 left bytes from B1 - 2 rows |
mov (2) ubCURR_UV(20,0)<1> r[a0.4, 28]<4;2,2> |
mov (2) ubCURR_UV(21,0)<1> r[a0.4, 60]<4;2,2> |
//2 left bytes from A1 - 8 rows |
mov (2) ubCURR_UV(22,0)<1> r[a0.0, 28]<4;2,2> |
mov (2) ubCURR_UV(23,0)<1> r[a0.0, 60]<4;2,2> |
mov (2) ubCURR_UV(24,0)<1> r[a0.0, 92]<4;2,2> |
mov (2) ubCURR_UV(25,0)<1> r[a0.0, 124]<4;2,2> |
mov (2) ubCURR_UV(26,0)<1> r[a0.0, 156]<4;2,2> |
mov (2) ubCURR_UV(27,0)<1> r[a0.0, 188]<4;2,2> |
mov (2) ubCURR_UV(28,0)<1> r[a0.0, 220]<4;2,2> |
mov (2) ubCURR_UV(29,0)<1> r[a0.0, 252]<4;2,2> |
//2 left bytes from A2 - 8 rows |
mov (2) ubCURR_UV(30,0)<1> r[a0.1, 28]<4;2,2> |
mov (2) ubCURR_UV(31,0)<1> r[a0.1, 60]<4;2,2> |
mov (2) ubCURR_UV(32,0)<1> r[a0.1, 92]<4;2,2> |
mov (2) ubCURR_UV(33,0)<1> r[a0.1, 124]<4;2,2> |
mov (2) ubCURR_UV(34,0)<1> r[a0.1, 156]<4;2,2> |
mov (2) ubCURR_UV(35,0)<1> r[a0.1, 188]<4;2,2> |
mov (2) ubCURR_UV(36,0)<1> r[a0.1, 220]<4;2,2> |
mov (2) ubCURR_UV(37,0)<1> r[a0.1, 252]<4;2,2> |
//2 left bytes from B3 - 2 rows |
mov (2) ubCURR_UV(38,0)<1> r[a0.5, 28]<4;2,2> |
mov (2) ubCURR_UV(39,0)<1> r[a0.5, 60]<4;2,2> |
// Module Name : DN_UV_YUY2_Extract_Prev_Frame_UV |
// Author : Tatiya, Rupesh |
// Description : Extract UV from previous frame YUY2. |
// Set SRC pointers according to Input packing i.e. YUYV, YVYU, UYVY, VYUY |
add (1) a0.0<1>:uw r4.1<0;1,0>:ub 256:w |
add (1) a0.1<1>:uw r4.1<0;1,0>:ub 768:w |
mov (16) ubPREV_UV(0,0)<1> r[a0.0, 0]<32;16,2>:ub |
mov (16) ubPREV_UV(0,16)<1> r[a0.0, 32]<32;16,2>:ub |
mov (16) ubPREV_UV(1,0)<1> r[a0.0, 64]<32;16,2>:ub |
mov (16) ubPREV_UV(1,16)<1> r[a0.0, 96]<32;16,2>:ub |
mov (16) ubPREV_UV(2,0)<1> r[a0.0, 128]<32;16,2>:ub |
mov (16) ubPREV_UV(2,16)<1> r[a0.0, 160]<32;16,2>:ub |
mov (16) ubPREV_UV(3,0)<1> r[a0.0, 192]<32;16,2>:ub |
mov (16) ubPREV_UV(3,16)<1> r[a0.0, 224]<32;16,2>:ub |
mov (16) ubPREV_UV(4,0)<1> r[a0.0, 256]<32;16,2>:ub |
mov (16) ubPREV_UV(4,16)<1> r[a0.0, 288]<32;16,2>:ub |
mov (16) ubPREV_UV(5,0)<1> r[a0.0, 320]<32;16,2>:ub |
mov (16) ubPREV_UV(5,16)<1> r[a0.0, 352]<32;16,2>:ub |
mov (16) ubPREV_UV(6,0)<1> r[a0.0, 384]<32;16,2>:ub |
mov (16) ubPREV_UV(6,16)<1> r[a0.0, 416]<32;16,2>:ub |
mov (16) ubPREV_UV(7,0)<1> r[a0.0, 448]<32;16,2>:ub |
mov (16) ubPREV_UV(7,16)<1> r[a0.0, 480]<32;16,2>:ub |
mov (16) ubPREV_UV(8,0)<1> r[a0.1, 0]<32;16,2>:ub |
mov (16) ubPREV_UV(8,16)<1> r[a0.1, 32]<32;16,2>:ub |
mov (16) ubPREV_UV(9,0)<1> r[a0.1, 64]<32;16,2>:ub |
mov (16) ubPREV_UV(9,16)<1> r[a0.1, 96]<32;16,2>:ub |
mov (16) ubPREV_UV(10,0)<1> r[a0.1, 128]<32;16,2>:ub |
mov (16) ubPREV_UV(10,16)<1> r[a0.1, 160]<32;16,2>:ub |
mov (16) ubPREV_UV(11,0)<1> r[a0.1, 192]<32;16,2>:ub |
mov (16) ubPREV_UV(11,16)<1> r[a0.1, 224]<32;16,2>:ub |
mov (16) ubPREV_UV(12,0)<1> r[a0.1, 256]<32;16,2>:ub |
mov (16) ubPREV_UV(12,16)<1> r[a0.1, 288]<32;16,2>:ub |
mov (16) ubPREV_UV(13,0)<1> r[a0.1, 320]<32;16,2>:ub |
mov (16) ubPREV_UV(13,16)<1> r[a0.1, 352]<32;16,2>:ub |
mov (16) ubPREV_UV(14,0)<1> r[a0.1, 384]<32;16,2>:ub |
mov (16) ubPREV_UV(14,16)<1> r[a0.1, 416]<32;16,2>:ub |
mov (16) ubPREV_UV(15,0)<1> r[a0.1, 448]<32;16,2>:ub |
mov (16) ubPREV_UV(15,16)<1> r[a0.1, 480]<32;16,2>:ub |
//Module Name : DN_UV_Noise_Detection_UV |
//Author : Tatiya, Rupesh |
//Description : Performs noise detection on 16x16 U and 16x16 V each. |
//Module Name : DN_UV_Move_CURBE_Inline_UV.asm |
//Author : Tatiya, Rupesh |
//Mov CURBE data to another space - so that it can be used as Temp Space --> r1 - r6 |
mov (4) r54.28<1>:ub r2.28<4;4,1>:ub //Dest. YUY2 offset |
mov (2) r54.5<1>:ud r4.0<4;2,2>:ud //Src YUY2 offset and Origin offset |
mov (4) r55.28<1>:ub r1.0<4;4,1>:ub |
mov (8) r61.20<1>:ub r1.4<8;8,1>:ub |
mov (4) r61.28<1>:ub r1.12<4;4,1>:ub |
//Move Inline Data to another space - so that it can be used as Temp Space --> r7 |
mov (4) r62.10<1>:w r7.0<4;4,1>:w |
mov (4) r63.10<1>:w r7.4<4;4,1>:w |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
mov (1) a0.0:uw 1664:uw |
mov (1) a0.1:uw 1816:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 1792:uw |
mov (1) a0.1:uw 1820:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 1920:uw |
mov (1) a0.1:uw 1848:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2048:uw |
mov (1) a0.1:uw 1852:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
mov (1) a0.0:uw 2304:uw |
mov (1) a0.1:uw 1880:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2432:uw |
mov (1) a0.1:uw 1884:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2560:uw |
mov (1) a0.1:uw 1912:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2688:uw |
mov (1) a0.1:uw 1916:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module : DN_UV_Noise_Reduction_UV |
//Author : Tatiya, Rupesh |
//Description : Performs Noise Reduction on 16x16 U and 16x16 V. |
//Tasks : 1. Update weight history |
// 2. Find if it block is motion block |
// 3. Compute Denoised Pixel. |
//History is 1+1 byte every 4x4 U and 4x4 V. |
cmp.l.f0.0 (16) null<1>:w ubHIST_UV(0,0)<16;16,1> r61.20<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w ubHIST_UV(0,0)<16;16,1> r61.22<0;2,1>:ub |
mov (16) uwCURBE_TEMP(0)<1> 0:w |
mov (16) uwCURBE_TEMP(1)<1> 0:w |
//Compute diff betn curr and prev. - First 16 lines |
// 8 lines here |
add (16) wDIFF_TEMPORAL(0)<1> ubCURR_UV(2,2)<16;16,1> -ubPREV_UV(0,0)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(1)<1> ubCURR_UV(3,2)<16;16,1> -ubPREV_UV(0,16)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(2)<1> ubCURR_UV(4,2)<16;16,1> -ubPREV_UV(0,32)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(3)<1> ubCURR_UV(5,2)<16;16,1> -ubPREV_UV(0,48)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(4)<1> ubCURR_UV(6,2)<16;16,1> -ubPREV_UV(0,64)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(5)<1> ubCURR_UV(7,2)<16;16,1> -ubPREV_UV(0,80)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(6)<1> ubCURR_UV(8,2)<16;16,1> -ubPREV_UV(0,96)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(7)<1> ubCURR_UV(9,2)<16;16,1> -ubPREV_UV(0,112)<16;16,1> //Diff UV interleaved |
//Update WT HIST |
(-f0.0) shr (16) uwCURBE_TEMP(0)<1> ubHIST_UV(0,0)<16;16,1> 1:w |
(f1.0) add (16) uwCURBE_TEMP(2)<1> ubHIST_UV(0,0)<16;16,1> r61.24<0;2,1>:ub |
(f0.0) mov (16) uwCURBE_TEMP(2)<1> r61.20<0;2,1>:ub |
(-f0.0.anyv) mov (16) uwCURBE_TEMP(2)<1> ubHIST_UV(0,0)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w ubHIST_UV(0,16)<16;16,1> r61.20<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w ubHIST_UV(0,16)<16;16,1> r61.22<0;2,1>:ub |
//Compute diff betn curr and prev. - First 16 lines |
// 8 more lines here |
add (16) wDIFF_TEMPORAL(8)<1> ubCURR_UV(10,2)<16;16,1> -ubPREV_UV(0,128)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(9)<1> ubCURR_UV(11,2)<16;16,1> -ubPREV_UV(0,144)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(10)<1> ubCURR_UV(12,2)<16;16,1> -ubPREV_UV(0,160)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(11)<1> ubCURR_UV(13,2)<16;16,1> -ubPREV_UV(0,176)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(12)<1> ubCURR_UV(14,2)<16;16,1> -ubPREV_UV(0,192)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(13)<1> ubCURR_UV(15,2)<16;16,1> -ubPREV_UV(0,208)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(14)<1> ubCURR_UV(16,2)<16;16,1> -ubPREV_UV(0,224)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(15)<1> ubCURR_UV(17,2)<16;16,1> -ubPREV_UV(0,240)<16;16,1> //Diff UV interleaved |
(-f0.0) shr (16) uwCURBE_TEMP(1)<1> ubHIST_UV(0,16)<16;16,1> 1:w |
(f1.0) add (16) uwCURBE_TEMP(3)<1> ubHIST_UV(0,16)<16;16,1> r61.24<0;2,1>:ub |
(f0.0) mov (16) uwCURBE_TEMP(3)<1> r61.20<0;2,1>:ub |
(-f0.0.anyv) mov(16) uwCURBE_TEMP(3)<1> ubHIST_UV(0,16)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(0)<16;16,1> (abs)wDIFF_TEMPORAL(1)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(2)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(3)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(4)<16;16,1> (abs)wDIFF_TEMPORAL(5)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(6)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(7)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(8)<16;16,1> (abs)wDIFF_TEMPORAL(9)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(10)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(2)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(11)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(12)<16;16,1> (abs)wDIFF_TEMPORAL(13)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(14)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(3)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(15)<16;16,1> |
//Compute diff betn curr and prev. - Second 16 lines |
//13 lines. |
add (16) wDIFF_TEMPORAL(16)<1> ubCURR_UV(22,2)<16;16,1> -ubPREV_UV(8,0)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(17)<1> ubCURR_UV(23,2)<16;16,1> -ubPREV_UV(8,16)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(18)<1> ubCURR_UV(24,2)<16;16,1> -ubPREV_UV(8,32)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(19)<1> ubCURR_UV(25,2)<16;16,1> -ubPREV_UV(8,48)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(20)<1> ubCURR_UV(26,2)<16;16,1> -ubPREV_UV(8,64)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(21)<1> ubCURR_UV(27,2)<16;16,1> -ubPREV_UV(8,80)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(22)<1> ubCURR_UV(28,2)<16;16,1> -ubPREV_UV(8,96)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(23)<1> ubCURR_UV(29,2)<16;16,1> -ubPREV_UV(8,112)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(24)<1> ubCURR_UV(30,2)<16;16,1> -ubPREV_UV(8,128)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(25)<1> ubCURR_UV(31,2)<16;16,1> -ubPREV_UV(8,144)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(26)<1> ubCURR_UV(32,2)<16;16,1> -ubPREV_UV(8,160)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(27)<1> ubCURR_UV(33,2)<16;16,1> -ubPREV_UV(8,176)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(28)<1> ubCURR_UV(34,2)<16;16,1> -ubPREV_UV(8,192)<16;16,1> //Diff UV interleaved |
//3 more lines |
add (16) wCURBE_TEMP(4)<1> ubCURR_UV(35,2)<16;16,1> -ubPREV_UV(8,208)<16;16,1> //Diff UV interleaved |
add (16) wCURBE_TEMP(5)<1> ubCURR_UV(36,2)<16;16,1> -ubPREV_UV(8,224)<16;16,1> //Diff UV interleaved |
add (16) wCURBE_TEMP(6)<1> ubCURR_UV(37,2)<16;16,1> -ubPREV_UV(8,240)<16;16,1> //Diff UV interleaved |
//16x4 to 8x4 - First 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> uwDIFF_TEMPORAL_SUM4x4(2,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(2,2)<4;2,1> |
//8x4 to 4x4 - First 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4_FINAL(0)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> { AccWrEn } |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(16)<16;16,1> (abs)wDIFF_TEMPORAL(17)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(18)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(19)<16;16,1> |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(20)<16;16,1> (abs)wDIFF_TEMPORAL(21)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(22)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(23)<16;16,1> |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(24)<16;16,1> (abs)wDIFF_TEMPORAL(25)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(26)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(2)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(27)<16;16,1> |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(28)<16;16,1> (abs)wCURBE_TEMP(4)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wCURBE_TEMP(5)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(3)<1> acc0.0<16;16,1>:uw (abs)wCURBE_TEMP(6)<16;16,1> |
//Find if block is motion block - First 16 lines |
cmp.g.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_FINAL(0)<16;16,1> r61.26<0;2,1>:ub |
//Move TEMPORAL_SUM4x4 for SIMD16 use later. |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,0)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,2)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,4)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,6)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,8)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,10)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,12)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,14)<0;2,1> |
//Pick Appropriate Weight History Based on motion. - First 16 lines |
(-f0.0) mov (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(2)<16;16,1> |
//Actual DN - First 16 lines |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(0)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(0)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(2,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(2,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(2,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,0)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,8)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(0)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(0)<1> ubCURR_UV(2,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(0)<1> wDIFF_TEMPORAL(0)<16;16,1> ubCURR_UV(2,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(1)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(1)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(3,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(3,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(3,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,16)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,24)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(1)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(1)<1> ubCURR_UV(3,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(1)<1> wDIFF_TEMPORAL(1)<16;16,1> ubCURR_UV(3,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(2)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(2)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(4,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(4,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(4,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,32)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,40)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(2)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(2)<1> ubCURR_UV(4,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(2)<1> wDIFF_TEMPORAL(2)<16;16,1> ubCURR_UV(4,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(3)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(3)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(5,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(5,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(5,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,48)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,56)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(3)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(3)<1> ubCURR_UV(5,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(3)<1> wDIFF_TEMPORAL(3)<16;16,1> ubCURR_UV(5,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(4)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(4)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(6,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(6,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(6,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,64)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,72)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(4)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(4)<1> ubCURR_UV(6,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(4)<1> wDIFF_TEMPORAL(4)<16;16,1> ubCURR_UV(6,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(5)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(5)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(7,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(7,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(7,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,80)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,88)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(5)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(5)<1> ubCURR_UV(7,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(5)<1> wDIFF_TEMPORAL(5)<16;16,1> ubCURR_UV(7,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(6)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(6)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(8,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(8,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(8,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,96)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,104)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(6)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(6)<1> ubCURR_UV(8,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(6)<1> wDIFF_TEMPORAL(6)<16;16,1> ubCURR_UV(8,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(7)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(7)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(9,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(9,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(9,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,112)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,120)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(7)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(7)<1> ubCURR_UV(9,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(7)<1> wDIFF_TEMPORAL(7)<16;16,1> ubCURR_UV(9,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(8)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(8)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(10,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(10,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(10,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,128)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,136)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(8)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(8)<1> ubCURR_UV(10,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(8)<1> wDIFF_TEMPORAL(8)<16;16,1> ubCURR_UV(10,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(9)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(9)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(11,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(11,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(11,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,144)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,152)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(9)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(9)<1> ubCURR_UV(11,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(9)<1> wDIFF_TEMPORAL(9)<16;16,1> ubCURR_UV(11,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(10)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(10)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(12,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(12,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(12,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,160)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,168)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(10)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(10)<1> ubCURR_UV(12,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(10)<1> wDIFF_TEMPORAL(10)<16;16,1> ubCURR_UV(12,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(11)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(11)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(13,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(13,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(13,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,176)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,184)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(11)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(11)<1> ubCURR_UV(13,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(11)<1> wDIFF_TEMPORAL(11)<16;16,1> ubCURR_UV(13,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(12)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(12)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(14,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(14,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(14,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,192)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,200)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(12)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(12)<1> ubCURR_UV(14,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(12)<1> wDIFF_TEMPORAL(12)<16;16,1> ubCURR_UV(14,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(13)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(13)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(15,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(15,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(15,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,208)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,216)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(13)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(13)<1> ubCURR_UV(15,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(13)<1> wDIFF_TEMPORAL(13)<16;16,1> ubCURR_UV(15,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(14)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(14)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(16,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(16,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(16,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,224)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,232)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(14)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(14)<1> ubCURR_UV(16,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(14)<1> wDIFF_TEMPORAL(14)<16;16,1> ubCURR_UV(16,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(15)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(15)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(17,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(17,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(17,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,240)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,248)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(15)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(15)<1> ubCURR_UV(17,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(15)<1> wDIFF_TEMPORAL(15)<16;16,1> ubCURR_UV(17,2)<16;16,1> |
//16x4 to 8x4 - Second 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> uwDIFF_TEMPORAL_SUM4x4(2,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(2,2)<4;2,1> |
//8x4 to 4x4 - Second 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4_FINAL(1)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> { AccWrEn } |
//Find if block is motion block - Second 16 lines |
cmp.g.f1.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_FINAL(1)<16;16,1> r61.26<0;2,1>:ub |
//Move TEMPORAL_SUM4x4 for SIMD16 use later. |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,0)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,2)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,4)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,6)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,8)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,10)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,12)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,14)<0;2,1> |
//Pick Appropriate Weight History Based on motion. - Second 16 lines |
(-f1.0) mov (16) uwCURBE_TEMP(1)<1> uwCURBE_TEMP(3)<16;16,1> |
//Actual DN - Second 16 lines |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(16)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(16)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(22,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(22,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(22,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,0)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,8)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(16)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(16)<1> ubCURR_UV(22,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(16)<1> wDIFF_TEMPORAL(16)<16;16,1> ubCURR_UV(22,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(17)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(17)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(23,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(23,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(23,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,16)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,24)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(17)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(17)<1> ubCURR_UV(23,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(17)<1> wDIFF_TEMPORAL(17)<16;16,1> ubCURR_UV(23,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(18)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(18)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(24,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(24,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(24,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,32)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,40)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(18)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(18)<1> ubCURR_UV(24,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(18)<1> wDIFF_TEMPORAL(18)<16;16,1> ubCURR_UV(24,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(19)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(19)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(25,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(25,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(25,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,48)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,56)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(19)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(19)<1> ubCURR_UV(25,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(19)<1> wDIFF_TEMPORAL(19)<16;16,1> ubCURR_UV(25,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(20)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(20)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(26,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(26,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(26,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,64)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,72)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(20)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(20)<1> ubCURR_UV(26,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(20)<1> wDIFF_TEMPORAL(20)<16;16,1> ubCURR_UV(26,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(21)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(21)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(27,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(27,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(27,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,80)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,88)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(21)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(21)<1> ubCURR_UV(27,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(21)<1> wDIFF_TEMPORAL(21)<16;16,1> ubCURR_UV(27,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(22)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(22)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(28,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(28,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(28,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,96)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,104)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(22)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(22)<1> ubCURR_UV(28,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(22)<1> wDIFF_TEMPORAL(22)<16;16,1> ubCURR_UV(28,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(23)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(23)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(29,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(29,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(29,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,112)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,120)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(23)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(23)<1> ubCURR_UV(29,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(23)<1> wDIFF_TEMPORAL(23)<16;16,1> ubCURR_UV(29,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(24)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(24)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(30,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(30,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(30,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,128)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,136)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(24)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(24)<1> ubCURR_UV(30,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(24)<1> wDIFF_TEMPORAL(24)<16;16,1> ubCURR_UV(30,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(25)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(25)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(31,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(31,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(31,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,144)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,152)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(25)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(25)<1> ubCURR_UV(31,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(25)<1> wDIFF_TEMPORAL(25)<16;16,1> ubCURR_UV(31,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(26)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(26)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(32,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(32,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(32,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,160)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,168)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(26)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(26)<1> ubCURR_UV(32,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(26)<1> wDIFF_TEMPORAL(26)<16;16,1> ubCURR_UV(32,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(27)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(27)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(33,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(33,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(33,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,176)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,184)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(27)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(27)<1> ubCURR_UV(33,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(27)<1> wDIFF_TEMPORAL(27)<16;16,1> ubCURR_UV(33,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(28)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(28)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(34,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(34,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(34,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,192)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,200)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(28)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(28)<1> ubCURR_UV(34,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(28)<1> wDIFF_TEMPORAL(28)<16;16,1> ubCURR_UV(34,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wCURBE_TEMP(4)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wCURBE_TEMP(4)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(35,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(35,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(35,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,208)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,216)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wCURBE_TEMP(4)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wCURBE_TEMP(4)<1> ubCURR_UV(35,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wCURBE_TEMP(4)<1> wCURBE_TEMP(4)<16;16,1> ubCURR_UV(35,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wCURBE_TEMP(5)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wCURBE_TEMP(5)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(36,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(36,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(36,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,224)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,232)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wCURBE_TEMP(5)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wCURBE_TEMP(5)<1> ubCURR_UV(36,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wCURBE_TEMP(5)<1> wCURBE_TEMP(5)<16;16,1> ubCURR_UV(36,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wCURBE_TEMP(6)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wCURBE_TEMP(6)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(37,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(37,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(37,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,240)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,248)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wCURBE_TEMP(6)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wCURBE_TEMP(6)<1> ubCURR_UV(37,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wCURBE_TEMP(6)<1> wCURBE_TEMP(6)<16;16,1> ubCURR_UV(37,2)<16;16,1> |
//Pack Weight History WORD -> BYTE |
mov (16) ubCURBE_TEMP(3,0)<1> ubCURBE_TEMP(0)<32;16,2> |
mov (16) ubCURBE_TEMP(3,16)<1> ubCURBE_TEMP(1)<32;16,2> |
//Module Name : DN_UV_Compute_BNE_UV |
//Author : Tatiya, Rupesh |
//Description : Computes minimum SOAD for each 16x4 block. |
cmp.l.f0.0 (8) null:w uwSOAD_MIN_8x4(0,12)<16;4,1> uwSOAD_MIN_8x4(2,12)<16;4,1> |
(f0.0)sel (8) uwCURBE_TEMP(1,0)<1> uwSOAD_MIN_8x4(0,12)<16;4,1> uwSOAD_MIN_8x4(2,12)<16;4,1> |
mov (8) ubCURBE_TEMP(1)<1> ubCURBE_TEMP(1)<16;8,2> |
//Module Name : DN_UV_YUY2_Pack_Denoised_UV |
//Name : Tatiya, Rupesh |
//Description : Pack UV denoised data based on YUY2 input. |
//Module Name : DN_UV_Pack_Denoised_UV |
//Name : Tatiya, Rupesh |
//Description : Pack UV denoised data based on PL2/PL3/PA. |
add (1) a0.0<1>:uw r54.21<0;1,0>:ub 2976:w |
add (1) a0.1<1>:uw r54.21<0;1,0>:ub 3264:w |
add (1) a0.2<1>:uw r54.21<0;1,0>:ub 3552:w |
add (1) a0.3<1>:uw r54.21<0;1,0>:ub 3840:w |
//First 8 lines. |
mov (16) r[a0.0, 0]<2>:ub ubDIFF_TEMPORAL(0)<32;16,2> |
mov (16) r[a0.0, 32]<2>:ub ubDIFF_TEMPORAL(1)<32;16,2> |
mov (16) r[a0.0, 64]<2>:ub ubDIFF_TEMPORAL(2)<32;16,2> |
mov (16) r[a0.0, 96]<2>:ub ubDIFF_TEMPORAL(3)<32;16,2> |
mov (16) r[a0.0, 128]<2>:ub ubDIFF_TEMPORAL(4)<32;16,2> |
mov (16) r[a0.0, 160]<2>:ub ubDIFF_TEMPORAL(5)<32;16,2> |
mov (16) r[a0.0, 192]<2>:ub ubDIFF_TEMPORAL(6)<32;16,2> |
mov (16) r[a0.0, 224]<2>:ub ubDIFF_TEMPORAL(7)<32;16,2> |
//Second 8 lines |
mov (16) r[a0.1, 0]<2>:ub ubDIFF_TEMPORAL(8)<32;16,2> |
mov (16) r[a0.1, 32]<2>:ub ubDIFF_TEMPORAL(9)<32;16,2> |
mov (16) r[a0.1, 64]<2>:ub ubDIFF_TEMPORAL(10)<32;16,2> |
mov (16) r[a0.1, 96]<2>:ub ubDIFF_TEMPORAL(11)<32;16,2> |
mov (16) r[a0.1, 128]<2>:ub ubDIFF_TEMPORAL(12)<32;16,2> |
mov (16) r[a0.1, 160]<2>:ub ubDIFF_TEMPORAL(13)<32;16,2> |
mov (16) r[a0.1, 192]<2>:ub ubDIFF_TEMPORAL(14)<32;16,2> |
mov (16) r[a0.1, 224]<2>:ub ubDIFF_TEMPORAL(15)<32;16,2> |
//Third 8 lines |
mov (16) r[a0.2, 0]<2>:ub ubDIFF_TEMPORAL(16)<32;16,2> |
mov (16) r[a0.2, 32]<2>:ub ubDIFF_TEMPORAL(17)<32;16,2> |
mov (16) r[a0.2, 64]<2>:ub ubDIFF_TEMPORAL(18)<32;16,2> |
mov (16) r[a0.2, 96]<2>:ub ubDIFF_TEMPORAL(19)<32;16,2> |
mov (16) r[a0.2, 128]<2>:ub ubDIFF_TEMPORAL(20)<32;16,2> |
mov (16) r[a0.2, 160]<2>:ub ubDIFF_TEMPORAL(21)<32;16,2> |
mov (16) r[a0.2, 192]<2>:ub ubDIFF_TEMPORAL(22)<32;16,2> |
mov (16) r[a0.2, 224]<2>:ub ubDIFF_TEMPORAL(23)<32;16,2> |
//Fourth 8 lines |
//5 lines first |
mov (16) r[a0.3, 0]<2>:ub ubDIFF_TEMPORAL(24)<32;16,2> |
mov (16) r[a0.3, 32]<2>:ub ubDIFF_TEMPORAL(25)<32;16,2> |
mov (16) r[a0.3, 64]<2>:ub ubDIFF_TEMPORAL(26)<32;16,2> |
mov (16) r[a0.3, 96]<2>:ub ubDIFF_TEMPORAL(27)<32;16,2> |
mov (16) r[a0.3, 128]<2>:ub ubDIFF_TEMPORAL(28)<32;16,2> |
//3 more lines |
mov (16) r[a0.3, 160]<2>:ub ubCURBE_TEMP(4)<32;16,2> |
mov (16) r[a0.3, 192]<2>:ub ubCURBE_TEMP(5)<32;16,2> |
mov (16) r[a0.3, 224]<2>:ub ubCURBE_TEMP(6)<32;16,2> |
//TODO - See if History saving can be combined with Curr Frame Save. - rT |
//Module Name : DN_UV_Save_Hist_UV |
//Author : Tatiya, Rupesh |
//Description : Saves DN history for UV data. |
mov (8) r3.0<1>:ud r0.0<8;8,1>:ud |
mov (2) r3.0<1>:d r62.12<2;2,1>:w |
mov (1) r3.2<1>:d 0x30007:ud |
send (8) null<1>:d r3 0x5 0x40A8021:ud |
//Module Name : DN_UV_Save_BNE_UV |
//Author : Tatiya, Rupesh |
//Description : Saves BNE values for 16x16 U and 16x16 V. |
mov (8) r1.0<1>:ud r0.0<8;8,1>:ud |
mov (2) r1.0<1>:d r63.12<2;2,1>:w |
mov (1) r1.2<1>:d 0x10003:ud |
send (8) null<1>:d r1 0x5 0x40A8023:ud |
//Module Name : DN_UV_YUY2_Save_Curr_Frame_YUV |
//Author : Tatiya, Rupesh |
//Module Name : DN_UV_Load_Curr_Frame_Y |
//Author : Tatiya, Rupesh |
//Description : Saves Y or YUY2 of Current frame. |
mov (8) acc0.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r62.10<1>:w r62.10<0;1,0>:w 1:w |
mov (1) acc0.0<1>:d r62.10<0;1,0>:w |
mov (1) acc0.1<1>:d r62.11<0;1,0>:w |
mov (1) acc0.2<1>:d 0x7001F:ud |
mov (8) r92.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r101.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r110.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r119.0<1>:ud acc0.0<8;8,1>:ud |
add (1) r101.1<1>:d acc0.1<0;1,0>:d 8:d |
add (1) r110.0<1>:d acc0.0<0;1,0>:d 32:d |
add (1) r119.0<1>:d acc0.0<0;1,0>:d 32:d |
add (1) r119.1<1>:d acc0.1<0;1,0>:d 8:d |
send (8) null<1>:d r92 0x5 0x120A8018:ud |
send (8) null<1>:d r101 0x5 0x120A8018:ud |
send (8) null<1>:d r110 0x5 0x120A8018:ud |
send (8) null<1>:d r119 0x5 0x120A8018:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
//All sub-routines here |
// Module Name : Noise_Detection |
// Author : Tatiya, Rupesh |
// Description : Performs noise detection on 32 pixels of U (8x4) and 32 pixels of V (8x4). |
DN_UV_NOISE_DETECTION_UV: |
// Find Field Block Median |
// |
// Purpose : Find the median value of the nine pixels in the same field |
// which are centered at current pixel. |
// |
// Works on 9 pixels centered at the current pixel |
// NOTE: pixels are within same field. |
// v4 - current pixel |
// |
// v2 v1 v0 |
// * * * <--- Different field - not used |
// v5 v4 v3 |
// * * * <--- Different field - not used |
// v8 v7 v6 |
// Algorithm to find median modifies the data. |
// Copy the data needed to calculate median so the original source data stays intact. |
// |
//TODO - Change Interleaved implementation to separated one if - , does not work on predication. - rT |
//Delete Later - rT |
//mov (1) pCUR_UV:uw 52*32:uw |
// v0 |
mov (16) ubMEDIAN_TEMP(0,0)<1> r[a0.0,0]<16;16,1> |
// v0 |
mov (16) ubMEDIAN_TEMP(0,16)<1> r[a0.0,32]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(1,0)<1> r[a0.0,2]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(1,16)<1> r[a0.0,34]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(2,0)<1> r[a0.0,4]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(2,16)<1> r[a0.0,36]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(3,0)<1> r[a0.0,64]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(3,16)<1> r[a0.0,96]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(4,0)<1> r[a0.0,66]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(4,16)<1> r[a0.0,98]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(5,0)<1> r[a0.0,68]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(5,16)<1> r[a0.0,100]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(6,0)<1> r[a0.0,128]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(6,16)<1> r[a0.0,160]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(7,0)<1> r[a0.0,130]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(7,16)<1> r[a0.0,162]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(8,0)<1> r[a0.0,132]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(8,16)<1> r[a0.0,164]<16;16,1> |
//TODO - Optimize one instruction here. |
add (1) a0.0:uw a0.0<0;1,0>:uw 64:uw |
// v0 |
mov (16) ubMEDIAN_TEMP(9,0)<1> r[a0.0,0]<16;16,1> |
// v0 |
mov (16) ubMEDIAN_TEMP(9,16)<1> r[a0.0,32]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(10,0)<1> r[a0.0,2]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(10,16)<1> r[a0.0,34]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(11,0)<1> r[a0.0,4]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(11,16)<1> r[a0.0,36]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(12,0)<1> r[a0.0,64]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(12,16)<1> r[a0.0,96]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(13,0)<1> r[a0.0,66]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(13,16)<1> r[a0.0,98]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(14,0)<1> r[a0.0,68]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(14,16)<1> r[a0.0,100]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(15,0)<1> r[a0.0,128]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(15,16)<1> r[a0.0,160]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(16,0)<1> r[a0.0,130]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(16,16)<1> r[a0.0,162]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(17,0)<1> r[a0.0,132]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(17,16)<1> r[a0.0,164]<16;16,1> |
//TODO - Optimize one instruction here. |
add (1) a0.0:uw a0.0<0;1,0>:uw 64:uw |
// MedianSwap |
// |
// MedianSwap(inOutLeft, inOutRight) |
// { |
// if (inOutLeft > inOutRight) |
// { |
// temp = inOutLeft |
// inOutLeft = inOutRight |
// inOutRight = temp |
// } |
// } |
// MedianSwap(v1, v2) - U |
// MedianSwap(v4, v5) - U |
// MedianSwap(v1, v2) - V |
// MedianSwap(v4, v5) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(1,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(5,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(1,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(5,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(1,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(1,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(1,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(5,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(1,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(5,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(5,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(2,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(5,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v1) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v1) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(7,0)<32;16,2> ubMEDIAN_TEMP(8,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(0,0)<32;16,2> ubMEDIAN_TEMP(1,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(7,1)<32;16,2> ubMEDIAN_TEMP(8,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(0,1)<32;16,2> ubMEDIAN_TEMP(1,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(7,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(0,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(0,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(7,0)<2> ubMEDIAN_TEMP(8,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(0,0)<2> ubMEDIAN_TEMP(1,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(7,1)<2> ubMEDIAN_TEMP(8,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(0,1)<2> ubMEDIAN_TEMP(1,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(8,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(1,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(8,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(1,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v3, v4) - U |
// MedianSwap(v6, v7) - U |
// MedianSwap(v3, v4) - V |
// MedianSwap(v6, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(3,0)<32;16,2> ubMEDIAN_TEMP(4,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(6,0)<32;16,2> ubMEDIAN_TEMP(7,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(3,1)<32;16,2> ubMEDIAN_TEMP(4,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(6,1)<32;16,2> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(3,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(6,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(3,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(6,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(3,0)<2> ubMEDIAN_TEMP(4,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(6,0)<2> ubMEDIAN_TEMP(7,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(3,1)<2> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(6,1)<2> ubMEDIAN_TEMP(7,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(7,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(4,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(7,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v1, v2) - U |
// MedianSwap(v4, v5) - U |
// MedianSwap(v1, v2) - V |
// MedianSwap(v4, v5) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(1,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(5,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(1,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(5,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(1,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(1,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(1,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(5,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(1,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(5,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(5,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(2,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(5,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v3) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v3) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(7,0)<32;16,2> ubMEDIAN_TEMP(8,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(0,0)<32;16,2> ubMEDIAN_TEMP(3,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(7,1)<32;16,2> ubMEDIAN_TEMP(8,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(0,1)<32;16,2> ubMEDIAN_TEMP(3,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(7,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(0,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(0,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(7,0)<2> ubMEDIAN_TEMP(8,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(0,0)<2> ubMEDIAN_TEMP(3,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(7,1)<2> ubMEDIAN_TEMP(8,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(0,1)<2> ubMEDIAN_TEMP(3,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(8,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(3,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(8,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(3,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v0 to v6 to find the minimum. |
// Store the minimum for future use. |
//TODO - Find if MIN is needed. |
//cmp.l.f0.0 (16) null:w ubMEDIAN_TEMP(%1+0,0)<32;16,2> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//cmp.l.f1.0 (16) null:w ubMEDIAN_TEMP(%1+0,1)<32;16,2> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
// MedianSwap(v5, v8) - U |
// MedianSwap(v4, v7) - U |
// MedianSwap(v5, v8) - V |
// MedianSwap(v4, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(5,0)<32;16,2> ubMEDIAN_TEMP(8,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(7,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(5,1)<32;16,2> ubMEDIAN_TEMP(8,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(5,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(5,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(5,0)<2> ubMEDIAN_TEMP(8,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(7,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(5,1)<2> ubMEDIAN_TEMP(8,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(7,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(8,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(7,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(8,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(7,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v2 to v8 to find the maximum. |
// Store the maximum for future use. |
//TODO - Find if MAX is needed. |
// cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(%1+2,0)<32;16,2> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
// cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(%1+2,1)<32;16,2> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
// MedianSwap(v3, v6) - U |
// MedianSwap(v1, v4) - U |
// MedianSwap(v3, v6) - V |
// MedianSwap(v1, v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(3,0)<32;16,2> ubMEDIAN_TEMP(6,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(1,0)<32;16,2> ubMEDIAN_TEMP(4,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(3,1)<32;16,2> ubMEDIAN_TEMP(6,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(1,1)<32;16,2> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(6,0)<2> ubMEDIAN_TEMP(3,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(1,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(6,1)<2> ubMEDIAN_TEMP(3,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(1,1)<32;16,2> |
// MedianSwap(v2,v5) - U |
// MedianSwap(v4,v7) - U |
// MedianSwap(v2,v5) - V |
// MedianSwap(v4,v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(2,0)<32;16,2> ubMEDIAN_TEMP(5,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(7,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(2,1)<32;16,2> ubMEDIAN_TEMP(5,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(7,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubMEDIAN_TEMP(5,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(7,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(2,1)<2> ubMEDIAN_TEMP(5,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(7,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(2,1)<2> ubTEMP1(0,16)<16;16,1> |
// MedianSwap(v6,v4) - U |
// MedianSwap(v6,v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(6,0)<32;16,2> ubMEDIAN_TEMP(4,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(6,1)<32;16,2> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(6,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(6,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(10,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(14,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(10,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(14,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(10,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(10,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(10,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(14,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(10,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(14,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(14,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(11,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(14,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v1) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v1) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(16,0)<32;16,2> ubMEDIAN_TEMP(17,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(9,0)<32;16,2> ubMEDIAN_TEMP(10,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(16,1)<32;16,2> ubMEDIAN_TEMP(17,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(9,1)<32;16,2> ubMEDIAN_TEMP(10,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(16,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(9,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(9,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(16,0)<2> ubMEDIAN_TEMP(17,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(9,0)<2> ubMEDIAN_TEMP(10,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(16,1)<2> ubMEDIAN_TEMP(17,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(9,1)<2> ubMEDIAN_TEMP(10,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(17,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(10,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(17,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(10,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v3, v4) - U |
// MedianSwap(v6, v7) - U |
// MedianSwap(v3, v4) - V |
// MedianSwap(v6, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(12,0)<32;16,2> ubMEDIAN_TEMP(13,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(15,0)<32;16,2> ubMEDIAN_TEMP(16,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(12,1)<32;16,2> ubMEDIAN_TEMP(13,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(15,1)<32;16,2> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(12,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(15,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(12,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(15,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(12,0)<2> ubMEDIAN_TEMP(13,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(15,0)<2> ubMEDIAN_TEMP(16,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(12,1)<2> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(15,1)<2> ubMEDIAN_TEMP(16,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(16,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(13,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(16,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v1, v2) - U |
// MedianSwap(v4, v5) - U |
// MedianSwap(v1, v2) - V |
// MedianSwap(v4, v5) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(10,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(14,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(10,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(14,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(10,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(10,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(10,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(14,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(10,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(14,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(14,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(11,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(14,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v3) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v3) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(16,0)<32;16,2> ubMEDIAN_TEMP(17,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(9,0)<32;16,2> ubMEDIAN_TEMP(12,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(16,1)<32;16,2> ubMEDIAN_TEMP(17,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(9,1)<32;16,2> ubMEDIAN_TEMP(12,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(16,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(9,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(9,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(16,0)<2> ubMEDIAN_TEMP(17,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(9,0)<2> ubMEDIAN_TEMP(12,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(16,1)<2> ubMEDIAN_TEMP(17,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(9,1)<2> ubMEDIAN_TEMP(12,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(17,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(12,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(17,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(12,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v0 to v6 to find the minimum. |
// Store the minimum for future use. |
//TODO - Find if MIN is needed. |
//cmp.l.f0.0 (16) null:w ubMEDIAN_TEMP(%1+0,0)<32;16,2> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//cmp.l.f1.0 (16) null:w ubMEDIAN_TEMP(%1+0,1)<32;16,2> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
// MedianSwap(v5, v8) - U |
// MedianSwap(v4, v7) - U |
// MedianSwap(v5, v8) - V |
// MedianSwap(v4, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(14,0)<32;16,2> ubMEDIAN_TEMP(17,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(16,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(14,1)<32;16,2> ubMEDIAN_TEMP(17,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(14,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(14,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(14,0)<2> ubMEDIAN_TEMP(17,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(16,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(14,1)<2> ubMEDIAN_TEMP(17,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(16,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(17,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(16,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(17,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(16,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v2 to v8 to find the maximum. |
// Store the maximum for future use. |
//TODO - Find if MAX is needed. |
// cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(%1+2,0)<32;16,2> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
// cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(%1+2,1)<32;16,2> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
// MedianSwap(v3, v6) - U |
// MedianSwap(v1, v4) - U |
// MedianSwap(v3, v6) - V |
// MedianSwap(v1, v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(12,0)<32;16,2> ubMEDIAN_TEMP(15,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(10,0)<32;16,2> ubMEDIAN_TEMP(13,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(12,1)<32;16,2> ubMEDIAN_TEMP(15,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(10,1)<32;16,2> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(15,0)<2> ubMEDIAN_TEMP(12,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(10,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(15,1)<2> ubMEDIAN_TEMP(12,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(10,1)<32;16,2> |
// MedianSwap(v2,v5) - U |
// MedianSwap(v4,v7) - U |
// MedianSwap(v2,v5) - V |
// MedianSwap(v4,v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(11,0)<32;16,2> ubMEDIAN_TEMP(14,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(16,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(11,1)<32;16,2> ubMEDIAN_TEMP(14,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(16,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubMEDIAN_TEMP(14,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(16,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(11,1)<2> ubMEDIAN_TEMP(14,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(16,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(11,1)<2> ubTEMP1(0,16)<16;16,1> |
// MedianSwap(v6,v4) - U |
// MedianSwap(v6,v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(15,0)<32;16,2> ubMEDIAN_TEMP(13,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(15,1)<32;16,2> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(15,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(15,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
// Sobel Value calculation for the current pixel v4 |
// v2 v1 v0 |
// * * * <--- Different field - not used |
// v5 v4 v3 |
// * * * <--- Different field - not used |
// v8 v7 v6 |
// |
// Gx = -v0 - 2*v3 - v6 + v2 + 2*v5 + v8 |
// Gy = v0 + 2*v1 + v2 - v6 - 2*v7 - v8 |
// |
// Sobel = (|Gx| + |Gy|) >> 3 |
//TODO - Change Later - rT |
add (1) a0.0:uw a0.0<0;1,0>:uw -128:uw |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,64]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,132]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,0]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,128]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,4]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(0)<1> r[a0.0,68]<16;16,1>:ub 2:w |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,96]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,164]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,32]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,160]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,36]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(1)<1> r[a0.0,100]<16;16,1>:ub 2:w |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,128]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,196]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,64]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,192]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,68]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(2)<1> r[a0.0,132]<16;16,1>:ub 2:w |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,160]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,228]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,96]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,224]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,100]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(3)<1> r[a0.0,164]<16;16,1>:ub 2:w |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,2]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,0]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,132]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,4]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,128]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,130]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(0)<16;16,1> |
shr (16) uwSOBEL(0)<1> acc0.0<16;16,1>:uw 3:uw |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,34]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,32]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,164]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,36]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,160]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,162]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(1)<16;16,1> |
shr (16) uwSOBEL(1)<1> acc0.0<16;16,1>:uw 3:uw |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,66]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,64]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,196]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,68]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,192]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,194]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(2)<16;16,1> |
shr (16) uwSOBEL(2)<1> acc0.0<16;16,1>:uw 3:uw |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,98]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,96]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,228]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,100]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,224]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,226]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(3)<16;16,1> |
shr (16) uwSOBEL(3)<1> acc0.0<16;16,1>:uw 3:uw |
//Mov Median in CURBE_TEMP to free up temp space. |
mov (16) ubMEDIAN(0,0)<1> ubMEDIAN_TEMP(4,0)<16;16,1> |
mov (16) ubMEDIAN(0,16)<1> ubMEDIAN_TEMP(4,16)<16;16,1> |
mov (16) ubMEDIAN(0,32)<1> ubMEDIAN_TEMP(13,0)<16;16,1> |
mov (16) ubMEDIAN(0,48)<1> ubMEDIAN_TEMP(13,16)<16;16,1> |
// Find: |
// absDiff = abs(ubCurY - ubMedian) |
// Find the difference between pixel and median value. |
//Median is interleaved. So difference is also interleaved. |
//------------------------------------------------------------------------------------------ |
//Process 16 U and 16 V pixels here and rest later. |
// first row - v0,v1,v2 |
add (16) wDIFF(0)<1> r[a0.0,0]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(1)<1> r[a0.0,2]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(2)<1> r[a0.0,4]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(3)<1> r[a0.0,64]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(4)<1> r[a0.0,66]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(5)<1> r[a0.0,68]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
// third row - v6,v7,v8 |
add (16) wDIFF(6)<1> r[a0.0,128]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(7)<1> r[a0.0,130]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(8)<1> r[a0.0,132]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
// first row - v0,v1,v2 |
add (16) wDIFF(9)<1> r[a0.0,32]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(10)<1> r[a0.0,34]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(11)<1> r[a0.0,36]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(12)<1> r[a0.0,96]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(13)<1> r[a0.0,98]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(14)<1> r[a0.0,100]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
// third row - v6,v7,v8 |
add (16) wDIFF(15)<1> r[a0.0,160]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(16)<1> r[a0.0,162]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(17)<1> r[a0.0,164]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
//TODO - Change Later - rT |
add (1) a0.0:uw a0.0<0;1,0>:uw 64:uw |
// Find sum of all absolute differences AND |
// maximum absolute difference for 16 U and 16 V here. |
//First 2 rows of 8x4 |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(2)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(3)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(4)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(5)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(6)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(7)<16;16,1> |
add (16) uwSOAD(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF(8)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//------------ |
//DIFF(0-7) is not needed here. Populate it. |
// first row - v0,v1,v2 |
add (16) wDIFF(0)<1> r[a0.0,0]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(1)<1> r[a0.0,2]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(2)<1> r[a0.0,4]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(3)<1> r[a0.0,64]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(4)<1> r[a0.0,66]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(5)<1> r[a0.0,68]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
// third row - v6,v7 |
add (16) wDIFF(6)<1> r[a0.0,128]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(7)<1> r[a0.0,130]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
//------------ |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(0)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
//------------ |
//Load v8 - DIFF(8) |
add (16) wDIFF(8)<1> r[a0.0,132]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
//------------ |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(11)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(12)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(13)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(14)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(15)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(16)<16;16,1> |
add (16) uwSOAD(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF(17)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//------------ |
//DIFF(0-7) is not needed here. Populate it. |
// first row - v0,v1,v2 |
add (16) wDIFF(9)<1> r[a0.0,32]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(10)<1> r[a0.0,34]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(11)<1> r[a0.0,36]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(12)<1> r[a0.0,96]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(13)<1> r[a0.0,98]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(14)<1> r[a0.0,100]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
// third row - v6,v7 |
add (16) wDIFF(15)<1> r[a0.0,160]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(16)<1> r[a0.0,162]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
//------------ |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(1)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
//------------ |
//Load v8 - DIFF(8) |
add (16) wDIFF(17)<1> r[a0.0,164]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
//------------ |
//if ((sobel_edge_measure < m_SobelEdgeThreshold) && ((block_max-block_min) < m_LocalDiffThreshold)) |
// if (sigma_mb_min > sigma) |
// sigma_mb_min = sigma; |
//NOTE: block_min is always zero as median is one of the value in 3x3 block. So no need o calculate it. |
// So just do - |
//if ((sobel_edge_measure < m_SobelEdgeThreshold) && ((block_max) < m_LocalDiffThreshold) && ( sigma < sigma_mb_min)) |
// sigma_mb_min = sigma; |
//We are processing 32 bytes of U and 32 bytes of V - each of size 8x4. |
//Compare first 8 bytes with max possible (255). |
//Start above condition from second 8 bytes. |
//TODO - Change Later - rT |
// mov (1) pCUR_MIN_SOAD_8x4:uw 1752:uw //r54.24:ub |
//First row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(0)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(0)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(0)<16;16,1> 255:uw |
(f0.0) sel (16) uwSOBEL(0)<1> uwSOAD(0)<16;16,1> 255:uw |
//Second row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(1)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(1)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(1)<16;16,1> uwSOBEL(0)<16;16,1> |
(f0.0) mov (16) uwSOBEL(0)<1> uwSOAD(1)<16;16,1> |
// Find sum of all absolute differences AND |
// maximum absolute difference for 16 U and 16 V here. |
//Second 2 rows of 8x4 |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(2)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(3)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(4)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(5)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(6)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(7)<16;16,1> |
add (16) uwSOAD(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF(8)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(0)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(11)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(12)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(13)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(14)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(15)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(16)<16;16,1> |
add (16) uwSOAD(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF(17)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(1)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
//Third row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(2)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(0)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(0)<16;16,1> uwSOBEL(0)<16;16,1> |
(f0.0) mov (16) uwSOBEL(0)<1> uwSOAD(0)<16;16,1> |
//Fourth row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(3)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(1)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(1)<16;16,1> uwSOBEL(0)<16;16,1> |
(f0.0) mov (16) uwSOBEL(0)<1> uwSOAD(1)<16;16,1> |
cmp.l.f0.0 (8) null:uw uwSOBEL(0,0)<8;8,1> uwSOBEL(0,8)<8;8,1> |
(f0.0) sel (8) uwSOBEL(0)<1> uwSOBEL(0,0)<8;8,1> uwSOBEL(0,8)<8;8,1> |
cmp.l.f0.0 (4) null:uw uwSOBEL(0,0)<4;4,1> uwSOBEL(0,4)<4;4,1> |
(f0.0) sel (4) uwSOBEL(0)<1> uwSOBEL(0,0)<4;4,1> uwSOBEL(0,4)<4;4,1> |
cmp.l.f0.0 (2) null:uw uwSOBEL(0,0)<2;2,1> uwSOBEL(0,2)<2;2,1> |
(f0.0) sel (2) r[a0.1,0]<1>:uw uwSOBEL(0,0)<2;2,1> uwSOBEL(0,2)<2;2,1> |
// End of common.inc |
mov (1) ip:ud r7.7<0;1,0>:d |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PA_DN_422CP.g4a |
---|
0,0 → 1,491 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 114 // Total instruction count |
// 1 // Total kernel count |
.kernel PA_DN_422CP |
.code |
// FileName: DN_PA_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) for Packed format |
// FileName: DN.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x49E8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(4,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (2) mudMSGHDR_HIST(1)<1> udDNDI_RESP(4,0)<2;2,1> // Move denoise history to MRF (4x2) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x10003:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x50003:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | X | X | X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
//| X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
mov (1) mubMSGHDR_ENC_STATS(1,0)<1> ubDNDI_RESP(4,8)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,3)<1> uwDNDI_RESP(4,11)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,4)<1> uwDNDI_RESP(4,12)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,9)<1> uwDNDI_RESP(4,8)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,10)<1> uwDNDI_RESP(4,9)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Save_PA.asm |
// Author: Vivek Kumar |
// Description: Save one 16x8 blocks of DN output in Packed format |
add (4) a0.4<1>:uw r2.28<4;4,1>:ub 1024:w // Initial Y,U,V offset in YUV422 block; it starts at m14 |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
shl (1) mdMSGHDR_DN_OUT(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mdMSGHDR_DN_OUT(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x7001F:ud { NoDDChk } // block width and height (32x8) |
mov (16) r[a0.4,0]<2>:ub ubDNDI_RESP(0,0)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,32]<2>:ub ubDNDI_RESP(0,16)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,64]<2>:ub ubDNDI_RESP(0,32)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,96]<2>:ub ubDNDI_RESP(0,48)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,128]<2>:ub ubDNDI_RESP(0,64)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,160]<2>:ub ubDNDI_RESP(0,80)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,192]<2>:ub ubDNDI_RESP(0,96)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,224]<2>:ub ubDNDI_RESP(0,112)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) r[a0.5,0]<4>:ub ubDNDI_RESP(5,1)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,0]<4>:ub ubDNDI_RESP(5,0)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,32]<4>:ub ubDNDI_RESP(5,17)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,32]<4>:ub ubDNDI_RESP(5,16)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,64]<4>:ub ubDNDI_RESP(5,33)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,64]<4>:ub ubDNDI_RESP(5,32)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,96]<4>:ub ubDNDI_RESP(5,49)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,96]<4>:ub ubDNDI_RESP(5,48)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,128]<4>:ub ubDNDI_RESP(5,65)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,128]<4>:ub ubDNDI_RESP(5,64)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,160]<4>:ub ubDNDI_RESP(5,81)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,160]<4>:ub ubDNDI_RESP(5,80)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,192]<4>:ub ubDNDI_RESP(5,97)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,192]<4>:ub ubDNDI_RESP(5,96)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,224]<4>:ub ubDNDI_RESP(5,113)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,224]<4>:ub ubDNDI_RESP(5,112)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0x120A8018:ud |
// FileName: DN_Save_422CP_16x8.asm |
// Author: Vivek Kumar |
// Description: Save one 16x8 blocks of DN output to the color pipe in 4-2-2 format |
.declare mubMSGHDR_DN_OUT_2 Base=r36.0 ElementSize=1 Type=ub |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
shl (1) mdMSGHDR_DN_OUT(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mdMSGHDR_DN_OUT(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x7000F:ud { NoDDClr, NoDDChk } // block width and height (16x8) |
//M0.3 - 0 - CP Enable, 1 - Area of Interest, 3:2 Message Format(TBD), 4:3 - Ignored, 31:5 CP state pointer |
//Compose area-of-interest bit + color pipe state pointer |
or (1) mudMSGHDR_DN_OUT(0,3)<1> r2.4<0;1,0>:ud r7.26<0;1,0>:b { NoDDChk } |
// First 8 x 8 Block |
mov (8) mubMSGHDR_DN_OUT(1)<2> ubDNDI_RESP(0,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(1,16)<2> ubDNDI_RESP(0,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(2)<2> ubDNDI_RESP(0,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(2,16)<2> ubDNDI_RESP(0,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(3)<2> ubDNDI_RESP(0,64)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(3,16)<2> ubDNDI_RESP(0,80)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(4)<2> ubDNDI_RESP(0,96)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(4,16)<2> ubDNDI_RESP(0,112)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,1)<4> ubDNDI_RESP(5,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,17)<4> ubDNDI_RESP(5,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,3)<4> ubDNDI_RESP(5,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,19)<4> ubDNDI_RESP(5,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,1)<4> ubDNDI_RESP(5,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,17)<4> ubDNDI_RESP(5,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,3)<4> ubDNDI_RESP(5,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,19)<4> ubDNDI_RESP(5,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,1)<4> ubDNDI_RESP(5,65)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,17)<4> ubDNDI_RESP(5,81)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,3)<4> ubDNDI_RESP(5,64)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,19)<4> ubDNDI_RESP(5,80)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,1)<4> ubDNDI_RESP(5,97)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,17)<4> ubDNDI_RESP(5,113)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,3)<4> ubDNDI_RESP(5,96)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,19)<4> ubDNDI_RESP(5,112)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Second 8 x 8 Block |
mov (8) r36.0<1>:ud r31.0<8;8,1>:ud |
add (1) r36.0<1>:ud r36.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DN_OUT_2(1)<2> ubDNDI_RESP(0,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(1,16)<2> ubDNDI_RESP(0,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(2)<2> ubDNDI_RESP(0,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(2,16)<2> ubDNDI_RESP(0,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(3)<2> ubDNDI_RESP(0,72)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(3,16)<2> ubDNDI_RESP(0,88)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(4)<2> ubDNDI_RESP(0,104)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(4,16)<2> ubDNDI_RESP(0,120)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,1)<4> ubDNDI_RESP(5,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,17)<4> ubDNDI_RESP(5,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,3)<4> ubDNDI_RESP(5,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,19)<4> ubDNDI_RESP(5,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,1)<4> ubDNDI_RESP(5,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,17)<4> ubDNDI_RESP(5,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,3)<4> ubDNDI_RESP(5,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,19)<4> ubDNDI_RESP(5,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,1)<4> ubDNDI_RESP(5,73)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,17)<4> ubDNDI_RESP(5,89)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,3)<4> ubDNDI_RESP(5,72)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,19)<4> ubDNDI_RESP(5,88)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,1)<4> ubDNDI_RESP(5,105)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,17)<4> ubDNDI_RESP(5,121)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,3)<4> ubDNDI_RESP(5,104)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,19)<4> ubDNDI_RESP(5,120)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0xA0A801B:ud |
send (8) null<1>:d r36.0 0x5 0xA0A801B:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PA_DN_PA.g4a |
---|
0,0 → 1,403 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 57 // Total instruction count |
// 1 // Total kernel count |
.kernel PA_DN_PA |
.code |
// FileName: DN_PA_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) for Packed format |
// FileName: DN.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x49E8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(4,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (2) mudMSGHDR_HIST(1)<1> udDNDI_RESP(4,0)<2;2,1> // Move denoise history to MRF (4x2) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x10003:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x50003:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | X | X | X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
//| X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
mov (1) mubMSGHDR_ENC_STATS(1,0)<1> ubDNDI_RESP(4,8)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,3)<1> uwDNDI_RESP(4,11)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,4)<1> uwDNDI_RESP(4,12)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,9)<1> uwDNDI_RESP(4,8)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,10)<1> uwDNDI_RESP(4,9)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Save_PA.asm |
// Author: Vivek Kumar |
// Description: Save one 16x8 blocks of DN output in Packed format |
add (4) a0.4<1>:uw r2.28<4;4,1>:ub 1024:w // Initial Y,U,V offset in YUV422 block; it starts at m14 |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
shl (1) mdMSGHDR_DN_OUT(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mdMSGHDR_DN_OUT(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x7001F:ud { NoDDChk } // block width and height (32x8) |
mov (16) r[a0.4,0]<2>:ub ubDNDI_RESP(0,0)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,32]<2>:ub ubDNDI_RESP(0,16)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,64]<2>:ub ubDNDI_RESP(0,32)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,96]<2>:ub ubDNDI_RESP(0,48)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,128]<2>:ub ubDNDI_RESP(0,64)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,160]<2>:ub ubDNDI_RESP(0,80)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,192]<2>:ub ubDNDI_RESP(0,96)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (16) r[a0.4,224]<2>:ub ubDNDI_RESP(0,112)<16;16,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) r[a0.5,0]<4>:ub ubDNDI_RESP(5,1)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,0]<4>:ub ubDNDI_RESP(5,0)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,32]<4>:ub ubDNDI_RESP(5,17)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,32]<4>:ub ubDNDI_RESP(5,16)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,64]<4>:ub ubDNDI_RESP(5,33)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,64]<4>:ub ubDNDI_RESP(5,32)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,96]<4>:ub ubDNDI_RESP(5,49)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,96]<4>:ub ubDNDI_RESP(5,48)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,128]<4>:ub ubDNDI_RESP(5,65)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,128]<4>:ub ubDNDI_RESP(5,64)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,160]<4>:ub ubDNDI_RESP(5,81)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,160]<4>:ub ubDNDI_RESP(5,80)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,192]<4>:ub ubDNDI_RESP(5,97)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,192]<4>:ub ubDNDI_RESP(5,96)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (8) r[a0.5,224]<4>:ub ubDNDI_RESP(5,113)<16;8,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (8) r[a0.6,224]<4>:ub ubDNDI_RESP(5,112)<16;8,2> { NoDDChk } // copy line of V directly to memory as optimization |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0x120A8018:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PL2_AVS_Buf_0.g4a |
---|
0,0 → 1,542 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 44 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PL2_AVS_Buf_0.asm |
// Author: Tatiya, Rupesh |
// Description: Loads 8x8 AVS/IEF PL2 data into Buffer 0 |
// FileName : PL2_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF PL2 data into Buffer N |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//NOTE: We need offsets for second halfof LAYER 0 - even if we do not load it. |
//Update the channel offset in the buffers for the lower 8x4 data for BUFFER_0. |
mov (1) r22.4<1>:ud 0x400040:ud |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_0_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB400:ud //msg desc |
mov (1) r16.2:ud 0x0000D000:ud // Enable Red channel |
mov (1) r25.7<1>:ud r7.7:ud { NoDDClr } |
mov (1) r25.1<1>:ud r7.12:uw { NoDDChk } |
// set the vertical block number |
mov (8) r17.0:ud r25.0<8;8,1>:ud // Copy msg payload mirrors to MRFs |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
mov (1) r14.5:f r17.2<0;1,0>:f // save pixel 0 U for chroma |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_PL2_AVS_WA_DONE_L0_0_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_PL2_AVS_WA_DONE_L0_0_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_0(0)<1> r16 0x2 a0.0:ud |
// Returns Y data in 4 GRFs in scrambled order |
mov (1) r17.2:f r14.5:f // restore pixel 0 U for chroma, No AVS WA for chroma |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x48EB801:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000A000:ud // Enable Red+Blue channel |
send (1) uwBUFFER_0(4)<1> r16 0x2 a0.0:ud |
// Returns UV data in 8 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_0_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PL2_AVS_Buf_1.g4a |
---|
0,0 → 1,535 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 42 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PL2_AVS_Buf_1.asm |
// Author: Tatiya, Rupesh |
// Description: Loads 8x8 AVS/IEF PL2 data into Buffer 1 |
// FileName : PL2_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF PL2 data into Buffer N |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_1_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB400:ud //msg desc |
mov (1) r16.2:ud 0x0000D000:ud // Enable Red channel |
// set the vertical block number |
add (1) r25.1<1>:ud r7.12:uw 1:ud |
mov (8) r17.0:ud r25.0<8;8,1>:ud // Copy msg payload mirrors to MRFs |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
mov (1) r14.5:f r17.2<0;1,0>:f // save pixel 0 U for chroma |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_PL2_AVS_WA_DONE_L0_1_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_PL2_AVS_WA_DONE_L0_1_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_1(0)<1> r16 0x2 a0.0:ud |
// Returns Y data in 4 GRFs in scrambled order |
mov (1) r17.2:f r14.5:f // restore pixel 0 U for chroma, No AVS WA for chroma |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x48EB801:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000A000:ud // Enable Red+Blue channel |
send (1) uwBUFFER_1(4)<1> r16 0x2 a0.0:ud |
// Returns UV data in 8 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_1_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PL2_AVS_Buf_2.g4a |
---|
0,0 → 1,536 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 42 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PL2_AVS_Buf_2.asm |
// Author: Tatiya, Rupesh |
// Description: Loads 8x8 AVS/IEF PL2 data into Buffer 2 |
// FileName : PL2_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF PL2 data into Buffer N |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_2_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB400:ud //msg desc |
mov (1) r16.2:ud 0x0000D000:ud // Enable Red channel |
// set the vertical block number |
add (1) r25.1<1>:ud r7.12:uw 2:ud |
mov (8) r17.0:ud r25.0<8;8,1>:ud // Copy msg payload mirrors to MRFs |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
mov (1) r14.5:f r17.2<0;1,0>:f // save pixel 0 U for chroma |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_PL2_AVS_WA_DONE_L0_2_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_PL2_AVS_WA_DONE_L0_2_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_2(0)<1> r16 0x2 a0.0:ud |
// Returns Y data in 4 GRFs in scrambled order |
mov (1) r17.2:f r14.5:f // restore pixel 0 U for chroma, No AVS WA for chroma |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x48EB801:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000A000:ud // Enable Red+Blue channel |
send (1) uwBUFFER_2(4)<1> r16 0x2 a0.0:ud |
// Returns UV data in 8 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_2_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PL2_AVS_Buf_3.g4a |
---|
0,0 → 1,536 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 42 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PL2_AVS_Buf_3.asm |
// Author: Tatiya, Rupesh |
// Description: Loads 8x8 AVS/IEF PL2 data into Buffer 0 |
// FileName : PL2_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF PL2 data into Buffer N |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_3_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB400:ud //msg desc |
mov (1) r16.2:ud 0x0000D000:ud // Enable Red channel |
// set the vertical block number |
add (1) r25.1<1>:ud r7.12:uw 3:ud |
mov (8) r17.0:ud r25.0<8;8,1>:ud // Copy msg payload mirrors to MRFs |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
mov (1) r14.5:f r17.2<0;1,0>:f // save pixel 0 U for chroma |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_PL2_AVS_WA_DONE_L0_3_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_PL2_AVS_WA_DONE_L0_3_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_3(0)<1> r16 0x2 a0.0:ud |
// Returns Y data in 4 GRFs in scrambled order |
mov (1) r17.2:f r14.5:f // restore pixel 0 U for chroma, No AVS WA for chroma |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x48EB801:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000A000:ud // Enable Red+Blue channel |
send (1) uwBUFFER_3(4)<1> r16 0x2 a0.0:ud |
// Returns UV data in 8 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_3_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PL3_AVS_Buf_0.g4a |
---|
0,0 → 1,549 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 47 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PL3_AVS_Buf_0.asm |
// Author: Tatiya, Rupesh |
// Description: Loads 8x8 AVS/IEF PL3 data into Buffer 0 |
// FileName : PL3_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF PL3 data into Buffer N |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//NOTE: We need offsets for second halfof LAYER 0 - even if we do not load it. |
//Update the channel offset in the buffers for the lower 8x4 data for BUFFER_0. |
mov (1) r22.4<1>:ud 0x400040:ud |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_0_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB400:ud //msg desc |
mov (1) r16.2:ud 0x0000D000:ud // Enable Red channel |
mov (1) r25.7<1>:ud r7.7:ud { NoDDClr } |
mov (1) r25.1<1>:ud r7.12:uw { NoDDChk } |
// set the vertical block number |
mov (8) r17.0:ud r25.0<8;8,1>:ud // Copy msg payload mirrors to MRFs |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
mov (1) r14.5:f r17.2<0;1,0>:f // save pixel 0 U for chroma |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_PL3_AVS_WA_DONE_L0_0_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_PL3_AVS_WA_DONE_L0_0_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_0(0)<1> r16 0x2 a0.0:ud |
// Returns Y data in 4 GRFs in scrambled order |
mov (1) r17.2:f r14.5:f // restore pixel 0 U for chroma, No AVS WA for chroma |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB801:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000E000:ud // Enable Red channel |
send (1) uwBUFFER_0(4)<1> r16 0x2 a0.0:ud |
// Returns U data in 4 GRFs in scrambled order |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EBC02:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000E000:ud // Enable Red channel |
send (1) uwBUFFER_0(8)<1> r16 0x2 a0.0:ud |
// Returns V data in 4 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_0_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PL3_AVS_Buf_1.g4a |
---|
0,0 → 1,542 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 45 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PL3_AVS_Buf_1.asm |
// Author: Tatiya, Rupesh |
// Description: Loads 8x8 AVS/IEF PL3 data into Buffer 1 |
// FileName : PL3_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF PL3 data into Buffer N |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_1_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB400:ud //msg desc |
mov (1) r16.2:ud 0x0000D000:ud // Enable Red channel |
// set the vertical block number |
add (1) r25.1<1>:ud r7.12:uw 1:ud |
mov (8) r17.0:ud r25.0<8;8,1>:ud // Copy msg payload mirrors to MRFs |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
mov (1) r14.5:f r17.2<0;1,0>:f // save pixel 0 U for chroma |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_PL3_AVS_WA_DONE_L0_1_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_PL3_AVS_WA_DONE_L0_1_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_1(0)<1> r16 0x2 a0.0:ud |
// Returns Y data in 4 GRFs in scrambled order |
mov (1) r17.2:f r14.5:f // restore pixel 0 U for chroma, No AVS WA for chroma |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB801:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000E000:ud // Enable Red channel |
send (1) uwBUFFER_1(4)<1> r16 0x2 a0.0:ud |
// Returns U data in 4 GRFs in scrambled order |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EBC02:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000E000:ud // Enable Red channel |
send (1) uwBUFFER_1(8)<1> r16 0x2 a0.0:ud |
// Returns V data in 4 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_1_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PL3_AVS_Buf_2.g4a |
---|
0,0 → 1,543 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 45 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PL3_AVS_Buf_2.asm |
// Author: Tatiya, Rupesh |
// Description: Loads 8x8 AVS/IEF PL3 data into Buffer 2 |
// FileName : PL3_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF PL3 data into Buffer N |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_2_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB400:ud //msg desc |
mov (1) r16.2:ud 0x0000D000:ud // Enable Red channel |
// set the vertical block number |
add (1) r25.1<1>:ud r7.12:uw 2:ud |
mov (8) r17.0:ud r25.0<8;8,1>:ud // Copy msg payload mirrors to MRFs |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
mov (1) r14.5:f r17.2<0;1,0>:f // save pixel 0 U for chroma |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_PL3_AVS_WA_DONE_L0_2_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_PL3_AVS_WA_DONE_L0_2_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_2(0)<1> r16 0x2 a0.0:ud |
// Returns Y data in 4 GRFs in scrambled order |
mov (1) r17.2:f r14.5:f // restore pixel 0 U for chroma, No AVS WA for chroma |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB801:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000E000:ud // Enable Red channel |
send (1) uwBUFFER_2(4)<1> r16 0x2 a0.0:ud |
// Returns U data in 4 GRFs in scrambled order |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EBC02:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000E000:ud // Enable Red channel |
send (1) uwBUFFER_2(8)<1> r16 0x2 a0.0:ud |
// Returns V data in 4 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_2_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PL3_AVS_Buf_3.g4a |
---|
0,0 → 1,543 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 45 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: PL3_AVS_Buf_3.asm |
// Author: Tatiya, Rupesh |
// Description: Loads 8x8 AVS/IEF PL3 data into Buffer 3 |
// FileName : PL3_AVS_Buf.asm |
// Author : Tatiya, Rupesh |
// Description : Loads 8x8 AVS/IEF PL3 data into Buffer N |
// Module name: Scaling.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
// Message Header |
// m0.7 31:0 Debug |
// m0.6 31:0 Debug |
// m0.5 31:0 Ignored |
// m0.4 31:0 Ignored |
// m0.3 31:0 Ignored |
// m0.2 31:16 Ignored |
// 15 Alpha Write Channel Mask enable=0, disable=1 |
// 14 Blue Write Channel Mask (U) |
// 13 Green Write Channel Mask (Y) |
// 12 Red Write Channel Mask (V) |
// 11:0 Ignored |
// m0.1 Ignored |
// m0.0 Ignored |
// AVS payload |
// m1.7 Group ID Number |
// m1.6 U 2nd Derivative ---> NLAS dx |
// m1.5 Delta V ---> Step Y |
// m1.4 Delta U ---> Step X |
// m1.3 Pixel 0 V Address ---> ORIY (Y0) |
// m1.2 Pixel 0 U Address ---> ORIX (X0) |
// m1.1 Vertical Block Number |
// m1.0 Reserved |
// Sampler Message Descriptor |
// 31:29 Reserved 000 |
// 28:25 Message length 0010 |
// 24:20 Response length xxxxx ---> 4GRFs for each enabled channel (AVS), 2GRFs for each enabled channel (sample unorm) |
// 19 Header Present 1 |
// 18:17 SIMD Mode 11 ---> SIMD32/64 |
// 16:12 Message Type xxxxx ---> 01011 sample_8x8, 01100 (sample_unorm), 01010 (sample_unorm+killpix) |
// 11:8 Sampler Index xxxx |
// 7:0 Binding Table Index xxxxxxxx |
// Msg Header M0.2 |
// 15:15 Alpha Write Channel Mask, 0: written back, 1: not written back |
// 14:14 Blue Write Channel Mask |
// 13:13 Green Write Channel Mask |
// 12:12 Red Write Channel Mask |
//By design, Buffer 0,1,2,3 always have Layer 0 and Buffer 4,5 always have L1-L7 |
//used to generate LABELS at compile time. |
// 18:17 SIMD Mode 10 ---> SIMD16 |
// 16:12 Message Type xxxxx ---> 00000 (SIMD16) |
//r10-17 - 8 GRFs to load SIMD16 data (upto 4 channels) |
//r18-19 - 2 GRFs to store sampler ramp. |
.declare mfSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare muwSCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare mudCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare mubCALING_0X_34X_PAYLOAD Base=r14.0 ElementSize=1 SrcRegion=<32;32,1> DstRegion=<1> Type=ub |
.declare fSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udSCALING_0X_34X_TEMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ub4SCALING_0X_34X_TEMP Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<1> Type=ub |
.declare uwSCALING_0X_34X_TEMP Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
// Sampler ramp is used for Scaling 0X_0.34X |
.declare fSAMPLER_RAMP Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> Type=f // 1 GRFs, 8 elements |
//#define rMSGDSC_UV r23.0 |
//End of _SCALING_ |
//Check if layer is to be skipped |
// f0.1 pre-computed in Set_Layer_0 |
(-f0.1) jmpi (1) SKIP_AVS_LOAD_L0_3_ |
//AVS_PAYLOAD already has all the data loaded at this point |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB400:ud //msg desc |
mov (1) r16.2:ud 0x0000D000:ud // Enable Red channel |
// set the vertical block number |
add (1) r25.1<1>:ud r7.12:uw 3:ud |
mov (8) r17.0:ud r25.0<8;8,1>:ud // Copy msg payload mirrors to MRFs |
// Gen7 AVS WA Only for YUV packed surfaces, NV12 and Y-channel only for Planar surfaces |
// if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
// } |
// else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
// { |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
// } |
// else{ |
// modified_u_coord = u_coord; |
// } |
// Where u_left = u – 2*du + 3*ddu for IEF On |
// And u_left = u for IEF Off case |
// |
// check whether Gen7 AVS WA is enabled, |
mov (1) r14.8:uw f0.0:uw // save f0.0 |
mov (1) r14.5:f r17.2<0;1,0>:f // save pixel 0 U for chroma |
and.nz.f0.0 (1) null<1>:uw r2.3:uw 0x2:uw |
(-f0.0)jmpi (1) GEN7_PL3_AVS_WA_DONE_L0_3_ |
// Gen7 AVS WA, check if IEF is ON for choosing Gen7 AVS WA formula |
and.nz.f0.0 (8) null<1>:uw r2.3<0;1,0>:uw 0x4:uw |
(f0.0)mov (8) acc0.0:f r17.2<0;1,0>:f |
(f0.0)mac (8) acc0.0:f r17.4<0;1,0>:f -2.0:f |
(f0.0)mac (8) acc0.0:f r17.6<0;1,0>:f 3.0:f |
(f0.0)mov (1) r14.2:f acc0:f // IEF ON, rTEMP3.2 = u_left |
(-f0.0)mov (1) r14.2:f r17.2<0;1,0>:f // IEF OFF, rTEMP3.2 = u_left |
and (1) r14.1:ud r2.3:uw 0xFFF8:uw |
asr (1) r14.1:ud r14.1:ud 3:d |
mov (1) r14.1:f r14.1:ud |
// Gen7 AVS WA, if (int)(u_left*width + 5.0/256) > (int)(u_left*width) |
mul (1) r14.0:f r14.2:f r14.1:f // rTEMP3.0 = u_left*width |
add (1) r14.2:f r14.0:f 0.01953125:f // rTEMP3.2 = u_left*width + 5.0/256 |
add (1) r14.3:f r14.0:f 0.99609375:f // rTEMP3.3 = u_left*width + 255.0/256 |
//Check if the values are < 0 and account for (int) cast of negative numbers |
//(int)(u_left*width) |
cmp.l.f0.0 (1) null<1>:f r14.0:f 0.00000000:f |
mov (1) r14.0:d r14.0:f |
(f0.0)add (1) r14.0:d r14.0<0;1,0>:d -1:d |
//(int)(u_left*width + 5.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.2:f 0.00000000:f |
mov (1) r14.2:d r14.2:f |
(f0.0)add (1) r14.2:d r14.2<0;1,0>:d -1:d |
//(int)(u_left*width + 255.0/256) |
cmp.l.f0.0 (1) null<1>:f r14.3:f 0.00000000:f |
mov (1) r14.3:d r14.3:f |
(f0.0)add (1) r14.3:d r14.3<0;1,0>:d -1:d |
mov (1) f0.0:uw 0:uw // clear flag |
//if (((int)(u_left*width + 5.0/256) > (int)(u_left*width)) |
cmp.g.f1.0 (1) null<1>:d r14.2:d r14.0:d |
// modified_u_coord = u_coord – 5.0/(256*width); //floating point |
(f1.0) add (1) r17.2:f r17.2<0;1,0>:f -r2.3:f |
//else if(((int)(u_left*width + 255.0/256) == (int)(u_left*width)) |
(-f1.0) cmp.e.f0.0 (1) null<1>:d r14.3:d r14.0:d |
// modified_u_coord = u_coord + 1.0/(256*width); //floating point |
(f0.0) add (1) r17.2:f r17.2<0;1,0>:f r2.2:f |
GEN7_PL3_AVS_WA_DONE_L0_3_: |
mov (1) f0.0:uw r14.8:uw // restore f0.0 |
send (1) uwBUFFER_3(0)<1> r16 0x2 a0.0:ud |
// Returns Y data in 4 GRFs in scrambled order |
mov (1) r17.2:f r14.5:f // restore pixel 0 U for chroma, No AVS WA for chroma |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EB801:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000E000:ud // Enable Red channel |
send (1) uwBUFFER_3(4)<1> r16 0x2 a0.0:ud |
// Returns U data in 4 GRFs in scrambled order |
add (1) a0.0:ud r23.5<0;1,0>:ud 0x44EBC02:ud // msg desc; 1 is added to change BI to UV |
mov (1) r16.2:ud 0x0000E000:ud // Enable Red channel |
send (1) uwBUFFER_3(8)<1> r16 0x2 a0.0:ud |
// Returns V data in 4 GRFs in scrambled order |
SKIP_AVS_LOAD_L0_3_: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/PL3_DNDI_422CP.g4a |
---|
0,0 → 1,562 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 120 // Total instruction count |
// 1 // Total kernel count |
.kernel PL3_DNDI_422CP |
.code |
// FileName: DNDI_PL_Core.asm |
// Author: Tatiya, Rupesh |
// FileName: DNDI_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN+DI case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4BE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (1) mudMSGHDR_HIST(1)<1> udDNDI_RESP(9,0)<0;1,0> // Move denoise history to MRF (4x1) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x3:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Load_UV_IMC3_16x4.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x4 block through DATAPORT |
// FileName: UVCopy_Load_16x4.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x4 block through DATAPORT |
add (2) r27.0<1>:d r7.0<2;2,1>:w r4.4<2;2,1>:w // Source Y Block origin |
asr (2) r27.0<1>:d r27.0<2;2,1>:d 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) r27.2<1>:ud 0x10007:ud { NoDDChk } // U/V block width and height (8x2) |
mov (8) r36<1>:ud r27.0<8;8,1>:ud |
mov (8) r38<1>:ud r27.0<8;8,1>:ud |
send (8) udDNDI_UV_RESP(0)<1> r36 0x4 0x2190001:ud |
send (8) udDNDI_UV_RESP(1)<1> r38 0x4 0x2190002:ud |
// FileName: DN_Save_Y_16x4.asm |
// Author: Vivek Kumar |
// Description: Save one 16x4 blocks of Y channel of DN output for reference |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w r1.28<0;1,0>:ub 1:w |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
mov (2) mdMSGHDR_DN_OUT(0,0)<1> r7.0<2;2,1>:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x3000F:ud { NoDDChk } // block width and height (32x8) |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
mov (4) mudMSGHDR_DN_OUT(1,0)<1> udDNDI_RESP(10,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(1,4)<1> udDNDI_RESP(4,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
mov (4) mudMSGHDR_DN_OUT(2,0)<1> udDNDI_RESP(10,4)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(2,4)<1> udDNDI_RESP(5,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
mov (4) mudMSGHDR_DN_OUT(1,0)<1> udDNDI_RESP(4,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(1,4)<1> udDNDI_RESP(10,0)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
mov (4) mudMSGHDR_DN_OUT(2,0)<1> udDNDI_RESP(5,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(2,4)<1> udDNDI_RESP(10,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
SAVE_DN_CURR: |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0x60A8018:ud |
// FileName: DI_Save_422CP_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in 422 format to Color Pipe (IECP) |
.declare mubMSGHDR_DI_OUT1_1 Base=r18.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT1_2 Base=r21.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT2_1 Base=r24.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT2_2 Base=r27.0 ElementSize=1 Type=ub |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:ud r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:ud r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3000F:ud { NoDDClr, NoDDChk } // Block width and height (16x8) |
//M0.3 - 0 - CP Enable, 1 - Area of Interest, 3:2 Message Format(TBD), 4:3 - Ignored, 31:5 CP state pointer |
//Compose area-of-interest bit + color pipe state pointer |
or (1) r27.3<1>:ud r2.4<0;1,0>:ud r7.26<0;1,0>:b { NoDDChk } |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r24.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y; First 8x4 block |
mov (8) mubMSGHDR_DI_OUT1_1(1)<2> ubDNDI_RESP(0,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(1,16)<2> ubDNDI_RESP(0,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(2)<2> ubDNDI_RESP(0,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(2,16)<2> ubDNDI_RESP(0,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 2nd field U, V; First 8x4 block |
mov (4) mubMSGHDR_DI_OUT1_1(1,1)<4> ubDNDI_RESP(2,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,17)<4> ubDNDI_RESP(2,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,3)<4> ubDNDI_RESP(2,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,19)<4> ubDNDI_RESP(2,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,1)<4> ubDNDI_RESP(2,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,17)<4> ubDNDI_RESP(2,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,3)<4> ubDNDI_RESP(2,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,19)<4> ubDNDI_RESP(2,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Pack 2nd field Y; Second 8x4 block |
mov (8) r21.0<1>:ud r18.0<8;8,1>:ud |
add (1) r21.0<1>:ud r21.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DI_OUT1_2(1)<2> ubDNDI_RESP(0,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(1,16)<2> ubDNDI_RESP(0,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(2)<2> ubDNDI_RESP(0,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(2,16)<2> ubDNDI_RESP(0,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 2nd field U, V; Second 8x4 block |
mov (4) mubMSGHDR_DI_OUT1_2(1,1)<4> ubDNDI_RESP(2,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,17)<4> ubDNDI_RESP(2,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,3)<4> ubDNDI_RESP(2,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,19)<4> ubDNDI_RESP(2,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,1)<4> ubDNDI_RESP(2,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,17)<4> ubDNDI_RESP(2,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,3)<4> ubDNDI_RESP(2,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,19)<4> ubDNDI_RESP(2,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
send (8) null<1>:d r18.0 0x5 0x60A801B:ud |
send (8) null<1>:d r21.0 0x5 0x60A801B:ud |
// Pack 1st field Y; 1st 8x4 block |
mov (8) mubMSGHDR_DI_OUT2_1(1)<2> ubDNDI_RESP(4,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(1,16)<2> ubDNDI_RESP(4,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(2)<2> ubDNDI_RESP(4,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(2,16)<2> ubDNDI_RESP(4,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 1st field U,V; 1st 8x4 block |
mov (4) mubMSGHDR_DI_OUT2_1(1,1)<4> ubDNDI_RESP(6,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,17)<4> ubDNDI_RESP(6,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,3)<4> ubDNDI_RESP(6,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,19)<4> ubDNDI_RESP(6,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,1)<4> ubDNDI_RESP(6,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,17)<4> ubDNDI_RESP(6,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,3)<4> ubDNDI_RESP(6,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,19)<4> ubDNDI_RESP(6,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Pack 1st field Y; 2nd 8x4 block |
mov (8) r27.0<1>:ud r24.0<8;8,1>:ud |
add (1) r27.0<1>:ud r27.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DI_OUT2_2(1)<2> ubDNDI_RESP(4,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(1,16)<2> ubDNDI_RESP(4,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(2)<2> ubDNDI_RESP(4,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(2,16)<2> ubDNDI_RESP(4,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 1st field U, V; 2nd 8x4 block |
mov (4) mubMSGHDR_DI_OUT2_2(1,1)<4> ubDNDI_RESP(6,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,17)<4> ubDNDI_RESP(6,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,3)<4> ubDNDI_RESP(6,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,19)<4> ubDNDI_RESP(6,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,1)<4> ubDNDI_RESP(6,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,17)<4> ubDNDI_RESP(6,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,3)<4> ubDNDI_RESP(6,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,19)<4> ubDNDI_RESP(6,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
send (8) null<1>:d r24.0 0x5 0x60A801E:ud |
send (8) null<1>:d r27.0 0x5 0x60A801E:ud |
// FileName: DN_Save_UV_IMC3_16x4.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x4 block through DATAPORT |
// FileName: UVCopy_Save_16x4.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x4 block through DATAPORT |
//Reuse the header from Load component |
mov (4) mudMSGHDR_UCOPY(1)<1> udDNDI_UV_RESP(0)<4;4,1> |
mov (4) mudMSGHDR_VCOPY(1)<1> udDNDI_UV_RESP(1)<4;4,1> |
send (4) null<1>:d r36 0x5 0x40A8019:ud |
send (4) null<1>:d r38 0x5 0x40A801A:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PL3_DNDI_PA.g4a |
---|
0,0 → 1,500 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 90 // Total instruction count |
// 1 // Total kernel count |
.kernel PL3_DNDI_PA |
.code |
// FileName: DNDI_PL_Core.asm |
// Author: Tatiya, Rupesh |
// FileName: DNDI_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN+DI case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4BE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (1) mudMSGHDR_HIST(1)<1> udDNDI_RESP(9,0)<0;1,0> // Move denoise history to MRF (4x1) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x3:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Load_UV_IMC3_16x4.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x4 block through DATAPORT |
// FileName: UVCopy_Load_16x4.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x4 block through DATAPORT |
add (2) r27.0<1>:d r7.0<2;2,1>:w r4.4<2;2,1>:w // Source Y Block origin |
asr (2) r27.0<1>:d r27.0<2;2,1>:d 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) r27.2<1>:ud 0x10007:ud { NoDDChk } // U/V block width and height (8x2) |
mov (8) r36<1>:ud r27.0<8;8,1>:ud |
mov (8) r38<1>:ud r27.0<8;8,1>:ud |
send (8) udDNDI_UV_RESP(0)<1> r36 0x4 0x2190001:ud |
send (8) udDNDI_UV_RESP(1)<1> r38 0x4 0x2190002:ud |
// FileName: DN_Save_Y_16x4.asm |
// Author: Vivek Kumar |
// Description: Save one 16x4 blocks of Y channel of DN output for reference |
// check top/bottom field first |
cmp.e.f0.0 (1) null<1>:w r1.28<0;1,0>:ub 1:w |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
mov (2) mdMSGHDR_DN_OUT(0,0)<1> r7.0<2;2,1>:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x3000F:ud { NoDDChk } // block width and height (32x8) |
(f0.0) jmpi (1) TOP_FIELD_FIRST |
BOTTOM_FIELD_FIRST: |
mov (4) mudMSGHDR_DN_OUT(1,0)<1> udDNDI_RESP(10,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(1,4)<1> udDNDI_RESP(4,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
mov (4) mudMSGHDR_DN_OUT(2,0)<1> udDNDI_RESP(10,4)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(2,4)<1> udDNDI_RESP(5,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
jmpi (1) SAVE_DN_CURR |
TOP_FIELD_FIRST: |
mov (4) mudMSGHDR_DN_OUT(1,0)<1> udDNDI_RESP(4,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(1,4)<1> udDNDI_RESP(10,0)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
mov (4) mudMSGHDR_DN_OUT(2,0)<1> udDNDI_RESP(5,0)<4;4,1> { NoDDClr } // 2nd field luma from current frame (line 0,2) |
mov (4) mudMSGHDR_DN_OUT(2,4)<1> udDNDI_RESP(10,4)<4;4,1> { NoDDChk } // 1st field luma from current frame (line 1,3) |
SAVE_DN_CURR: |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0x60A8018:ud |
// FileName: DI_Save_PA_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in Packed format |
add (4) a0.4<1>:uw r2.28<4;4,1>:ub 608:w // Initial Y,U,V offset in YUV422 block; it starts at m20 |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:d r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:d r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3001F:ud { NoDDChk } // Block width and height (32x8) |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r23.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y |
mov (16) r[a0.4, 0]<2> ubDNDI_RESP(0,0) { NoDDClr } |
mov (16) r[a0.4, 32]<2> ubDNDI_RESP(0,16) { NoDDClr } |
mov (16) r[a0.4, 64]<2> ubDNDI_RESP(0,32) { NoDDClr } |
mov (16) r[a0.4, 96]<2> ubDNDI_RESP(0,48) { NoDDClr } |
// Pack 2nd field U |
mov (8) r[a0.5, 0]<4> ubDNDI_RESP(2,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 32]<4> ubDNDI_RESP(2,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 64]<4> ubDNDI_RESP(2,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 96]<4> ubDNDI_RESP(2,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 2nd field V |
mov (8) r[a0.6, 0]<4> ubDNDI_RESP(2,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 32]<4> ubDNDI_RESP(2,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 64]<4> ubDNDI_RESP(2,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 96]<4> ubDNDI_RESP(2,48)<16;8,2> { NoDDChk } //Vpixels |
// Pack 1st field Y |
mov (16) r[a0.4, 160]<2> ubDNDI_RESP(4,0) { NoDDClr } |
mov (16) r[a0.4, 192]<2> ubDNDI_RESP(4,16) { NoDDClr } |
mov (16) r[a0.4, 224]<2> ubDNDI_RESP(4,32) { NoDDClr } |
mov (16) r[a0.4, 256]<2> ubDNDI_RESP(4,48) { NoDDClr } |
// Pack 1st field U |
mov (8) r[a0.5, 160]<4> ubDNDI_RESP(6,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 192]<4> ubDNDI_RESP(6,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 224]<4> ubDNDI_RESP(6,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 256]<4> ubDNDI_RESP(6,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 1st field V |
mov (8) r[a0.6, 160]<4> ubDNDI_RESP(6,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 192]<4> ubDNDI_RESP(6,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 224]<4> ubDNDI_RESP(6,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 256]<4> ubDNDI_RESP(6,48)<16;8,2> { NoDDChk } //Vpixels |
//save the previous frame |
send (8) null<1>:d r18.0 0x5 0xA0A801B:ud |
//save the current frame |
send (8) null<1>:d r23.0 0x5 0xA0A801E:ud |
// FileName: DN_Save_UV_IMC3_16x4.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x4 block through DATAPORT |
// FileName: UVCopy_Save_16x4.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x4 block through DATAPORT |
//Reuse the header from Load component |
mov (4) mudMSGHDR_UCOPY(1)<1> udDNDI_UV_RESP(0)<4;4,1> |
mov (4) mudMSGHDR_VCOPY(1)<1> udDNDI_UV_RESP(1)<4;4,1> |
send (4) null<1>:d r36 0x5 0x40A8019:ud |
send (4) null<1>:d r38 0x5 0x40A801A:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PL3_DNUV_PL3.g4a |
---|
0,0 → 1,2684 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 1295 // Total instruction count |
// 1 // Total kernel count |
.kernel PL3_DNUV_PL3 |
.code |
//Module : DN_UV_Setup |
//Author : Tatiya, Rupesh |
//Description : Initial Set-up for DN_UV |
// Module name : ChromaDenoise.inc |
// Author : Tatiya, Rupesh |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================================================== |
//Interface for serpent mode Chroma Denoise, added by Le |
//====================================================== |
//r1 |
//noise history thresholds (low and high) |
//temporal difference thresholds (high and low) |
//noise history thresholds (low and high) |
//#define ubNoiseHistMaxHigh r1.22 |
//#define ubNoiseHistMaxLow r1.23 |
//#define ubNoiseHistDeltaHigh r1.24 |
//#define ubNoiseHistDeltaLow r1.25 |
//Gaussian thresholds |
//temporal difference thresholds (default) |
//r2 |
//history thresholds (default) |
//denoise factor (0-63) |
//====================== Binding table (Explicit To DNUV)========================================= |
//Used by DN_UV kernels |
//Pointer to Current Frame UV |
//r1-r6 |
//CURBE GRFs used as TEMP : Used for max computation and storing max temporarily. : r1-r6 |
.declare ubCURBE_TEMP Base=r1.0 ElementSize=1 Type=ub |
.declare uwCURBE_TEMP Base=r1.0 ElementSize=2 Type=uw |
.declare wCURBE_TEMP Base=r1.0 ElementSize=2 Type=w |
.declare fCURBE_TEMP Base=r1.0 ElementSize=4 Type=f |
.declare udCURBE_TEMP Base=r1.0 ElementSize=4 Type=ud |
.declare uwMAX_ABS_DIFF Base=r5.0 ElementSize=2 Type=uw |
//r1 |
//r3 |
//r4 |
//r7 |
//All of the following has to defined in Same GRF for optimal performance. |
//r8-24 |
//Previous Frame UV |
.declare udPREV_UV Base=r8.0 ElementSize=4 Type=ud |
.declare ubPREV_UV Base=r8.0 ElementSize=1 Type=ub |
//r25-48 |
//TEMP Space for any Usage. |
//========================================================================= |
//Definations and declarations for serpent mode Chroma Denoise, added by Le |
//========================================================================= |
.declare udGNE_UV Base=r24.0 ElementSize=4 Type=ud |
.declare fGNE_UV Base=r24.0 ElementSize=4 Type=f |
.declare ubGNE_UV Base=r24.0 ElementSize=1 Type=ub |
.declare udMSGHDR_BNE_SERP Base=r25.0 ElementSize=4 Type=ud |
.declare udMSGSRC_BNE_SERP Base=r26.0 ElementSize=4 Type=ud |
.declare ubDN_UV_Thresholds Base=r26.0 ElementSize=1 Type=ub |
.declare ubDN_UV_Thresholds_Temp Base=r27.0 ElementSize=1 Type=ub |
.declare udDN_UV_Thresholds Base=r26.0 ElementSize=4 Type=ud |
.declare udDN_UV_Thresholds_Temp Base=r27.0 ElementSize=4 Type=ud |
.declare fDN_UV_Thresholds Base=r26.0 ElementSize=4 Type=f |
.declare fDN_UV_Thresholds_Temp Base=r27.0 ElementSize=4 Type=f |
//==================================================================================== |
//TEMP23: To hold V data for PL3 surfaces |
.declare udCURR_V_TEMP Base=r25.0 ElementSize=4 Type=ud |
.declare ubCURR_V_TEMP Base=r25.0 ElementSize=1 Type=ub |
//GRFs to calculate Median: r25-r42 |
.declare ubMEDIAN_TEMP Base=r25.0 ElementSize=1 Type=ub |
//18 GRFs to hold difference : r25-r42 |
.declare wDIFF Base=r25.0 ElementSize=2 Type=w |
.declare uwDIFF Base=r25.0 ElementSize=2 Type=uw |
//Temporal Diff |
.declare wDIFF_TEMPORAL Base=r25.0 ElementSize=2 Type=w |
.declare ubDIFF_TEMPORAL Base=r25.0 ElementSize=1 Type=ub |
//4 GRFs to hold Sobel Value : r43-46 |
.declare wSOBEL_X Base=r43.0 ElementSize=2 Type=w |
.declare uwSOBEL Base=r43.0 ElementSize=2 Type=uw |
//2 GRFs to hold SOAD temporarily: r47-48 |
.declare uwSOAD Base=r47.0 ElementSize=2 Type=uw |
//Temp GRFs to hold extra YUYV pixels: r43-r48 |
.declare ubTEMP5 Base=r43.0 ElementSize=1 Type=ub |
//Temp GRFs in Median Calculation: r47-r48 |
.declare ubTEMP1 Base=r47.0 ElementSize=1 Type=ub |
.declare uwTEMP0 Base=r48.0 ElementSize=2 Type=uw |
.declare ubTEMP0 Base=r48.0 ElementSize=1 Type=ub |
//Temp Space to store Median : r49-50 |
.declare ubMEDIAN Base=r49.0 ElementSize=1 Type=ub |
//r49 |
//r50 |
//Message Source |
//r51 |
//DN_UV History Surface |
.declare udHIST_UV Base=r51.0 ElementSize=4 Type=ud |
.declare ubHIST_UV Base=r51.0 ElementSize=1 Type=ub |
//r52 - r91 |
//r52 |
//Current Frame UV |
.declare udCURR_UV Base=r52.0 ElementSize=4 Type=ud |
.declare ubCURR_UV Base=r52.0 ElementSize=1 Type=ub |
//r54 |
//CURBE COPY |
//r55 |
.declare uwSOAD_MIN_8x4 Base=r56.0 ElementSize=2 Type=uw |
//r61 |
//r62 |
//History Surface Temp Origin |
//r63 |
//Current Frame Y Temp Origin |
//BNE Surface Origin |
//r70 |
.declare uwDIFF_TEMPORAL_SUM4x4 Base=r70.0 ElementSize=2 Type=uw //4 GRFs |
//r74-91 : For Saving Dest UV (PL2/PL3) |
.declare ubMSGPAYLOAD_UV0 Base=r75.0 ElementSize=1 Type=ub |
.declare ubMSGPAYLOAD_U Base=r75.0 ElementSize=1 Type=ub |
.declare ubMSGPAYLOAD_UV1 Base=r84.0 ElementSize=1 Type=ub |
.declare ubMSGPAYLOAD_V Base=r84.0 ElementSize=1 Type=ub |
//r90 |
.declare uwDIFF_TEMPORAL_SUM4x4_FINAL Base=r90.0 ElementSize=2 Type=uw //2 GRFs |
//r92-127 |
//Current Frame Y |
//r92 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_0 Base=r92 ElementSize=2 Type=uw |
//r101 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_1 Base=r101 ElementSize=2 Type=uw |
//r110 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_2 Base=r110 ElementSize=2 Type=uw |
//r119 |
.declare uwDIFF_TEMPORAL_SUM4x4_TEMP_3 Base=r119 ElementSize=2 Type=uw |
.declare udCURR_Y0 Base=r93.0 ElementSize=4 Type=ud |
.declare ubCURR_Y0 Base=r93.0 ElementSize=1 Type=ub |
.declare udCURR_Y1 Base=r102.0 ElementSize=4 Type=ud |
.declare ubCURR_Y1 Base=r102.0 ElementSize=1 Type=ub |
.declare udCURR_Y2 Base=r111.0 ElementSize=4 Type=ud |
.declare ubCURR_Y2 Base=r111.0 ElementSize=1 Type=ub |
.declare udCURR_Y3 Base=r120.0 ElementSize=4 Type=ud |
.declare ubCURR_Y3 Base=r120.0 ElementSize=1 Type=ub |
//r92: To hold U data for PL3 surfaces |
.declare udCURR_U_TEMP Base=r92.0 ElementSize=4 Type=ud |
.declare ubCURR_U_TEMP Base=r92.0 ElementSize=1 Type=ub |
//r112: To hold U data for PL3 surfaces |
.declare udPREV_U_TEMP Base=r112.0 ElementSize=4 Type=ud |
.declare ubPREV_U_TEMP Base=r112.0 ElementSize=1 Type=ub |
//r120: To hold U data for PL3 surfaces |
.declare udPREV_V_TEMP Base=r120.0 ElementSize=4 Type=ud |
.declare ubPREV_V_TEMP Base=r120.0 ElementSize=1 Type=ub |
// Initialize message source with r0. |
mov (8) r50.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r92.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r101.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r110.0<1>:ud r0.0<8;8,1>:ud |
mov (8) r119.0<1>:ud r0.0<8;8,1>:ud |
//Module Name : DN_UV_PL3_Load_Curr_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Loads Current Frame U/V data for PL3 input. |
//Module name : DN_UV_Load_Curr_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Loads Current Frame (UV only). |
// We need 4 extra rows (2 per field) and 2 extra pixel (1 each side) for both U and V each. |
// The processing size is 16x16 U and V each. So we need : U size - 18x20, V size - 18x20, UV size - 36x20, YUYV size - 72x20. |
//18x20 U/V block is partitioned as follows: |
// <------ 18 ------> |
// ------------------ |
// | 18x8 A1 | |
// | | |
// |----------------| |
// | 18x8 A2 | |
// | | |
// |----------------| |
// | 18x4 A2 | |
// |----------------| |
// |
// Cordinates: (x-1, y-2), (x-1, y+6), (x-1, y+14) |
//1. Load U data into starting at CURR_Y0 (r93-r122) |
//2. Load V data into TEMP space (r25-r44) |
//U/V surface origin: (ORIX/2, ORIY/2) |
add (2) r7.4<1>:w r7.0<2;2,1>:w r4.4<2;2,1>:w { AccWrEn } // Source Block origin |
shr (2) r7.4<1>:w acc0.4<2;2,1>:w 1:w //U Data |
mov (2) acc0.0<1>:d r7.4<2;2,1>:w |
//A1 |
add (1) r50.0<1>:d acc0.0<0;1,0>:d -1:d |
add (1) r50.1<1>:d acc0.1<0;1,0>:d -2:d |
mov (1) r50.2<1>:ud 0x70011:ud |
send (8) udCURR_U_TEMP(0)<1> r50 0x4 0x2890004:ud |
//A2 |
add (1) r50.1<1>:d acc0.1<0;1,0>:d 6:d |
send (8) udCURR_U_TEMP(8)<1> r50 0x4 0x2890004:ud |
//A3 |
add (1) r50.1<1>:d acc0.1<0;1,0>:d 14:d |
mov (1) r50.2<1>:ud 0x30011:ud |
send (8) udCURR_U_TEMP(16)<1> r50 0x4 0x2490004:ud |
//V Data |
//A1 |
add (1) r50.0<1>:d acc0.0<0;1,0>:d -1:d |
add (1) r50.1<1>:d acc0.1<0;1,0>:d -2:d |
mov (1) r50.2<1>:ud 0x70011:ud |
send (8) udCURR_V_TEMP(0)<1> r50 0x4 0x2890005:ud |
//A2 |
add (1) r50.1<1>:d acc0.1<0;1,0>:d 6:d |
send (8) udCURR_V_TEMP(8)<1> r50 0x4 0x2890005:ud |
//A3 |
add (1) r50.1<1>:d acc0.1<0;1,0>:d 14:d |
mov (1) r50.2<1>:ud 0x30011:ud |
send (8) udCURR_V_TEMP(16)<1> r50 0x4 0x2490005:ud |
//History Origin, Current Y origin and BNE surface origin - all are in inline GRF. Use , . -rT. |
//Calculate Origin For History Surface: (ORIX/4, ORIY/8) |
mov (16) acc0.0<1>:w r7.0<0;2,1>:w { AccWrEn } |
shr (1) r7.2<1>:w acc0.2<0;1,0>:w 2:w |
shr (1) r7.3<1>:w acc0.3<0;1,0>:w 3:w |
//Calculate Origin For BNE Surface: (ORIX/8, ORIY/16) |
shr (1) r7.6<1>:w acc0.6<0;1,0>:w 3:w |
shr (1) r7.7<1>:w acc0.7<0;1,0>:w 4:w |
//Module Name : DN_UV_PL3_Load_Prev_Frame_UV.asm |
//Author : Tatiya, Rupesh |
//Description : Loads Pevious Frame UV data for PL3 input. |
//Module Name : DN_UV_Load_Prev_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Loads Prev Frame (UV only). U size - 16x16, V size - 16x16, UV size - 32x16, YUYV size - 64x16. |
//1. Load U in bottom half of UV space for prev frame (r17-r24) |
//2. Load V in bottom quarter of Y space for curr frame (r120-r127) |
mov (2) r50.0<1>:d r7.4<2;2,1>:w { AccWrEn } // Source lock origin |
mov (1) r50.2<1>:ud 0xF000F:ud // U/V block width and height (16x16) |
mov (8) r49.0<1>:ud r50<8;8,1>:ud |
send (8) udPREV_U_TEMP(0)<1> r50 0x4 0x2890001:ud //U data |
send (8) udPREV_V_TEMP(0)<1> r49 0x4 0x2890002:ud //V data |
//TODO - See if History loading can be combined with Prev Frame Load. - rT |
//Module name : DN_UV_Load_Hist_UV |
//Author : Tatiya, Rupesh |
//Description : Load DN History for UV denoise. 4x4 for each U & V. |
mov (2) r50.0<1>:d r7.2<2;2,1>:w |
mov (1) r50.2<1>:ud 0x30007:ud |
send (8) udHIST_UV(0)<1> r50 0x4 0x2190022:ud |
//File Name : DN_UV_PL3_Interleave_Curr_Frame_UV.asm |
//Author : Tatiya, Rupesh |
//Description : Interleave separately loaded U and V for PL3 format. |
// This is needed because Noise Detection and Noise Reduction works on interleaved UV data. |
//1. U data: Starting at CURR_Y0 (r93-r122) |
//2. V data: TEMP space (r25-r44) |
//In one GRF, we need 10 U (1+8+1) bytes, but there's no SIMD10. So use SIMD16 and discard last 6 bytes. |
//Move U data |
mov (16) ubCURR_UV(0,0)<2> ubCURR_U_TEMP(0,0)<16;16,1> |
mov (16) ubCURR_UV(20,0)<2> ubCURR_U_TEMP(0,8)<16;16,1> |
mov (16) ubCURR_UV(1,0)<2> ubCURR_U_TEMP(1,0)<16;16,1> |
mov (16) ubCURR_UV(21,0)<2> ubCURR_U_TEMP(1,8)<16;16,1> |
mov (16) ubCURR_UV(2,0)<2> ubCURR_U_TEMP(2,0)<16;16,1> |
mov (16) ubCURR_UV(22,0)<2> ubCURR_U_TEMP(2,8)<16;16,1> |
mov (16) ubCURR_UV(3,0)<2> ubCURR_U_TEMP(3,0)<16;16,1> |
mov (16) ubCURR_UV(23,0)<2> ubCURR_U_TEMP(3,8)<16;16,1> |
mov (16) ubCURR_UV(4,0)<2> ubCURR_U_TEMP(4,0)<16;16,1> |
mov (16) ubCURR_UV(24,0)<2> ubCURR_U_TEMP(4,8)<16;16,1> |
mov (16) ubCURR_UV(5,0)<2> ubCURR_U_TEMP(5,0)<16;16,1> |
mov (16) ubCURR_UV(25,0)<2> ubCURR_U_TEMP(5,8)<16;16,1> |
mov (16) ubCURR_UV(6,0)<2> ubCURR_U_TEMP(6,0)<16;16,1> |
mov (16) ubCURR_UV(26,0)<2> ubCURR_U_TEMP(6,8)<16;16,1> |
mov (16) ubCURR_UV(7,0)<2> ubCURR_U_TEMP(7,0)<16;16,1> |
mov (16) ubCURR_UV(27,0)<2> ubCURR_U_TEMP(7,8)<16;16,1> |
mov (16) ubCURR_UV(8,0)<2> ubCURR_U_TEMP(8,0)<16;16,1> |
mov (16) ubCURR_UV(28,0)<2> ubCURR_U_TEMP(8,8)<16;16,1> |
mov (16) ubCURR_UV(9,0)<2> ubCURR_U_TEMP(9,0)<16;16,1> |
mov (16) ubCURR_UV(29,0)<2> ubCURR_U_TEMP(9,8)<16;16,1> |
mov (16) ubCURR_UV(10,0)<2> ubCURR_U_TEMP(10,0)<16;16,1> |
mov (16) ubCURR_UV(30,0)<2> ubCURR_U_TEMP(10,8)<16;16,1> |
mov (16) ubCURR_UV(11,0)<2> ubCURR_U_TEMP(11,0)<16;16,1> |
mov (16) ubCURR_UV(31,0)<2> ubCURR_U_TEMP(11,8)<16;16,1> |
mov (16) ubCURR_UV(12,0)<2> ubCURR_U_TEMP(12,0)<16;16,1> |
mov (16) ubCURR_UV(32,0)<2> ubCURR_U_TEMP(12,8)<16;16,1> |
mov (16) ubCURR_UV(13,0)<2> ubCURR_U_TEMP(13,0)<16;16,1> |
mov (16) ubCURR_UV(33,0)<2> ubCURR_U_TEMP(13,8)<16;16,1> |
mov (16) ubCURR_UV(14,0)<2> ubCURR_U_TEMP(14,0)<16;16,1> |
mov (16) ubCURR_UV(34,0)<2> ubCURR_U_TEMP(14,8)<16;16,1> |
mov (16) ubCURR_UV(15,0)<2> ubCURR_U_TEMP(15,0)<16;16,1> |
mov (16) ubCURR_UV(35,0)<2> ubCURR_U_TEMP(15,8)<16;16,1> |
mov (16) ubCURR_UV(16,0)<2> ubCURR_U_TEMP(16,0)<16;16,1> |
mov (16) ubCURR_UV(36,0)<2> ubCURR_U_TEMP(16,8)<16;16,1> |
mov (16) ubCURR_UV(17,0)<2> ubCURR_U_TEMP(17,0)<16;16,1> |
mov (16) ubCURR_UV(37,0)<2> ubCURR_U_TEMP(17,8)<16;16,1> |
mov (16) ubCURR_UV(18,0)<2> ubCURR_U_TEMP(18,0)<16;16,1> |
mov (16) ubCURR_UV(38,0)<2> ubCURR_U_TEMP(18,8)<16;16,1> |
mov (16) ubCURR_UV(19,0)<2> ubCURR_U_TEMP(19,0)<16;16,1> |
mov (16) ubCURR_UV(39,0)<2> ubCURR_U_TEMP(19,8)<16;16,1> |
//Move V data |
mov (16) ubCURR_UV(0,1)<2> ubCURR_V_TEMP(0,0)<16;16,1> |
mov (16) ubCURR_UV(20,1)<2> ubCURR_V_TEMP(0,8)<16;16,1> |
mov (16) ubCURR_UV(1,1)<2> ubCURR_V_TEMP(1,0)<16;16,1> |
mov (16) ubCURR_UV(21,1)<2> ubCURR_V_TEMP(1,8)<16;16,1> |
mov (16) ubCURR_UV(2,1)<2> ubCURR_V_TEMP(2,0)<16;16,1> |
mov (16) ubCURR_UV(22,1)<2> ubCURR_V_TEMP(2,8)<16;16,1> |
mov (16) ubCURR_UV(3,1)<2> ubCURR_V_TEMP(3,0)<16;16,1> |
mov (16) ubCURR_UV(23,1)<2> ubCURR_V_TEMP(3,8)<16;16,1> |
mov (16) ubCURR_UV(4,1)<2> ubCURR_V_TEMP(4,0)<16;16,1> |
mov (16) ubCURR_UV(24,1)<2> ubCURR_V_TEMP(4,8)<16;16,1> |
mov (16) ubCURR_UV(5,1)<2> ubCURR_V_TEMP(5,0)<16;16,1> |
mov (16) ubCURR_UV(25,1)<2> ubCURR_V_TEMP(5,8)<16;16,1> |
mov (16) ubCURR_UV(6,1)<2> ubCURR_V_TEMP(6,0)<16;16,1> |
mov (16) ubCURR_UV(26,1)<2> ubCURR_V_TEMP(6,8)<16;16,1> |
mov (16) ubCURR_UV(7,1)<2> ubCURR_V_TEMP(7,0)<16;16,1> |
mov (16) ubCURR_UV(27,1)<2> ubCURR_V_TEMP(7,8)<16;16,1> |
mov (16) ubCURR_UV(8,1)<2> ubCURR_V_TEMP(8,0)<16;16,1> |
mov (16) ubCURR_UV(28,1)<2> ubCURR_V_TEMP(8,8)<16;16,1> |
mov (16) ubCURR_UV(9,1)<2> ubCURR_V_TEMP(9,0)<16;16,1> |
mov (16) ubCURR_UV(29,1)<2> ubCURR_V_TEMP(9,8)<16;16,1> |
mov (16) ubCURR_UV(10,1)<2> ubCURR_V_TEMP(10,0)<16;16,1> |
mov (16) ubCURR_UV(30,1)<2> ubCURR_V_TEMP(10,8)<16;16,1> |
mov (16) ubCURR_UV(11,1)<2> ubCURR_V_TEMP(11,0)<16;16,1> |
mov (16) ubCURR_UV(31,1)<2> ubCURR_V_TEMP(11,8)<16;16,1> |
mov (16) ubCURR_UV(12,1)<2> ubCURR_V_TEMP(12,0)<16;16,1> |
mov (16) ubCURR_UV(32,1)<2> ubCURR_V_TEMP(12,8)<16;16,1> |
mov (16) ubCURR_UV(13,1)<2> ubCURR_V_TEMP(13,0)<16;16,1> |
mov (16) ubCURR_UV(33,1)<2> ubCURR_V_TEMP(13,8)<16;16,1> |
mov (16) ubCURR_UV(14,1)<2> ubCURR_V_TEMP(14,0)<16;16,1> |
mov (16) ubCURR_UV(34,1)<2> ubCURR_V_TEMP(14,8)<16;16,1> |
mov (16) ubCURR_UV(15,1)<2> ubCURR_V_TEMP(15,0)<16;16,1> |
mov (16) ubCURR_UV(35,1)<2> ubCURR_V_TEMP(15,8)<16;16,1> |
mov (16) ubCURR_UV(16,1)<2> ubCURR_V_TEMP(16,0)<16;16,1> |
mov (16) ubCURR_UV(36,1)<2> ubCURR_V_TEMP(16,8)<16;16,1> |
mov (16) ubCURR_UV(17,1)<2> ubCURR_V_TEMP(17,0)<16;16,1> |
mov (16) ubCURR_UV(37,1)<2> ubCURR_V_TEMP(17,8)<16;16,1> |
mov (16) ubCURR_UV(18,1)<2> ubCURR_V_TEMP(18,0)<16;16,1> |
mov (16) ubCURR_UV(38,1)<2> ubCURR_V_TEMP(18,8)<16;16,1> |
mov (16) ubCURR_UV(19,1)<2> ubCURR_V_TEMP(19,0)<16;16,1> |
mov (16) ubCURR_UV(39,1)<2> ubCURR_V_TEMP(19,8)<16;16,1> |
//File Name : DN_UV_PL3_Interleave_Prev_Frame_UV.asm |
//Author : Tatiya, Rupesh |
//Description : Interleave separately loaded U and V for PL3 format. |
// This is needed because Noise Detection and Noise Reduction works on interleaved UV data. |
//1.U Data: bottom half of UV space for prev frame (r17-r24) |
//2.V Data: bottom quarter of Y space for curr frame (r120-r127) |
mov (16) ubPREV_UV(0,0)<2> ubPREV_U_TEMP(0,0)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(8,0)<2> ubPREV_U_TEMP(0,8)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(1,0)<2> ubPREV_U_TEMP(1,0)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(9,0)<2> ubPREV_U_TEMP(1,8)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(2,0)<2> ubPREV_U_TEMP(2,0)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(10,0)<2> ubPREV_U_TEMP(2,8)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(3,0)<2> ubPREV_U_TEMP(3,0)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(11,0)<2> ubPREV_U_TEMP(3,8)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(4,0)<2> ubPREV_U_TEMP(4,0)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(12,0)<2> ubPREV_U_TEMP(4,8)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(5,0)<2> ubPREV_U_TEMP(5,0)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(13,0)<2> ubPREV_U_TEMP(5,8)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(6,0)<2> ubPREV_U_TEMP(6,0)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(14,0)<2> ubPREV_U_TEMP(6,8)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(7,0)<2> ubPREV_U_TEMP(7,0)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(15,0)<2> ubPREV_U_TEMP(7,8)<16;8,1> { NoDDClr } |
mov (16) ubPREV_UV(0,1)<2> ubPREV_V_TEMP(0,0)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(8,1)<2> ubPREV_V_TEMP(0,8)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(1,1)<2> ubPREV_V_TEMP(1,0)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(9,1)<2> ubPREV_V_TEMP(1,8)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(2,1)<2> ubPREV_V_TEMP(2,0)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(10,1)<2> ubPREV_V_TEMP(2,8)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(3,1)<2> ubPREV_V_TEMP(3,0)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(11,1)<2> ubPREV_V_TEMP(3,8)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(4,1)<2> ubPREV_V_TEMP(4,0)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(12,1)<2> ubPREV_V_TEMP(4,8)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(5,1)<2> ubPREV_V_TEMP(5,0)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(13,1)<2> ubPREV_V_TEMP(5,8)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(6,1)<2> ubPREV_V_TEMP(6,0)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(14,1)<2> ubPREV_V_TEMP(6,8)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(7,1)<2> ubPREV_V_TEMP(7,0)<16;8,1> { NoDDChk } |
mov (16) ubPREV_UV(15,1)<2> ubPREV_V_TEMP(7,8)<16;8,1> { NoDDChk } |
//Module Name : DN_UV_420_Load_Curr_Frame_Y |
//Author : Tatiya, Rupesh |
//Description : Load Curr Frame Y data for 420 Input |
//Module Name : DN_UV_Load_Curr_Frame_Y |
//Author : Tatiya, Rupesh |
//Description : Loads Y of Current frame. |
//For 16x16 U and 16x16 V for 420, we need to read 32x32 Y. |
mov (8) acc0.0<1>:ud r0.0<8;8,1>:ud |
mov (1) acc0.2<1>:ud 0xF000F:ud |
add (2) acc0.0<1>:ud r7.0<2;2,1>:w r4.4<2;2,1>:w |
mov (8) r92.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r101.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r110.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r119.0<1>:ud acc0.0<8;8,1>:ud |
add (1) r101.1<1>:d acc0.1<0;1,0>:d 16:d |
add (1) r110.0<1>:d acc0.0<0;1,0>:d 16:d |
add (2) r119.0<1>:d acc0.0<2;2,1>:d 16:d |
send (8) udCURR_Y0(0)<1> r92 0x4 0x2890003:ud |
send (8) udCURR_Y1(0)<1> r101 0x4 0x2890003:ud |
send (8) udCURR_Y2(0)<1> r110 0x4 0x2890003:ud |
send (8) udCURR_Y3(0)<1> r119 0x4 0x2890003:ud |
//Module Name : DN_UV_Noise_Detection_UV |
//Author : Tatiya, Rupesh |
//Description : Performs noise detection on 16x16 U and 16x16 V each. |
//Module Name : DN_UV_Move_CURBE_Inline_UV.asm |
//Author : Tatiya, Rupesh |
//Mov CURBE data to another space - so that it can be used as Temp Space --> r1 - r6 |
mov (4) r54.28<1>:ub r2.28<4;4,1>:ub //Dest. YUY2 offset |
mov (2) r54.5<1>:ud r4.0<4;2,2>:ud //Src YUY2 offset and Origin offset |
mov (4) r55.28<1>:ub r1.0<4;4,1>:ub |
mov (8) r61.20<1>:ub r1.4<8;8,1>:ub |
mov (4) r61.28<1>:ub r1.12<4;4,1>:ub |
//Move Inline Data to another space - so that it can be used as Temp Space --> r7 |
mov (4) r62.10<1>:w r7.0<4;4,1>:w |
mov (4) r63.10<1>:w r7.4<4;4,1>:w |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
mov (1) a0.0:uw 1664:uw |
mov (1) a0.1:uw 1816:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 1792:uw |
mov (1) a0.1:uw 1820:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 1920:uw |
mov (1) a0.1:uw 1848:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2048:uw |
mov (1) a0.1:uw 1852:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
mov (1) a0.0:uw 2304:uw |
mov (1) a0.1:uw 1880:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2432:uw |
mov (1) a0.1:uw 1884:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2560:uw |
mov (1) a0.1:uw 1912:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module Name : DN_UV_Noise_Detection_Set_Top_Region_N |
//Author : Tatiya, Rupesh |
//Description : Sets sub-region region N from Top region. |
//TODO - remove one instruction here using arithmatic. -rT |
mov (1) a0.0:uw 2688:uw |
mov (1) a0.1:uw 1916:uw |
add (1) r7.7<1>:d ip:ud 32:d { NoCompact } |
jmpi (1) DN_UV_NOISE_DETECTION_UV { NoCompact } |
//Module : DN_UV_Noise_Reduction_UV |
//Author : Tatiya, Rupesh |
//Description : Performs Noise Reduction on 16x16 U and 16x16 V. |
//Tasks : 1. Update weight history |
// 2. Find if it block is motion block |
// 3. Compute Denoised Pixel. |
//History is 1+1 byte every 4x4 U and 4x4 V. |
cmp.l.f0.0 (16) null<1>:w ubHIST_UV(0,0)<16;16,1> r61.20<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w ubHIST_UV(0,0)<16;16,1> r61.22<0;2,1>:ub |
mov (16) uwCURBE_TEMP(0)<1> 0:w |
mov (16) uwCURBE_TEMP(1)<1> 0:w |
//Compute diff betn curr and prev. - First 16 lines |
// 8 lines here |
add (16) wDIFF_TEMPORAL(0)<1> ubCURR_UV(2,2)<16;16,1> -ubPREV_UV(0,0)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(1)<1> ubCURR_UV(3,2)<16;16,1> -ubPREV_UV(0,16)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(2)<1> ubCURR_UV(4,2)<16;16,1> -ubPREV_UV(0,32)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(3)<1> ubCURR_UV(5,2)<16;16,1> -ubPREV_UV(0,48)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(4)<1> ubCURR_UV(6,2)<16;16,1> -ubPREV_UV(0,64)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(5)<1> ubCURR_UV(7,2)<16;16,1> -ubPREV_UV(0,80)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(6)<1> ubCURR_UV(8,2)<16;16,1> -ubPREV_UV(0,96)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(7)<1> ubCURR_UV(9,2)<16;16,1> -ubPREV_UV(0,112)<16;16,1> //Diff UV interleaved |
//Update WT HIST |
(-f0.0) shr (16) uwCURBE_TEMP(0)<1> ubHIST_UV(0,0)<16;16,1> 1:w |
(f1.0) add (16) uwCURBE_TEMP(2)<1> ubHIST_UV(0,0)<16;16,1> r61.24<0;2,1>:ub |
(f0.0) mov (16) uwCURBE_TEMP(2)<1> r61.20<0;2,1>:ub |
(-f0.0.anyv) mov (16) uwCURBE_TEMP(2)<1> ubHIST_UV(0,0)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w ubHIST_UV(0,16)<16;16,1> r61.20<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w ubHIST_UV(0,16)<16;16,1> r61.22<0;2,1>:ub |
//Compute diff betn curr and prev. - First 16 lines |
// 8 more lines here |
add (16) wDIFF_TEMPORAL(8)<1> ubCURR_UV(10,2)<16;16,1> -ubPREV_UV(0,128)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(9)<1> ubCURR_UV(11,2)<16;16,1> -ubPREV_UV(0,144)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(10)<1> ubCURR_UV(12,2)<16;16,1> -ubPREV_UV(0,160)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(11)<1> ubCURR_UV(13,2)<16;16,1> -ubPREV_UV(0,176)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(12)<1> ubCURR_UV(14,2)<16;16,1> -ubPREV_UV(0,192)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(13)<1> ubCURR_UV(15,2)<16;16,1> -ubPREV_UV(0,208)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(14)<1> ubCURR_UV(16,2)<16;16,1> -ubPREV_UV(0,224)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(15)<1> ubCURR_UV(17,2)<16;16,1> -ubPREV_UV(0,240)<16;16,1> //Diff UV interleaved |
(-f0.0) shr (16) uwCURBE_TEMP(1)<1> ubHIST_UV(0,16)<16;16,1> 1:w |
(f1.0) add (16) uwCURBE_TEMP(3)<1> ubHIST_UV(0,16)<16;16,1> r61.24<0;2,1>:ub |
(f0.0) mov (16) uwCURBE_TEMP(3)<1> r61.20<0;2,1>:ub |
(-f0.0.anyv) mov(16) uwCURBE_TEMP(3)<1> ubHIST_UV(0,16)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(0)<16;16,1> (abs)wDIFF_TEMPORAL(1)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(2)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(3)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(4)<16;16,1> (abs)wDIFF_TEMPORAL(5)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(6)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(7)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(8)<16;16,1> (abs)wDIFF_TEMPORAL(9)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(10)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(2)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(11)<16;16,1> |
//16x16 to 16x4 - First 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(12)<16;16,1> (abs)wDIFF_TEMPORAL(13)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(14)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(3)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(15)<16;16,1> |
//Compute diff betn curr and prev. - Second 16 lines |
//13 lines. |
add (16) wDIFF_TEMPORAL(16)<1> ubCURR_UV(22,2)<16;16,1> -ubPREV_UV(8,0)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(17)<1> ubCURR_UV(23,2)<16;16,1> -ubPREV_UV(8,16)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(18)<1> ubCURR_UV(24,2)<16;16,1> -ubPREV_UV(8,32)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(19)<1> ubCURR_UV(25,2)<16;16,1> -ubPREV_UV(8,48)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(20)<1> ubCURR_UV(26,2)<16;16,1> -ubPREV_UV(8,64)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(21)<1> ubCURR_UV(27,2)<16;16,1> -ubPREV_UV(8,80)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(22)<1> ubCURR_UV(28,2)<16;16,1> -ubPREV_UV(8,96)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(23)<1> ubCURR_UV(29,2)<16;16,1> -ubPREV_UV(8,112)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(24)<1> ubCURR_UV(30,2)<16;16,1> -ubPREV_UV(8,128)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(25)<1> ubCURR_UV(31,2)<16;16,1> -ubPREV_UV(8,144)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(26)<1> ubCURR_UV(32,2)<16;16,1> -ubPREV_UV(8,160)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(27)<1> ubCURR_UV(33,2)<16;16,1> -ubPREV_UV(8,176)<16;16,1> //Diff UV interleaved |
add (16) wDIFF_TEMPORAL(28)<1> ubCURR_UV(34,2)<16;16,1> -ubPREV_UV(8,192)<16;16,1> //Diff UV interleaved |
//3 more lines |
add (16) wCURBE_TEMP(4)<1> ubCURR_UV(35,2)<16;16,1> -ubPREV_UV(8,208)<16;16,1> //Diff UV interleaved |
add (16) wCURBE_TEMP(5)<1> ubCURR_UV(36,2)<16;16,1> -ubPREV_UV(8,224)<16;16,1> //Diff UV interleaved |
add (16) wCURBE_TEMP(6)<1> ubCURR_UV(37,2)<16;16,1> -ubPREV_UV(8,240)<16;16,1> //Diff UV interleaved |
//16x4 to 8x4 - First 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> uwDIFF_TEMPORAL_SUM4x4(2,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(2,2)<4;2,1> |
//8x4 to 4x4 - First 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4_FINAL(0)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> { AccWrEn } |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(16)<16;16,1> (abs)wDIFF_TEMPORAL(17)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(18)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(19)<16;16,1> |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(20)<16;16,1> (abs)wDIFF_TEMPORAL(21)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(22)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(23)<16;16,1> |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(24)<16;16,1> (abs)wDIFF_TEMPORAL(25)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(26)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(2)<1> acc0.0<16;16,1>:uw (abs)wDIFF_TEMPORAL(27)<16;16,1> |
//16x16 to 16x4 - Second 16 lines |
add (16) acc0.0<1>:uw (abs)wDIFF_TEMPORAL(28)<16;16,1> (abs)wCURBE_TEMP(4)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wCURBE_TEMP(5)<16;16,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(3)<1> acc0.0<16;16,1>:uw (abs)wCURBE_TEMP(6)<16;16,1> |
//Find if block is motion block - First 16 lines |
cmp.g.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_FINAL(0)<16;16,1> r61.26<0;2,1>:ub |
//Move TEMPORAL_SUM4x4 for SIMD16 use later. |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,0)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,2)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,4)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,6)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,8)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,10)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,12)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(0,14)<0;2,1> |
//Pick Appropriate Weight History Based on motion. - First 16 lines |
(-f0.0) mov (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(2)<16;16,1> |
//Actual DN - First 16 lines |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(0)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(0)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(2,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(2,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(2,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,0)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,8)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(0)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(0)<1> ubCURR_UV(2,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(0)<1> wDIFF_TEMPORAL(0)<16;16,1> ubCURR_UV(2,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(1)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(1)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(3,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(3,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(3,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,16)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,24)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(1)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(1)<1> ubCURR_UV(3,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(1)<1> wDIFF_TEMPORAL(1)<16;16,1> ubCURR_UV(3,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(2)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(2)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(4,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(4,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(4,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,32)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,40)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(2)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(2)<1> ubCURR_UV(4,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(2)<1> wDIFF_TEMPORAL(2)<16;16,1> ubCURR_UV(4,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(3)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(3)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(5,2)<8;8,1> -uwCURBE_TEMP(0,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(5,10)<8;8,1> -uwCURBE_TEMP(0,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(5,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,48)<8;8,1> uwCURBE_TEMP(0,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,56)<8;8,1> uwCURBE_TEMP(0,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(3)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(3)<1> ubCURR_UV(5,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(3)<1> wDIFF_TEMPORAL(3)<16;16,1> ubCURR_UV(5,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(4)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(4)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(6,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(6,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(6,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,64)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,72)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(4)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(4)<1> ubCURR_UV(6,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(4)<1> wDIFF_TEMPORAL(4)<16;16,1> ubCURR_UV(6,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(5)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(5)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(7,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(7,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(7,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,80)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,88)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(5)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(5)<1> ubCURR_UV(7,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(5)<1> wDIFF_TEMPORAL(5)<16;16,1> ubCURR_UV(7,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(6)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(6)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(8,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(8,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(8,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,96)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,104)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(6)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(6)<1> ubCURR_UV(8,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(6)<1> wDIFF_TEMPORAL(6)<16;16,1> ubCURR_UV(8,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(7)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(7)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(9,2)<8;8,1> -uwCURBE_TEMP(0,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(9,10)<8;8,1> -uwCURBE_TEMP(0,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(9,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,112)<8;8,1> uwCURBE_TEMP(0,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,120)<8;8,1> uwCURBE_TEMP(0,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(7)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(7)<1> ubCURR_UV(9,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(7)<1> wDIFF_TEMPORAL(7)<16;16,1> ubCURR_UV(9,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(8)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(8)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(10,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(10,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(10,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,128)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,136)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(8)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(8)<1> ubCURR_UV(10,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(8)<1> wDIFF_TEMPORAL(8)<16;16,1> ubCURR_UV(10,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(9)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(9)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(11,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(11,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(11,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,144)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,152)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(9)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(9)<1> ubCURR_UV(11,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(9)<1> wDIFF_TEMPORAL(9)<16;16,1> ubCURR_UV(11,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(10)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(10)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(12,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(12,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(12,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,160)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,168)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(10)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(10)<1> ubCURR_UV(12,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(10)<1> wDIFF_TEMPORAL(10)<16;16,1> ubCURR_UV(12,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(11)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(11)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(13,2)<8;8,1> -uwCURBE_TEMP(0,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(13,10)<8;8,1> -uwCURBE_TEMP(0,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(13,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,176)<8;8,1> uwCURBE_TEMP(0,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,184)<8;8,1> uwCURBE_TEMP(0,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(11)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(11)<1> ubCURR_UV(13,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(11)<1> wDIFF_TEMPORAL(11)<16;16,1> ubCURR_UV(13,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(12)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(12)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(14,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(14,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(14,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,192)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,200)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(12)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(12)<1> ubCURR_UV(14,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(12)<1> wDIFF_TEMPORAL(12)<16;16,1> ubCURR_UV(14,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(13)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(13)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(15,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(15,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(15,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,208)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,216)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(13)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(13)<1> ubCURR_UV(15,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(13)<1> wDIFF_TEMPORAL(13)<16;16,1> ubCURR_UV(15,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(14)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(14)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(16,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(16,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(16,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,224)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,232)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(14)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(14)<1> ubCURR_UV(16,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(14)<1> wDIFF_TEMPORAL(14)<16;16,1> ubCURR_UV(16,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(15)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(15)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(17,2)<8;8,1> -uwCURBE_TEMP(0,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(17,10)<8;8,1> -uwCURBE_TEMP(0,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(17,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(0,240)<8;8,1> uwCURBE_TEMP(0,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(0,248)<8;8,1> uwCURBE_TEMP(0,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(15)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(15)<1> ubCURR_UV(17,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(15)<1> wDIFF_TEMPORAL(15)<16;16,1> ubCURR_UV(17,2)<16;16,1> |
//16x4 to 8x4 - Second 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4(0)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> |
add (16) uwDIFF_TEMPORAL_SUM4x4(1)<1> uwDIFF_TEMPORAL_SUM4x4(2,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(2,2)<4;2,1> |
//8x4 to 4x4 - Second 16 lines |
add (16) uwDIFF_TEMPORAL_SUM4x4_FINAL(1)<1> uwDIFF_TEMPORAL_SUM4x4(0,0)<4;2,1> uwDIFF_TEMPORAL_SUM4x4(0,2)<4;2,1> { AccWrEn } |
//Find if block is motion block - Second 16 lines |
cmp.g.f1.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_FINAL(1)<16;16,1> r61.26<0;2,1>:ub |
//Move TEMPORAL_SUM4x4 for SIMD16 use later. |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,0)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,2)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,4)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,6)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,8)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,10)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,0)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,12)<0;2,1> |
mov (8) uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0,8)<1> uwDIFF_TEMPORAL_SUM4x4_FINAL(1,14)<0;2,1> |
//Pick Appropriate Weight History Based on motion. - Second 16 lines |
(-f1.0) mov (16) uwCURBE_TEMP(1)<1> uwCURBE_TEMP(3)<16;16,1> |
//Actual DN - Second 16 lines |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(16)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(16)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(22,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(22,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(22,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,0)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,8)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(16)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(16)<1> ubCURR_UV(22,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(16)<1> wDIFF_TEMPORAL(16)<16;16,1> ubCURR_UV(22,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(17)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(17)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(23,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(23,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(23,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,16)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,24)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(17)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(17)<1> ubCURR_UV(23,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(17)<1> wDIFF_TEMPORAL(17)<16;16,1> ubCURR_UV(23,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(18)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(18)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(24,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(24,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(24,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,32)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,40)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(18)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(18)<1> ubCURR_UV(24,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(18)<1> wDIFF_TEMPORAL(18)<16;16,1> ubCURR_UV(24,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(19)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(19)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(25,2)<8;8,1> -uwCURBE_TEMP(1,0)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(25,10)<8;8,1> -uwCURBE_TEMP(1,2)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(25,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,48)<8;8,1> uwCURBE_TEMP(1,0)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,56)<8;8,1> uwCURBE_TEMP(1,2)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(19)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(19)<1> ubCURR_UV(25,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_0(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(19)<1> wDIFF_TEMPORAL(19)<16;16,1> ubCURR_UV(25,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(20)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(20)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(26,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(26,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(26,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,64)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,72)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(20)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(20)<1> ubCURR_UV(26,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(20)<1> wDIFF_TEMPORAL(20)<16;16,1> ubCURR_UV(26,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(21)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(21)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(27,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(27,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(27,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,80)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,88)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(21)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(21)<1> ubCURR_UV(27,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(21)<1> wDIFF_TEMPORAL(21)<16;16,1> ubCURR_UV(27,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(22)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(22)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(28,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(28,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(28,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,96)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,104)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(22)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(22)<1> ubCURR_UV(28,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(22)<1> wDIFF_TEMPORAL(22)<16;16,1> ubCURR_UV(28,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(23)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(23)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(29,2)<8;8,1> -uwCURBE_TEMP(1,4)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(29,10)<8;8,1> -uwCURBE_TEMP(1,6)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(29,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,112)<8;8,1> uwCURBE_TEMP(1,4)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,120)<8;8,1> uwCURBE_TEMP(1,6)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(23)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(23)<1> ubCURR_UV(29,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_1(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(23)<1> wDIFF_TEMPORAL(23)<16;16,1> ubCURR_UV(29,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(24)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(24)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(30,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(30,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(30,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,128)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,136)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(24)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(24)<1> ubCURR_UV(30,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(24)<1> wDIFF_TEMPORAL(24)<16;16,1> ubCURR_UV(30,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(25)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(25)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(31,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(31,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(31,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,144)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,152)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(25)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(25)<1> ubCURR_UV(31,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(25)<1> wDIFF_TEMPORAL(25)<16;16,1> ubCURR_UV(31,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(26)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(26)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(32,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(32,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(32,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,160)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,168)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(26)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(26)<1> ubCURR_UV(32,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(26)<1> wDIFF_TEMPORAL(26)<16;16,1> ubCURR_UV(32,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(27)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(27)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(33,2)<8;8,1> -uwCURBE_TEMP(1,8)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(33,10)<8;8,1> -uwCURBE_TEMP(1,10)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(33,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,176)<8;8,1> uwCURBE_TEMP(1,8)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,184)<8;8,1> uwCURBE_TEMP(1,10)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(27)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(27)<1> ubCURR_UV(33,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_2(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(27)<1> wDIFF_TEMPORAL(27)<16;16,1> ubCURR_UV(33,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(28)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wDIFF_TEMPORAL(28)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(34,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(34,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(34,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,192)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,200)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wDIFF_TEMPORAL(28)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wDIFF_TEMPORAL(28)<1> ubCURR_UV(34,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wDIFF_TEMPORAL(28)<1> wDIFF_TEMPORAL(28)<16;16,1> ubCURR_UV(34,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wCURBE_TEMP(4)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wCURBE_TEMP(4)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(35,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(35,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(35,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,208)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,216)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wCURBE_TEMP(4)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wCURBE_TEMP(4)<1> ubCURR_UV(35,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wCURBE_TEMP(4)<1> wCURBE_TEMP(4)<16;16,1> ubCURR_UV(35,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wCURBE_TEMP(5)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wCURBE_TEMP(5)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(36,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(36,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(36,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,224)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,232)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wCURBE_TEMP(5)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wCURBE_TEMP(5)<1> ubCURR_UV(36,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wCURBE_TEMP(5)<1> wCURBE_TEMP(5)<16;16,1> ubCURR_UV(36,2)<16;16,1> |
cmp.l.f0.0 (16) null<1>:w (abs)wCURBE_TEMP(6)<16;16,1> r61.28<0;2,1>:ub |
cmp.l.f1.0 (16) null<1>:w (abs)wCURBE_TEMP(6)<16;16,1> r61.30<0;2,1>:ub |
mul (8) acc0.0<1>:w ubCURR_UV(37,2)<8;8,1> -uwCURBE_TEMP(1,12)<0;2,1> |
mul (8) acc0.8<1>:w ubCURR_UV(37,10)<8;8,1> -uwCURBE_TEMP(1,14)<0;2,1> |
mac (16) acc0<1>:w ubCURR_UV(37,2)<16;16,1> 256:w |
mac (8) acc0.0<1>:w ubPREV_UV(8,240)<8;8,1> uwCURBE_TEMP(1,12)<0;2,1> |
mac (8) acc0.8<1>:w ubPREV_UV(8,248)<8;8,1> uwCURBE_TEMP(1,14)<0;2,1> |
add (16) acc0<1>:w acc0<16;16,1>:w 128:w |
(f0.0) shr (16) wCURBE_TEMP(6)<1> acc0<16;16,1>:w 8:w |
(-f0.0) mov (16) wCURBE_TEMP(6)<1> ubCURR_UV(37,2)<16;16,1> |
cmp.le.f0.0 (16) null<1>:w uwDIFF_TEMPORAL_SUM4x4_TEMP_3(0)<16;16,1> r61.26<0;2,1>:ub |
(-f0.0.allv) avg (16) wCURBE_TEMP(6)<1> wCURBE_TEMP(6)<16;16,1> ubCURR_UV(37,2)<16;16,1> |
//Pack Weight History WORD -> BYTE |
mov (16) ubCURBE_TEMP(3,0)<1> ubCURBE_TEMP(0)<32;16,2> |
mov (16) ubCURBE_TEMP(3,16)<1> ubCURBE_TEMP(1)<32;16,2> |
//Module Name : DN_UV_Compute_BNE_UV |
//Author : Tatiya, Rupesh |
//Description : Computes minimum SOAD for each 16x4 block. |
cmp.l.f0.0 (8) null:w uwSOAD_MIN_8x4(0,12)<16;4,1> uwSOAD_MIN_8x4(2,12)<16;4,1> |
(f0.0)sel (8) uwCURBE_TEMP(1,0)<1> uwSOAD_MIN_8x4(0,12)<16;4,1> uwSOAD_MIN_8x4(2,12)<16;4,1> |
mov (8) ubCURBE_TEMP(1)<1> ubCURBE_TEMP(1)<16;8,2> |
//File Name : DN_UV_PL3_Unpack_Denoised_UV.asm |
//Author : Tatiya, Rupesh |
//Description : Upack the interleaved UV data |
//First 16 lines. |
mov (8) ubMSGPAYLOAD_U(0,0)<1> ubDIFF_TEMPORAL(0,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(0,16)<1> ubDIFF_TEMPORAL(1,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(0,0)<1> ubDIFF_TEMPORAL(0,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(0,16)<1> ubDIFF_TEMPORAL(1,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(1,0)<1> ubDIFF_TEMPORAL(2,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(1,16)<1> ubDIFF_TEMPORAL(3,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(1,0)<1> ubDIFF_TEMPORAL(2,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(1,16)<1> ubDIFF_TEMPORAL(3,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(2,0)<1> ubDIFF_TEMPORAL(4,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(2,16)<1> ubDIFF_TEMPORAL(5,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(2,0)<1> ubDIFF_TEMPORAL(4,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(2,16)<1> ubDIFF_TEMPORAL(5,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(3,0)<1> ubDIFF_TEMPORAL(6,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(3,16)<1> ubDIFF_TEMPORAL(7,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(3,0)<1> ubDIFF_TEMPORAL(6,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(3,16)<1> ubDIFF_TEMPORAL(7,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(4,0)<1> ubDIFF_TEMPORAL(8,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(4,16)<1> ubDIFF_TEMPORAL(9,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(4,0)<1> ubDIFF_TEMPORAL(8,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(4,16)<1> ubDIFF_TEMPORAL(9,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(5,0)<1> ubDIFF_TEMPORAL(10,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(5,16)<1> ubDIFF_TEMPORAL(11,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(5,0)<1> ubDIFF_TEMPORAL(10,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(5,16)<1> ubDIFF_TEMPORAL(11,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(6,0)<1> ubDIFF_TEMPORAL(12,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(6,16)<1> ubDIFF_TEMPORAL(13,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(6,0)<1> ubDIFF_TEMPORAL(12,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(6,16)<1> ubDIFF_TEMPORAL(13,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(7,0)<1> ubDIFF_TEMPORAL(14,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(7,16)<1> ubDIFF_TEMPORAL(15,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(7,0)<1> ubDIFF_TEMPORAL(14,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(7,16)<1> ubDIFF_TEMPORAL(15,2)<32;8,4> |
//Second 16 lines. |
//12 lines first |
mov (8) ubMSGPAYLOAD_U(0,8)<1> ubDIFF_TEMPORAL(16,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(0,24)<1> ubDIFF_TEMPORAL(17,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(0,8)<1> ubDIFF_TEMPORAL(16,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(0,24)<1> ubDIFF_TEMPORAL(17,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(1,8)<1> ubDIFF_TEMPORAL(18,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(1,24)<1> ubDIFF_TEMPORAL(19,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(1,8)<1> ubDIFF_TEMPORAL(18,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(1,24)<1> ubDIFF_TEMPORAL(19,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(2,8)<1> ubDIFF_TEMPORAL(20,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(2,24)<1> ubDIFF_TEMPORAL(21,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(2,8)<1> ubDIFF_TEMPORAL(20,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(2,24)<1> ubDIFF_TEMPORAL(21,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(3,8)<1> ubDIFF_TEMPORAL(22,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(3,24)<1> ubDIFF_TEMPORAL(23,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(3,8)<1> ubDIFF_TEMPORAL(22,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(3,24)<1> ubDIFF_TEMPORAL(23,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(4,8)<1> ubDIFF_TEMPORAL(24,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(4,24)<1> ubDIFF_TEMPORAL(25,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(4,8)<1> ubDIFF_TEMPORAL(24,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(4,24)<1> ubDIFF_TEMPORAL(25,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(5,8)<1> ubDIFF_TEMPORAL(26,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(5,24)<1> ubDIFF_TEMPORAL(27,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(5,8)<1> ubDIFF_TEMPORAL(26,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(5,24)<1> ubDIFF_TEMPORAL(27,2)<32;8,4> |
//3 lines next |
mov (8) ubMSGPAYLOAD_U(6,8)<1> ubDIFF_TEMPORAL(28,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(6,24)<1> ubCURBE_TEMP(4,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(6,8)<1> ubDIFF_TEMPORAL(28,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(6,24)<1> ubCURBE_TEMP(4,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(7,8)<1> ubCURBE_TEMP(5,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_U(7,24)<1> ubCURBE_TEMP(6,0)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(7,8)<1> ubCURBE_TEMP(5,2)<32;8,4> |
mov (8) ubMSGPAYLOAD_V(7,24)<1> ubCURBE_TEMP(6,2)<32;8,4> |
//Module Name : DN_UV_420_Save_Curr_Frame_Y |
//Author : Tatiya, Rupesh |
//Description : Save Curr Frame Y data for 420 Input |
//Module Name : DN_UV_Load_Curr_Frame_Y |
//Author : Tatiya, Rupesh |
//Description : Saves Y or YUY2 of Current frame. |
mov (8) acc0.0<1>:ud r0.0<8;8,1>:ud |
mov (2) acc0.0<1>:d r62.10<2;2,1>:w |
mov (1) acc0.2<1>:d 0xF000F:ud |
mov (8) r92.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r101.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r110.0<1>:ud acc0.0<8;8,1>:ud |
mov (8) r119.0<1>:ud acc0.0<8;8,1>:ud |
add (1) r101.1<1>:d acc0.1<0;1,0>:d 16:d |
add (1) r110.0<1>:d acc0.0<0;1,0>:d 16:d |
add (2) r119.0<1>:d acc0.0<2;2,1>:d 16:d |
send (8) null<1>:d r92 0x5 0x120A8018:ud |
send (8) null<1>:d r101 0x5 0x120A8018:ud |
send (8) null<1>:d r110 0x5 0x120A8018:ud |
send (8) null<1>:d r119 0x5 0x120A8018:ud |
//TODO - See if History saving can be combined with Curr Frame Save. - rT |
//Module Name : DN_UV_Save_Hist_UV |
//Author : Tatiya, Rupesh |
//Description : Saves DN history for UV data. |
mov (8) r3.0<1>:ud r0.0<8;8,1>:ud |
mov (2) r3.0<1>:d r62.12<2;2,1>:w |
mov (1) r3.2<1>:d 0x30007:ud |
send (8) null<1>:d r3 0x5 0x40A8021:ud |
//Module Name : DN_UV_Save_BNE_UV |
//Author : Tatiya, Rupesh |
//Description : Saves BNE values for 16x16 U and 16x16 V. |
mov (8) r1.0<1>:ud r0.0<8;8,1>:ud |
mov (2) r1.0<1>:d r63.12<2;2,1>:w |
mov (1) r1.2<1>:d 0x10003:ud |
send (8) null<1>:d r1 0x5 0x40A8023:ud |
//File Name : DN_UV_PL3_Save_Curr_Frame_UV.asm |
//Author : Tatiya, Rupesh |
//Description : Save U and V data for PL3 surface |
//Module name : DN_UV_Save_Curr_Frame_UV |
//Author : Tatiya, Rupesh |
//Description : Saves Current Frame (UV only). |
mov (8) r74<1>:ud r0.0<8;8,1>:ud |
mov (8) r83<1>:ud r0.0<8;8,1>:ud |
shr (2) r74.0<1>:d r62.10<2;2,1>:w 1:w |
mov (1) r74.2<1>:d 0xF000F:ud |
mov (8) r83.0<1>:ud r74.0<8;8,1>:ud |
send (8) null<1>:d r74 0x5 0x120A8019:ud |
send (8) null<1>:d r83 0x5 0x120A801A:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
//All sub-routines here |
// Module Name : Noise_Detection |
// Author : Tatiya, Rupesh |
// Description : Performs noise detection on 32 pixels of U (8x4) and 32 pixels of V (8x4). |
DN_UV_NOISE_DETECTION_UV: |
// Find Field Block Median |
// |
// Purpose : Find the median value of the nine pixels in the same field |
// which are centered at current pixel. |
// |
// Works on 9 pixels centered at the current pixel |
// NOTE: pixels are within same field. |
// v4 - current pixel |
// |
// v2 v1 v0 |
// * * * <--- Different field - not used |
// v5 v4 v3 |
// * * * <--- Different field - not used |
// v8 v7 v6 |
// Algorithm to find median modifies the data. |
// Copy the data needed to calculate median so the original source data stays intact. |
// |
//TODO - Change Interleaved implementation to separated one if - , does not work on predication. - rT |
//Delete Later - rT |
//mov (1) pCUR_UV:uw 52*32:uw |
// v0 |
mov (16) ubMEDIAN_TEMP(0,0)<1> r[a0.0,0]<16;16,1> |
// v0 |
mov (16) ubMEDIAN_TEMP(0,16)<1> r[a0.0,32]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(1,0)<1> r[a0.0,2]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(1,16)<1> r[a0.0,34]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(2,0)<1> r[a0.0,4]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(2,16)<1> r[a0.0,36]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(3,0)<1> r[a0.0,64]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(3,16)<1> r[a0.0,96]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(4,0)<1> r[a0.0,66]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(4,16)<1> r[a0.0,98]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(5,0)<1> r[a0.0,68]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(5,16)<1> r[a0.0,100]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(6,0)<1> r[a0.0,128]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(6,16)<1> r[a0.0,160]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(7,0)<1> r[a0.0,130]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(7,16)<1> r[a0.0,162]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(8,0)<1> r[a0.0,132]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(8,16)<1> r[a0.0,164]<16;16,1> |
//TODO - Optimize one instruction here. |
add (1) a0.0:uw a0.0<0;1,0>:uw 64:uw |
// v0 |
mov (16) ubMEDIAN_TEMP(9,0)<1> r[a0.0,0]<16;16,1> |
// v0 |
mov (16) ubMEDIAN_TEMP(9,16)<1> r[a0.0,32]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(10,0)<1> r[a0.0,2]<16;16,1> |
// v1 |
mov (16) ubMEDIAN_TEMP(10,16)<1> r[a0.0,34]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(11,0)<1> r[a0.0,4]<16;16,1> |
// v2 |
mov (16) ubMEDIAN_TEMP(11,16)<1> r[a0.0,36]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(12,0)<1> r[a0.0,64]<16;16,1> |
// v3 |
mov (16) ubMEDIAN_TEMP(12,16)<1> r[a0.0,96]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(13,0)<1> r[a0.0,66]<16;16,1> |
// v4 |
mov (16) ubMEDIAN_TEMP(13,16)<1> r[a0.0,98]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(14,0)<1> r[a0.0,68]<16;16,1> |
// v5 |
mov (16) ubMEDIAN_TEMP(14,16)<1> r[a0.0,100]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(15,0)<1> r[a0.0,128]<16;16,1> |
// v6 |
mov (16) ubMEDIAN_TEMP(15,16)<1> r[a0.0,160]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(16,0)<1> r[a0.0,130]<16;16,1> |
// v7 |
mov (16) ubMEDIAN_TEMP(16,16)<1> r[a0.0,162]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(17,0)<1> r[a0.0,132]<16;16,1> |
// v8 |
mov (16) ubMEDIAN_TEMP(17,16)<1> r[a0.0,164]<16;16,1> |
//TODO - Optimize one instruction here. |
add (1) a0.0:uw a0.0<0;1,0>:uw 64:uw |
// MedianSwap |
// |
// MedianSwap(inOutLeft, inOutRight) |
// { |
// if (inOutLeft > inOutRight) |
// { |
// temp = inOutLeft |
// inOutLeft = inOutRight |
// inOutRight = temp |
// } |
// } |
// MedianSwap(v1, v2) - U |
// MedianSwap(v4, v5) - U |
// MedianSwap(v1, v2) - V |
// MedianSwap(v4, v5) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(1,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(5,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(1,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(5,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(1,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(1,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(1,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(5,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(1,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(5,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(5,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(2,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(5,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v1) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v1) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(7,0)<32;16,2> ubMEDIAN_TEMP(8,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(0,0)<32;16,2> ubMEDIAN_TEMP(1,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(7,1)<32;16,2> ubMEDIAN_TEMP(8,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(0,1)<32;16,2> ubMEDIAN_TEMP(1,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(7,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(0,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(0,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(7,0)<2> ubMEDIAN_TEMP(8,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(0,0)<2> ubMEDIAN_TEMP(1,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(7,1)<2> ubMEDIAN_TEMP(8,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(0,1)<2> ubMEDIAN_TEMP(1,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(8,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(1,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(8,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(1,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v3, v4) - U |
// MedianSwap(v6, v7) - U |
// MedianSwap(v3, v4) - V |
// MedianSwap(v6, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(3,0)<32;16,2> ubMEDIAN_TEMP(4,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(6,0)<32;16,2> ubMEDIAN_TEMP(7,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(3,1)<32;16,2> ubMEDIAN_TEMP(4,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(6,1)<32;16,2> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(3,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(6,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(3,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(6,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(3,0)<2> ubMEDIAN_TEMP(4,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(6,0)<2> ubMEDIAN_TEMP(7,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(3,1)<2> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(6,1)<2> ubMEDIAN_TEMP(7,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(7,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(4,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(7,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v1, v2) - U |
// MedianSwap(v4, v5) - U |
// MedianSwap(v1, v2) - V |
// MedianSwap(v4, v5) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(1,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(5,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(1,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(5,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(1,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(1,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(1,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(5,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(1,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(5,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(5,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(2,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(5,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v3) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v3) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(7,0)<32;16,2> ubMEDIAN_TEMP(8,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(0,0)<32;16,2> ubMEDIAN_TEMP(3,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(7,1)<32;16,2> ubMEDIAN_TEMP(8,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(0,1)<32;16,2> ubMEDIAN_TEMP(3,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(7,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(0,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(0,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(7,0)<2> ubMEDIAN_TEMP(8,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(0,0)<2> ubMEDIAN_TEMP(3,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(7,1)<2> ubMEDIAN_TEMP(8,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(0,1)<2> ubMEDIAN_TEMP(3,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(8,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(3,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(8,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(3,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v0 to v6 to find the minimum. |
// Store the minimum for future use. |
//TODO - Find if MIN is needed. |
//cmp.l.f0.0 (16) null:w ubMEDIAN_TEMP(%1+0,0)<32;16,2> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//cmp.l.f1.0 (16) null:w ubMEDIAN_TEMP(%1+0,1)<32;16,2> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
// MedianSwap(v5, v8) - U |
// MedianSwap(v4, v7) - U |
// MedianSwap(v5, v8) - V |
// MedianSwap(v4, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(5,0)<32;16,2> ubMEDIAN_TEMP(8,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(7,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(5,1)<32;16,2> ubMEDIAN_TEMP(8,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(7,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(5,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(5,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(5,0)<2> ubMEDIAN_TEMP(8,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(7,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(5,1)<2> ubMEDIAN_TEMP(8,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(7,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(8,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(7,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(8,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(7,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v2 to v8 to find the maximum. |
// Store the maximum for future use. |
//TODO - Find if MAX is needed. |
// cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(%1+2,0)<32;16,2> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
// cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(%1+2,1)<32;16,2> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
// MedianSwap(v3, v6) - U |
// MedianSwap(v1, v4) - U |
// MedianSwap(v3, v6) - V |
// MedianSwap(v1, v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(3,0)<32;16,2> ubMEDIAN_TEMP(6,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(1,0)<32;16,2> ubMEDIAN_TEMP(4,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(3,1)<32;16,2> ubMEDIAN_TEMP(6,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(1,1)<32;16,2> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(6,0)<2> ubMEDIAN_TEMP(3,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(1,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(6,1)<2> ubMEDIAN_TEMP(3,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(1,1)<32;16,2> |
// MedianSwap(v2,v5) - U |
// MedianSwap(v4,v7) - U |
// MedianSwap(v2,v5) - V |
// MedianSwap(v4,v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(2,0)<32;16,2> ubMEDIAN_TEMP(5,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(7,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(2,1)<32;16,2> ubMEDIAN_TEMP(5,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(7,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubMEDIAN_TEMP(5,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(7,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(2,1)<2> ubMEDIAN_TEMP(5,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(7,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(4,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(2,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(2,1)<2> ubTEMP1(0,16)<16;16,1> |
// MedianSwap(v6,v4) - U |
// MedianSwap(v6,v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(6,0)<32;16,2> ubMEDIAN_TEMP(4,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(6,1)<32;16,2> ubMEDIAN_TEMP(4,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(6,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(6,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(4,0)<32;16,2> ubMEDIAN_TEMP(2,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(4,1)<32;16,2> ubMEDIAN_TEMP(2,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(4,0)<2> ubMEDIAN_TEMP(2,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(4,1)<2> ubMEDIAN_TEMP(2,1)<32;16,2> |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(10,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(14,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(10,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(14,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(10,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(10,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(10,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(14,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(10,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(14,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(14,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(11,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(14,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v1) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v1) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(16,0)<32;16,2> ubMEDIAN_TEMP(17,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(9,0)<32;16,2> ubMEDIAN_TEMP(10,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(16,1)<32;16,2> ubMEDIAN_TEMP(17,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(9,1)<32;16,2> ubMEDIAN_TEMP(10,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(16,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(9,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(9,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(16,0)<2> ubMEDIAN_TEMP(17,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(9,0)<2> ubMEDIAN_TEMP(10,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(16,1)<2> ubMEDIAN_TEMP(17,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(9,1)<2> ubMEDIAN_TEMP(10,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(17,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(10,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(17,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(10,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v3, v4) - U |
// MedianSwap(v6, v7) - U |
// MedianSwap(v3, v4) - V |
// MedianSwap(v6, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(12,0)<32;16,2> ubMEDIAN_TEMP(13,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(15,0)<32;16,2> ubMEDIAN_TEMP(16,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(12,1)<32;16,2> ubMEDIAN_TEMP(13,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(15,1)<32;16,2> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(12,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(15,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(12,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(15,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(12,0)<2> ubMEDIAN_TEMP(13,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(15,0)<2> ubMEDIAN_TEMP(16,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(12,1)<2> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(15,1)<2> ubMEDIAN_TEMP(16,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(16,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(13,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(16,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v1, v2) - U |
// MedianSwap(v4, v5) - U |
// MedianSwap(v1, v2) - V |
// MedianSwap(v4, v5) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(10,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(14,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(10,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(14,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(10,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(10,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(10,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(14,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(10,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(14,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(14,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(11,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(14,1)<2> ubTEMP1(1,16)<16;16,1> |
// MedianSwap(v7, v8) - U |
// MedianSwap(v0, v3) - U |
// MedianSwap(v7, v8) - V |
// MedianSwap(v0, v3) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(16,0)<32;16,2> ubMEDIAN_TEMP(17,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(9,0)<32;16,2> ubMEDIAN_TEMP(12,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(16,1)<32;16,2> ubMEDIAN_TEMP(17,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(9,1)<32;16,2> ubMEDIAN_TEMP(12,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(16,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(9,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(9,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(16,0)<2> ubMEDIAN_TEMP(17,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(9,0)<2> ubMEDIAN_TEMP(12,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(16,1)<2> ubMEDIAN_TEMP(17,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(9,1)<2> ubMEDIAN_TEMP(12,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(17,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(12,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(17,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(12,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v0 to v6 to find the minimum. |
// Store the minimum for future use. |
//TODO - Find if MIN is needed. |
//cmp.l.f0.0 (16) null:w ubMEDIAN_TEMP(%1+0,0)<32;16,2> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//cmp.l.f1.0 (16) null:w ubMEDIAN_TEMP(%1+0,1)<32;16,2> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+0,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MIN(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MIN(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+6,1)<32;16,2> |
// MedianSwap(v5, v8) - U |
// MedianSwap(v4, v7) - U |
// MedianSwap(v5, v8) - V |
// MedianSwap(v4, v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(14,0)<32;16,2> ubMEDIAN_TEMP(17,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(16,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(14,1)<32;16,2> ubMEDIAN_TEMP(17,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(16,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(14,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(1,0)<1> ubMEDIAN_TEMP(14,1)<32;16,2> |
mov (16) ubTEMP1(1,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(14,0)<2> ubMEDIAN_TEMP(17,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(16,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(14,1)<2> ubMEDIAN_TEMP(17,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(16,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(17,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(16,0)<2> ubTEMP1(0,16)<16;16,1> |
(f1.0) mov (16) ubMEDIAN_TEMP(17,1)<2> ubTEMP1(1,0)<16;16,1> |
(f1.1) mov (16) ubMEDIAN_TEMP(16,1)<2> ubTEMP1(1,16)<16;16,1> |
// NOTE: |
// Compare v2 to v8 to find the maximum. |
// Store the maximum for future use. |
//TODO - Find if MAX is needed. |
// cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(%1+2,0)<32;16,2> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
// cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(%1+2,1)<32;16,2> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
//(f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,0)<32;16,2> |
//(f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+2,1)<32;16,2> |
//(-f0.0) mov (16) ubCURR_MAX(0,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,0)<32;16,2> |
//(-f1.0) mov (16) ubCURR_MAX(1,%2*16+0)<1> ubMEDIAN_TEMP(%1+8,1)<32;16,2> |
// MedianSwap(v3, v6) - U |
// MedianSwap(v1, v4) - U |
// MedianSwap(v3, v6) - V |
// MedianSwap(v1, v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(12,0)<32;16,2> ubMEDIAN_TEMP(15,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(10,0)<32;16,2> ubMEDIAN_TEMP(13,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(12,1)<32;16,2> ubMEDIAN_TEMP(15,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(10,1)<32;16,2> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(15,0)<2> ubMEDIAN_TEMP(12,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(10,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(15,1)<2> ubMEDIAN_TEMP(12,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(10,1)<32;16,2> |
// MedianSwap(v2,v5) - U |
// MedianSwap(v4,v7) - U |
// MedianSwap(v2,v5) - V |
// MedianSwap(v4,v7) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(11,0)<32;16,2> ubMEDIAN_TEMP(14,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(16,0)<32;16,2> |
cmp.g.f1.0 (16) null:w ubMEDIAN_TEMP(11,1)<32;16,2> ubMEDIAN_TEMP(14,1)<32;16,2> |
cmp.g.f1.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(16,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubMEDIAN_TEMP(14,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(16,0)<32;16,2> |
(f1.0) mov (16) ubMEDIAN_TEMP(11,1)<2> ubMEDIAN_TEMP(14,1)<32;16,2> |
(f1.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(16,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
mov (16) ubTEMP1(0,0)<1> ubMEDIAN_TEMP(13,0)<32;16,2> |
mov (16) ubTEMP1(0,16)<1> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(11,0)<2> ubTEMP1(0,0)<16;16,1> |
(f0.1) mov (16) ubMEDIAN_TEMP(11,1)<2> ubTEMP1(0,16)<16;16,1> |
// MedianSwap(v6,v4) - U |
// MedianSwap(v6,v4) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(15,0)<32;16,2> ubMEDIAN_TEMP(13,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(15,1)<32;16,2> ubMEDIAN_TEMP(13,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(15,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(15,1)<32;16,2> |
// MedianSwap(v4,v2) - U |
// MedianSwap(v4,v2) - V |
cmp.g.f0.0 (16) null:w ubMEDIAN_TEMP(13,0)<32;16,2> ubMEDIAN_TEMP(11,0)<32;16,2> |
cmp.g.f0.1 (16) null:w ubMEDIAN_TEMP(13,1)<32;16,2> ubMEDIAN_TEMP(11,1)<32;16,2> |
(f0.0) mov (16) ubMEDIAN_TEMP(13,0)<2> ubMEDIAN_TEMP(11,0)<32;16,2> |
(f0.1) mov (16) ubMEDIAN_TEMP(13,1)<2> ubMEDIAN_TEMP(11,1)<32;16,2> |
// Sobel Value calculation for the current pixel v4 |
// v2 v1 v0 |
// * * * <--- Different field - not used |
// v5 v4 v3 |
// * * * <--- Different field - not used |
// v8 v7 v6 |
// |
// Gx = -v0 - 2*v3 - v6 + v2 + 2*v5 + v8 |
// Gy = v0 + 2*v1 + v2 - v6 - 2*v7 - v8 |
// |
// Sobel = (|Gx| + |Gy|) >> 3 |
//TODO - Change Later - rT |
add (1) a0.0:uw a0.0<0;1,0>:uw -128:uw |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,64]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,132]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,0]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,128]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,4]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(0)<1> r[a0.0,68]<16;16,1>:ub 2:w |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,96]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,164]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,32]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,160]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,36]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(1)<1> r[a0.0,100]<16;16,1>:ub 2:w |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,128]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,196]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,64]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,192]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,68]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(2)<1> r[a0.0,132]<16;16,1>:ub 2:w |
// - 2 * v3 |
mul (16) acc0.0<1>:w r[a0.0,160]<16;16,1>:ub -2:w |
// + v8 |
mac (16) acc0.0<1>:w r[a0.0,228]<16;16,1>:ub 1:w |
// - v0 |
mac (16) acc0.0<1>:w r[a0.0,96]<16;16,1>:ub -1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,224]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,100]<16;16,1>:ub 1:w |
// + 2 * v5 |
mac (16) wSOBEL_X(3)<1> r[a0.0,164]<16;16,1>:ub 2:w |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,2]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,0]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,132]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,4]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,128]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,130]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(0)<16;16,1> |
shr (16) uwSOBEL(0)<1> acc0.0<16;16,1>:uw 3:uw |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,34]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,32]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,164]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,36]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,160]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,162]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(1)<16;16,1> |
shr (16) uwSOBEL(1)<1> acc0.0<16;16,1>:uw 3:uw |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,66]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,64]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,196]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,68]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,192]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,194]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(2)<16;16,1> |
shr (16) uwSOBEL(2)<1> acc0.0<16;16,1>:uw 3:uw |
// + 2 * v1 |
mul (16) acc0.0<1>:w r[a0.0,98]<16;16,1>:ub 2:w |
// + v0 |
mac (16) acc0.0<1>:w r[a0.0,96]<16;16,1>:ub 1:w |
// - v8 |
mac (16) acc0.0<1>:w r[a0.0,228]<16;16,1>:ub -1:w |
// + v2 |
mac (16) acc0.0<1>:w r[a0.0,100]<16;16,1>:ub 1:w |
// - v6 |
mac (16) acc0.0<1>:w r[a0.0,224]<16;16,1>:ub -1:w |
// - 2 * v7 |
mac (16) acc0.0<1>:w r[a0.0,226]<16;16,1>:ub -2:w |
add (16) acc0.0<1>:uw (abs)acc0.0<16;16,1>:w (abs)wSOBEL_X(3)<16;16,1> |
shr (16) uwSOBEL(3)<1> acc0.0<16;16,1>:uw 3:uw |
//Mov Median in CURBE_TEMP to free up temp space. |
mov (16) ubMEDIAN(0,0)<1> ubMEDIAN_TEMP(4,0)<16;16,1> |
mov (16) ubMEDIAN(0,16)<1> ubMEDIAN_TEMP(4,16)<16;16,1> |
mov (16) ubMEDIAN(0,32)<1> ubMEDIAN_TEMP(13,0)<16;16,1> |
mov (16) ubMEDIAN(0,48)<1> ubMEDIAN_TEMP(13,16)<16;16,1> |
// Find: |
// absDiff = abs(ubCurY - ubMedian) |
// Find the difference between pixel and median value. |
//Median is interleaved. So difference is also interleaved. |
//------------------------------------------------------------------------------------------ |
//Process 16 U and 16 V pixels here and rest later. |
// first row - v0,v1,v2 |
add (16) wDIFF(0)<1> r[a0.0,0]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(1)<1> r[a0.0,2]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(2)<1> r[a0.0,4]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(3)<1> r[a0.0,64]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(4)<1> r[a0.0,66]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(5)<1> r[a0.0,68]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
// third row - v6,v7,v8 |
add (16) wDIFF(6)<1> r[a0.0,128]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(7)<1> r[a0.0,130]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
add (16) wDIFF(8)<1> r[a0.0,132]<16;16,1>:ub -ubMEDIAN(0,0)<16;16,1> |
// first row - v0,v1,v2 |
add (16) wDIFF(9)<1> r[a0.0,32]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(10)<1> r[a0.0,34]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(11)<1> r[a0.0,36]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(12)<1> r[a0.0,96]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(13)<1> r[a0.0,98]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(14)<1> r[a0.0,100]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
// third row - v6,v7,v8 |
add (16) wDIFF(15)<1> r[a0.0,160]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(16)<1> r[a0.0,162]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
add (16) wDIFF(17)<1> r[a0.0,164]<16;16,1>:ub -ubMEDIAN(0,16)<16;16,1> |
//TODO - Change Later - rT |
add (1) a0.0:uw a0.0<0;1,0>:uw 64:uw |
// Find sum of all absolute differences AND |
// maximum absolute difference for 16 U and 16 V here. |
//First 2 rows of 8x4 |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(2)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(3)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(4)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(5)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(6)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(7)<16;16,1> |
add (16) uwSOAD(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF(8)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//------------ |
//DIFF(0-7) is not needed here. Populate it. |
// first row - v0,v1,v2 |
add (16) wDIFF(0)<1> r[a0.0,0]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(1)<1> r[a0.0,2]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(2)<1> r[a0.0,4]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(3)<1> r[a0.0,64]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(4)<1> r[a0.0,66]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(5)<1> r[a0.0,68]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
// third row - v6,v7 |
add (16) wDIFF(6)<1> r[a0.0,128]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
add (16) wDIFF(7)<1> r[a0.0,130]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
//------------ |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(0)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
//------------ |
//Load v8 - DIFF(8) |
add (16) wDIFF(8)<1> r[a0.0,132]<16;16,1>:ub -ubMEDIAN(1,0)<16;16,1> |
//------------ |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(11)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(12)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(13)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(14)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(15)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(16)<16;16,1> |
add (16) uwSOAD(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF(17)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//------------ |
//DIFF(0-7) is not needed here. Populate it. |
// first row - v0,v1,v2 |
add (16) wDIFF(9)<1> r[a0.0,32]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(10)<1> r[a0.0,34]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(11)<1> r[a0.0,36]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
// second row - v3,v4,v5 |
add (16) wDIFF(12)<1> r[a0.0,96]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(13)<1> r[a0.0,98]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(14)<1> r[a0.0,100]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
// third row - v6,v7 |
add (16) wDIFF(15)<1> r[a0.0,160]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
add (16) wDIFF(16)<1> r[a0.0,162]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
//------------ |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(1)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
//------------ |
//Load v8 - DIFF(8) |
add (16) wDIFF(17)<1> r[a0.0,164]<16;16,1>:ub -ubMEDIAN(1,16)<16;16,1> |
//------------ |
//if ((sobel_edge_measure < m_SobelEdgeThreshold) && ((block_max-block_min) < m_LocalDiffThreshold)) |
// if (sigma_mb_min > sigma) |
// sigma_mb_min = sigma; |
//NOTE: block_min is always zero as median is one of the value in 3x3 block. So no need o calculate it. |
// So just do - |
//if ((sobel_edge_measure < m_SobelEdgeThreshold) && ((block_max) < m_LocalDiffThreshold) && ( sigma < sigma_mb_min)) |
// sigma_mb_min = sigma; |
//We are processing 32 bytes of U and 32 bytes of V - each of size 8x4. |
//Compare first 8 bytes with max possible (255). |
//Start above condition from second 8 bytes. |
//TODO - Change Later - rT |
// mov (1) pCUR_MIN_SOAD_8x4:uw 1752:uw //r54.24:ub |
//First row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(0)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(0)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(0)<16;16,1> 255:uw |
(f0.0) sel (16) uwSOBEL(0)<1> uwSOAD(0)<16;16,1> 255:uw |
//Second row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(1)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(1)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(1)<16;16,1> uwSOBEL(0)<16;16,1> |
(f0.0) mov (16) uwSOBEL(0)<1> uwSOAD(1)<16;16,1> |
// Find sum of all absolute differences AND |
// maximum absolute difference for 16 U and 16 V here. |
//Second 2 rows of 8x4 |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(2)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(3)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(4)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(5)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(6)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(7)<16;16,1> |
add (16) uwSOAD(0)<1> acc0.0<16;16,1>:uw (abs)wDIFF(8)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(0)<16;16,1> (abs)wDIFF(1)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(2)<16;16,1> (abs)wDIFF(3)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(4)<16;16,1> (abs)wDIFF(5)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(6)<16;16,1> (abs)wDIFF(7)<16;16,1> |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(0)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(8)<16;16,1> |
//Compare 0-1, 2-3, 4-5, 6-7 |
cmp.g.f0.0 (16) null:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
cmp.g.f0.1 (16) null:uw (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
cmp.g.f1.0 (16) null:uw (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
cmp.g.f1.1 (16) null:uw (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//Calculate SAD |
add (16) acc0.0<1>:uw (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(11)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(12)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(13)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(14)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(15)<16;16,1> |
add (16) acc0.0<1>:uw acc0.0<16;16,1>:uw (abs)wDIFF(16)<16;16,1> |
add (16) uwSOAD(1)<1> acc0.0<16;16,1>:uw (abs)wDIFF(17)<16;16,1> |
(f0.0) sel (16) uwCURBE_TEMP(0)<1> (abs)wDIFF(9)<16;16,1> (abs)wDIFF(10)<16;16,1> |
(f0.1) sel (16) uwCURBE_TEMP(1)<1> (abs)wDIFF(11)<16;16,1> (abs)wDIFF(12)<16;16,1> |
(f1.0) sel (16) uwCURBE_TEMP(2)<1> (abs)wDIFF(13)<16;16,1> (abs)wDIFF(14)<16;16,1> |
(f1.1) sel (16) uwCURBE_TEMP(3)<1> (abs)wDIFF(15)<16;16,1> (abs)wDIFF(16)<16;16,1> |
//Compare Max(0,1) - Max(2,3), Max(4,5) - Max(6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
cmp.g.f0.1 (16) null:uw uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(1)<16;16,1> |
(f0.1)sel (16) uwCURBE_TEMP(2)<1> uwCURBE_TEMP(2)<16;16,1> uwCURBE_TEMP(3)<16;16,1> |
//Compare Max(0,1,2,3) - Max(4,5,6,7) |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
(f0.0)sel (16) uwCURBE_TEMP(0)<1> uwCURBE_TEMP(0)<16;16,1> uwCURBE_TEMP(2)<16;16,1> |
//Compare Max(0,1,2,3,4,5,6,7) - 8 |
cmp.g.f0.0 (16) null:uw uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
(f0.0)sel (16) uwMAX_ABS_DIFF(1)<1> uwCURBE_TEMP(0)<16;16,1> (abs)wDIFF(17)<16;16,1> |
//Third row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(2)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(0)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(0)<16;16,1> uwSOBEL(0)<16;16,1> |
(f0.0) mov (16) uwSOBEL(0)<1> uwSOAD(0)<16;16,1> |
//Fourth row of 8x4 |
cmp.l.f0.0 (16) null:uw uwSOBEL(3)<16;16,1> r55.30<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwMAX_ABS_DIFF(1)<16;16,1> r55.28<0;2,1>:ub |
(f0.0) cmp.l.f0.0 (16) null:uw uwSOAD(1)<16;16,1> uwSOBEL(0)<16;16,1> |
(f0.0) mov (16) uwSOBEL(0)<1> uwSOAD(1)<16;16,1> |
cmp.l.f0.0 (8) null:uw uwSOBEL(0,0)<8;8,1> uwSOBEL(0,8)<8;8,1> |
(f0.0) sel (8) uwSOBEL(0)<1> uwSOBEL(0,0)<8;8,1> uwSOBEL(0,8)<8;8,1> |
cmp.l.f0.0 (4) null:uw uwSOBEL(0,0)<4;4,1> uwSOBEL(0,4)<4;4,1> |
(f0.0) sel (4) uwSOBEL(0)<1> uwSOBEL(0,0)<4;4,1> uwSOBEL(0,4)<4;4,1> |
cmp.l.f0.0 (2) null:uw uwSOBEL(0,0)<2;2,1> uwSOBEL(0,2)<2;2,1> |
(f0.0) sel (2) r[a0.1,0]<1>:uw uwSOBEL(0,0)<2;2,1> uwSOBEL(0,2)<2;2,1> |
// End of common.inc |
mov (1) ip:ud r7.7<0;1,0>:d |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PL3_DN_422CP.g4a |
---|
0,0 → 1,544 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 117 // Total instruction count |
// 1 // Total kernel count |
.kernel PL3_DN_422CP |
.code |
// FileName: DN_PL_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) for planar format |
// FileName: DN.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x45E8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(4,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (2) mudMSGHDR_HIST(1)<1> udDNDI_RESP(4,0)<2;2,1> // Move denoise history to MRF (4x2) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x10003:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x50003:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | X | X | X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
//| X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
mov (1) mubMSGHDR_ENC_STATS(1,0)<1> ubDNDI_RESP(4,8)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,3)<1> uwDNDI_RESP(4,11)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,4)<1> uwDNDI_RESP(4,12)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,9)<1> uwDNDI_RESP(4,8)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,10)<1> uwDNDI_RESP(4,9)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Load_UV_IMC3_16x8.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x8 block through DATAPORT |
// FileName: UVCopy_Load_16x8.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x8 block through DATAPORT |
//CHANGE : Read extra UV data to convert to 422. -rT |
//we are reading extra data in ALL cases irrespective of whether upsampling is reqd or not later on, to keep things simple. |
add (2) r27.0<1>:d r7.0<2;2,1>:w r4.4<2;2,1>:w // Source Y Block origin |
asr (2) r27.0<1>:d r27.0<2;2,1>:d 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) r27.2<1>:ud 0x40007:ud { NoDDChk } // U/V block width and height (8x5) |
mov (8) r36<1>:ud r27.0<8;8,1>:ud |
mov (8) r38<1>:ud r27.0<8;8,1>:ud |
send (8) udDNDI_UV_RESP(0)<1> r36 0x4 0x2290001:ud |
send (8) udDNDI_UV_RESP(2)<1> r38 0x4 0x2290002:ud |
//Update Header for Save |
mov (1) mudMSGHDR_UCOPY(0,2)<1> 0x30007:ud // U block width and height (8x4) |
mov (1) mudMSGHDR_VCOPY(0,2)<1> 0x30007:ud // V block width and height (8x4) |
// FileName: DN_Save_Y_16x8.asm |
// Author: Vivek Kumar |
// Description: Save one 16x8 blocks of Y channel of DN output for reference |
mov (8) mudDN_Y_OUT(0,0)<1> r0<8;8,1>:ud // message header |
mov (2) mudDN_Y_OUT(0,0)<1> r7.0<2;2,1>:w { NoDDClr } // X origin |
mov (1) mudDN_Y_OUT(0,2)<1> 0x7000F:ud { NoDDChk } // block width and height (16x8) |
//send out data through data port |
send (8) null<1>:d mudDN_Y_OUT 0x5 0xA0A8018:ud |
// FileName: DN_Save_UV_IMC3_16x8.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x8 block through DATAPORT |
// FileName: UVCopy_Save_16x8.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x8 block through DATAPORT |
//Reuse the header from Load component |
//Header is modified at the end of load - to be usable for save. |
mov (8) mudMSGHDR_UCOPY(1)<1> udDNDI_UV_RESP(0)<8;8,1> |
mov (8) mudMSGHDR_VCOPY(1)<1> udDNDI_UV_RESP(2)<8;8,1> |
send (4) null<1>:d r36 0x5 0x40A8019:ud |
send (4) null<1>:d r38 0x5 0x40A801A:ud |
// FileName: DN_Upsample_UV_IMC3_16x8.asm |
// Author: Tatiya, Rupesh |
// Description: Upconvert 420 UV to 422 |
// FileName: UVCopy_Upsample_UV_16x8.asm |
// Author: Tatiya, Rupesh |
// Description: Convert 42X UV to 422 - to be used for IECP. |
avg.sat (16) uwDNDI_UVCOPY_TEMP(0) ubDNDI_UV_RESP(0,0)<0;8,1> ubDNDI_UV_RESP(0,0)<8;8,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(4) ubDNDI_UV_RESP(2,0)<0;8,1> ubDNDI_UV_RESP(2,0)<8;8,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(1) ubDNDI_UV_RESP(0,8)<0;8,1> ubDNDI_UV_RESP(0,8)<8;8,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(5) ubDNDI_UV_RESP(2,8)<0;8,1> ubDNDI_UV_RESP(2,8)<8;8,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(2) ubDNDI_UV_RESP(0,16)<0;8,1> ubDNDI_UV_RESP(0,16)<8;8,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(6) ubDNDI_UV_RESP(2,16)<0;8,1> ubDNDI_UV_RESP(2,16)<8;8,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(3) ubDNDI_UV_RESP(0,24)<0;8,1> ubDNDI_UV_RESP(0,24)<8;8,1> |
avg.sat (16) uwDNDI_UVCOPY_TEMP(7) ubDNDI_UV_RESP(2,24)<0;8,1> ubDNDI_UV_RESP(2,24)<8;8,1> |
mov (16) ubDNDI_RESP(5, 1)<2> ubDNDI_UVCOPY_TEMP(0,0)<32;16,2> { NoDDClr } |
mov (16) ubDNDI_RESP(5, 0)<2> ubDNDI_UVCOPY_TEMP(4,0)<32;16,2> { NoDDChk } |
mov (16) ubDNDI_RESP(5, 33)<2> ubDNDI_UVCOPY_TEMP(1,0)<32;16,2> { NoDDClr } |
mov (16) ubDNDI_RESP(5, 32)<2> ubDNDI_UVCOPY_TEMP(5,0)<32;16,2> { NoDDChk } |
mov (16) ubDNDI_RESP(5, 65)<2> ubDNDI_UVCOPY_TEMP(2,0)<32;16,2> { NoDDClr } |
mov (16) ubDNDI_RESP(5, 64)<2> ubDNDI_UVCOPY_TEMP(6,0)<32;16,2> { NoDDChk } |
mov (16) ubDNDI_RESP(5, 97)<2> ubDNDI_UVCOPY_TEMP(3,0)<32;16,2> { NoDDClr } |
mov (16) ubDNDI_RESP(5, 96)<2> ubDNDI_UVCOPY_TEMP(7,0)<32;16,2> { NoDDChk } |
// FileName: DN_Save_422CP_16x8.asm |
// Author: Vivek Kumar |
// Description: Save one 16x8 blocks of DN output to the color pipe in 4-2-2 format |
.declare mubMSGHDR_DN_OUT_2 Base=r36.0 ElementSize=1 Type=ub |
mov (8) mudMSGHDR_DN_OUT(0)<1> r0<8;8,1>:ud // message header |
shl (1) mdMSGHDR_DN_OUT(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin * 2 (422 output) |
mov (1) mdMSGHDR_DN_OUT(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_DN_OUT(0,2)<1> 0x7000F:ud { NoDDClr, NoDDChk } // block width and height (16x8) |
//M0.3 - 0 - CP Enable, 1 - Area of Interest, 3:2 Message Format(TBD), 4:3 - Ignored, 31:5 CP state pointer |
//Compose area-of-interest bit + color pipe state pointer |
or (1) mudMSGHDR_DN_OUT(0,3)<1> r2.4<0;1,0>:ud r7.26<0;1,0>:b { NoDDChk } |
// First 8 x 8 Block |
mov (8) mubMSGHDR_DN_OUT(1)<2> ubDNDI_RESP(0,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(1,16)<2> ubDNDI_RESP(0,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(2)<2> ubDNDI_RESP(0,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(2,16)<2> ubDNDI_RESP(0,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(3)<2> ubDNDI_RESP(0,64)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(3,16)<2> ubDNDI_RESP(0,80)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(4)<2> ubDNDI_RESP(0,96)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT(4,16)<2> ubDNDI_RESP(0,112)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,1)<4> ubDNDI_RESP(5,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,17)<4> ubDNDI_RESP(5,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,3)<4> ubDNDI_RESP(5,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(1,19)<4> ubDNDI_RESP(5,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,1)<4> ubDNDI_RESP(5,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,17)<4> ubDNDI_RESP(5,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,3)<4> ubDNDI_RESP(5,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(2,19)<4> ubDNDI_RESP(5,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,1)<4> ubDNDI_RESP(5,65)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,17)<4> ubDNDI_RESP(5,81)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,3)<4> ubDNDI_RESP(5,64)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(3,19)<4> ubDNDI_RESP(5,80)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,1)<4> ubDNDI_RESP(5,97)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,17)<4> ubDNDI_RESP(5,113)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,3)<4> ubDNDI_RESP(5,96)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT(4,19)<4> ubDNDI_RESP(5,112)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Second 8 x 8 Block |
mov (8) r36.0<1>:ud r31.0<8;8,1>:ud |
add (1) r36.0<1>:ud r36.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DN_OUT_2(1)<2> ubDNDI_RESP(0,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(1,16)<2> ubDNDI_RESP(0,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(2)<2> ubDNDI_RESP(0,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(2,16)<2> ubDNDI_RESP(0,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(3)<2> ubDNDI_RESP(0,72)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(3,16)<2> ubDNDI_RESP(0,88)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(4)<2> ubDNDI_RESP(0,104)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DN_OUT_2(4,16)<2> ubDNDI_RESP(0,120)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,1)<4> ubDNDI_RESP(5,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,17)<4> ubDNDI_RESP(5,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,3)<4> ubDNDI_RESP(5,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(1,19)<4> ubDNDI_RESP(5,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,1)<4> ubDNDI_RESP(5,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,17)<4> ubDNDI_RESP(5,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,3)<4> ubDNDI_RESP(5,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(2,19)<4> ubDNDI_RESP(5,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,1)<4> ubDNDI_RESP(5,73)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,17)<4> ubDNDI_RESP(5,89)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,3)<4> ubDNDI_RESP(5,72)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(3,19)<4> ubDNDI_RESP(5,88)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,1)<4> ubDNDI_RESP(5,105)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,17)<4> ubDNDI_RESP(5,121)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,3)<4> ubDNDI_RESP(5,104)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DN_OUT_2(4,19)<4> ubDNDI_RESP(5,120)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
//send out data through data port |
send (8) null<1>:d r31.0 0x5 0xA0A801B:ud |
send (8) null<1>:d r36.0 0x5 0xA0A801B:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PL3_DN_PL3.g4a |
---|
0,0 → 1,425 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 44 // Total instruction count |
// 1 // Total kernel count |
.kernel PL3_DN_PL3 |
.code |
// FileName: DN_PL_Core.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) for planar format |
// FileName: DN.asm |
// Author: Vivek Kumar |
// Description: Tasks for DN only case (16x8 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x45E8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(4,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DN_Hist_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DN history data to statistics surface |
// Write denoise history to memory |
mov (8) r27<1>:ud r0.0<8;8,1>:ud // message header |
mov (2) mudMSGHDR_HIST(1)<1> udDNDI_RESP(4,0)<2;2,1> // Move denoise history to MRF (4x2) |
shr (2) r27.0<1>:ud r7.0<2;2,1>:w 2:w // X,Y origin / 4 |
add (1) r27.0<1>:ud r27.0<0;1,0>:ud r1.12<0;1,0>:uw { NoDDClr } // Add pitch to X origin |
mov (1) r27.2<1>:ud 0x10003:ud { NoDDChk } // block width and height |
mov (8) mudMSGHDR_HIST(0)<1> r27.0<8;8,1>:ud |
send (8) null<1>:d r22 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x50003:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | X | X | X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
//| X | X | |
//---------------------------------------------------- |
//| X | SVCM | X | |
//---------------------------------------------------- |
//| SHCM | STAD | X | |
//---------------------------------------------------- |
mov (1) mubMSGHDR_ENC_STATS(1,0)<1> ubDNDI_RESP(4,8)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,3)<1> uwDNDI_RESP(4,11)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,4)<1> uwDNDI_RESP(4,12)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (1) muwMSGHDR_ENC_STATS(1,9)<1> uwDNDI_RESP(4,8)<0;1,0> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) muwMSGHDR_ENC_STATS(1,10)<1> uwDNDI_RESP(4,9)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DN_Load_UV_IMC3_16x8.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x8 block through DATAPORT |
// FileName: UVCopy_Load_16x8.asm |
// Author: Vivek Kumar |
// Description: Read UV for 16x8 block through DATAPORT |
//CHANGE : Read extra UV data to convert to 422. -rT |
//we are reading extra data in ALL cases irrespective of whether upsampling is reqd or not later on, to keep things simple. |
add (2) r27.0<1>:d r7.0<2;2,1>:w r4.4<2;2,1>:w // Source Y Block origin |
asr (2) r27.0<1>:d r27.0<2;2,1>:d 1:w { NoDDClr } // U/V block origin should be half of Y's |
mov (1) r27.2<1>:ud 0x40007:ud { NoDDChk } // U/V block width and height (8x5) |
mov (8) r36<1>:ud r27.0<8;8,1>:ud |
mov (8) r38<1>:ud r27.0<8;8,1>:ud |
send (8) udDNDI_UV_RESP(0)<1> r36 0x4 0x2290001:ud |
send (8) udDNDI_UV_RESP(2)<1> r38 0x4 0x2290002:ud |
//Update Header for Save |
mov (1) mudMSGHDR_UCOPY(0,2)<1> 0x30007:ud // U block width and height (8x4) |
mov (1) mudMSGHDR_VCOPY(0,2)<1> 0x30007:ud // V block width and height (8x4) |
// FileName: DN_Save_Y_16x8.asm |
// Author: Vivek Kumar |
// Description: Save one 16x8 blocks of Y channel of DN output for reference |
mov (8) mudDN_Y_OUT(0,0)<1> r0<8;8,1>:ud // message header |
mov (2) mudDN_Y_OUT(0,0)<1> r7.0<2;2,1>:w { NoDDClr } // X origin |
mov (1) mudDN_Y_OUT(0,2)<1> 0x7000F:ud { NoDDChk } // block width and height (16x8) |
//send out data through data port |
send (8) null<1>:d mudDN_Y_OUT 0x5 0xA0A8018:ud |
// FileName: DN_Save_UV_IMC3_16x8.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x8 block through DATAPORT |
// FileName: UVCopy_Save_16x8.asm |
// Author: Vivek Kumar |
// Description: Save UV for 16x8 block through DATAPORT |
//Reuse the header from Load component |
//Header is modified at the end of load - to be usable for save. |
mov (8) mudMSGHDR_UCOPY(1)<1> udDNDI_UV_RESP(0)<8;8,1> |
mov (8) mudMSGHDR_VCOPY(1)<1> udDNDI_UV_RESP(2)<8;8,1> |
send (4) null<1>:d r36 0x5 0x40A8019:ud |
send (4) null<1>:d r38 0x5 0x40A801A:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PL_DI_422CP.g4a |
---|
0,0 → 1,461 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 87 // Total instruction count |
// 1 // Total kernel count |
.kernel PL_DI_422CP |
.code |
// FileName: DI.asm |
// Author: Vivek Kumar |
// Description: Tasks for DI only case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4AE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DI_Save_422CP_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in 422 format to Color Pipe (IECP) |
.declare mubMSGHDR_DI_OUT1_1 Base=r18.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT1_2 Base=r21.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT2_1 Base=r24.0 ElementSize=1 Type=ub |
.declare mubMSGHDR_DI_OUT2_2 Base=r27.0 ElementSize=1 Type=ub |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:ud r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:ud r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3000F:ud { NoDDClr, NoDDChk } // Block width and height (16x8) |
//M0.3 - 0 - CP Enable, 1 - Area of Interest, 3:2 Message Format(TBD), 4:3 - Ignored, 31:5 CP state pointer |
//Compose area-of-interest bit + color pipe state pointer |
or (1) r27.3<1>:ud r2.4<0;1,0>:ud r7.26<0;1,0>:b { NoDDChk } |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r24.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y; First 8x4 block |
mov (8) mubMSGHDR_DI_OUT1_1(1)<2> ubDNDI_RESP(0,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(1,16)<2> ubDNDI_RESP(0,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(2)<2> ubDNDI_RESP(0,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_1(2,16)<2> ubDNDI_RESP(0,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 2nd field U, V; First 8x4 block |
mov (4) mubMSGHDR_DI_OUT1_1(1,1)<4> ubDNDI_RESP(2,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,17)<4> ubDNDI_RESP(2,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,3)<4> ubDNDI_RESP(2,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(1,19)<4> ubDNDI_RESP(2,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,1)<4> ubDNDI_RESP(2,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,17)<4> ubDNDI_RESP(2,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,3)<4> ubDNDI_RESP(2,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_1(2,19)<4> ubDNDI_RESP(2,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Pack 2nd field Y; Second 8x4 block |
mov (8) r21.0<1>:ud r18.0<8;8,1>:ud |
add (1) r21.0<1>:ud r21.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DI_OUT1_2(1)<2> ubDNDI_RESP(0,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(1,16)<2> ubDNDI_RESP(0,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(2)<2> ubDNDI_RESP(0,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT1_2(2,16)<2> ubDNDI_RESP(0,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 2nd field U, V; Second 8x4 block |
mov (4) mubMSGHDR_DI_OUT1_2(1,1)<4> ubDNDI_RESP(2,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,17)<4> ubDNDI_RESP(2,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,3)<4> ubDNDI_RESP(2,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(1,19)<4> ubDNDI_RESP(2,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,1)<4> ubDNDI_RESP(2,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,17)<4> ubDNDI_RESP(2,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,3)<4> ubDNDI_RESP(2,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT1_2(2,19)<4> ubDNDI_RESP(2,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
send (8) null<1>:d r18.0 0x5 0x60A801B:ud |
send (8) null<1>:d r21.0 0x5 0x60A801B:ud |
// Pack 1st field Y; 1st 8x4 block |
mov (8) mubMSGHDR_DI_OUT2_1(1)<2> ubDNDI_RESP(4,0)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(1,16)<2> ubDNDI_RESP(4,16)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(2)<2> ubDNDI_RESP(4,32)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_1(2,16)<2> ubDNDI_RESP(4,48)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 1st field U,V; 1st 8x4 block |
mov (4) mubMSGHDR_DI_OUT2_1(1,1)<4> ubDNDI_RESP(6,1)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,17)<4> ubDNDI_RESP(6,17)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,3)<4> ubDNDI_RESP(6,0)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(1,19)<4> ubDNDI_RESP(6,16)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,1)<4> ubDNDI_RESP(6,33)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,17)<4> ubDNDI_RESP(6,49)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,3)<4> ubDNDI_RESP(6,32)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_1(2,19)<4> ubDNDI_RESP(6,48)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
// Pack 1st field Y; 2nd 8x4 block |
mov (8) r27.0<1>:ud r24.0<8;8,1>:ud |
add (1) r27.0<1>:ud r27.0<0;1,0>:w 0x10:w |
mov (8) mubMSGHDR_DI_OUT2_2(1)<2> ubDNDI_RESP(4,8)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(1,16)<2> ubDNDI_RESP(4,24)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(2)<2> ubDNDI_RESP(4,40)<8;8,1> { NoDDClr } // copy line of Y directly to memory as optimization |
mov (8) mubMSGHDR_DI_OUT2_2(2,16)<2> ubDNDI_RESP(4,56)<8;8,1> { NoDDClr, NoDDChk } // copy line of Y directly to memory as optimization |
// Pack 1st field U, V; 2nd 8x4 block |
mov (4) mubMSGHDR_DI_OUT2_2(1,1)<4> ubDNDI_RESP(6,9)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,17)<4> ubDNDI_RESP(6,25)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,3)<4> ubDNDI_RESP(6,8)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(1,19)<4> ubDNDI_RESP(6,24)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,1)<4> ubDNDI_RESP(6,41)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,17)<4> ubDNDI_RESP(6,57)<8;4,2> { NoDDClr, NoDDChk } // copy line of U directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,3)<4> ubDNDI_RESP(6,40)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
mov (4) mubMSGHDR_DI_OUT2_2(2,19)<4> ubDNDI_RESP(6,56)<8;4,2> { NoDDChk } // copy line of V directly to memory as optimization |
send (8) null<1>:d r24.0 0x5 0x60A801E:ud |
send (8) null<1>:d r27.0 0x5 0x60A801E:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/PL_DI_PA.g4a |
---|
0,0 → 1,399 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 57 // Total instruction count |
// 1 // Total kernel count |
.kernel PL_DI_PA |
.code |
// FileName: DI.asm |
// Author: Vivek Kumar |
// Description: Tasks for DI only case (16x4 block) |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: DNDI.inc |
// Author: Vivek Kumar |
// Description: Include file for DN, DI and DNDI |
// Inputs: DI_ENABLE, DN_ENABLE, DN_PLANAR, DN_PACKED |
// End of common.inc |
//Interface: |
//Static Parameters: |
//r1 |
//====================== Binding table (Explicit To DNDI)========================================= |
.declare mudMSGHDR_DNDI Base=r18 ElementSize=4 Type=ud |
.declare mdMSGHDR_DNDI Base=r18 ElementSize=4 Type=d |
.declare mwMSGHDR_DNDI Base=r18 ElementSize=2 Type=w |
.declare mudMSGHDR_STMM Base=r20 ElementSize=4 Type=ud |
.declare mudMSGHDR_HIST Base=r22 ElementSize=4 Type=ud |
.declare mudMSGHDR_ENC_STATS Base=r24 ElementSize=4 Type=ud |
.declare muwMSGHDR_ENC_STATS Base=r24 ElementSize=2 Type=uw |
.declare mubMSGHDR_ENC_STATS Base=r24 ElementSize=1 Type=ub |
.declare mudMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=ud |
.declare mdMSGHDR_DN_OUT Base=r31.0 ElementSize=4 Type=d |
.declare mubMSGHDR_DN_OUT Base=r31.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=ud |
.declare mdMSGHDR_UVCOPY Base=r36 ElementSize=4 Type=d |
.declare mudMSGHDR_UCOPY Base=r36 ElementSize=4 Type=ud |
.declare mudMSGHDR_VCOPY Base=r38 ElementSize=4 Type=ud |
.declare mudMSGHDR_DI_OUT1 Base=r18.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT1 Base=r18.0 ElementSize=1 Type=ub |
.declare mudMSGHDR_DI_OUT2 Base=r23.0 ElementSize=4 Type=ud |
.declare mubMSGHDR_DI_OUT2 Base=r23.0 ElementSize=1 Type=ub |
//r45 |
//Use r45 as message header, so no need to "mov" the data. |
.declare mudDN_Y_OUT Base=r45.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
// Message response (Denoised & DI-ed pixels & statistics); Use buffer 5 |
.declare udDNDI_RESP Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwDNDI_RESP Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubDNDI_RESP Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
// Message response (UV Copy); Use buffer 5 |
.declare udDNDI_UV_RESP Base=r58.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare ubDNDI_UV_RESP Base=r58.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
//Temp GRFs: For 42X to 422 Conversion |
.declare uwDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw //8 GRFs |
.declare ubDNDI_UVCOPY_TEMP Base=r10.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub //8 GRFs |
//--------------------------------------------------------------------------- |
// Message descriptors |
//--------------------------------------------------------------------------- |
// Extended message descriptor |
// Message descriptor for sampler read |
// = 000 0010 (message len 2) 00000 (resp len - set later, 12 or 5 or 11) |
// 1 (header present 1) 0 11 (SIMD32/64 mode) |
// 1000 (message type) 0000 (DI state index) |
// 00000000 (binding table index - set later) |
// = 0x040b8000 |
// Attention: The Message Length is The Number of GRFs with Data Only, without the Header |
//--------------------------------------------------------------------------- |
// VDI Return Data format |
//--------------------------------------------------------------------------- |
// Defines for DI enabled |
// Defines for DI disabled |
// FileName: DNDI_Command.asm |
// Author: Vivek Kumar |
// Description: Sends a message to the VDI to process one DN (16x8) or DNDI (16x4) block |
// Prepare the DNDI send command |
mov (8) mudMSGHDR_DNDI(0)<1> r0.0<8;8,1>:ud // message header |
mov (1) mwMSGHDR_DNDI(1,4)<1> r7.0<0;1,0>:w { NoDDClr } // horizontal origin // Do we need to add offset here? -vK |
mov (1) mwMSGHDR_DNDI(1,12)<1> r7.1<0;1,0>:w { NoDDChk } // vertical origin // Can these 2 be combined? - vK |
send (8) udDNDI_RESP(0)<1> r18 0x2 0x4AE8003:ud |
// On Gen6, with VDI walker, use the XY pair returned rather than programmed above |
// VDI_RETURNED_XY is ordered XY in case of walker enables and the same as programmed in case of walker disabled |
mov (2) r7.0<1>:w uwDNDI_RESP(9,14)<2;2,1> // horizontal/Vertial origin in W.14 and W.15 |
// FileName: DI_STMM_Save.asm |
// Author: Vivek Kumar |
// Description: Saves DI STMM Data to statistics surface in case of DI enabled (for 16x4 block) |
// Write STMM to memory |
mov (8) mudMSGHDR_STMM(0)<1> r0.0<8;8,1>:ud // message header |
mov (8) mudMSGHDR_STMM(1)<1> udDNDI_RESP(8,0) // Move STMM to MRF |
shr (1) mudMSGHDR_STMM(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } // X origin / 2 |
mov (1) mudMSGHDR_STMM(0,1)<1> r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Y origin |
mov (1) mudMSGHDR_STMM(0,2)<1> 0x30007:ud { NoDDChk } // block width and height (8x4) |
send (8) null<1>:d r20 0x5 0x40A8021:ud |
// FileName: DNDI_Enc_Stats_Save.asm |
// Author: Vivek Kumar |
// Description: Saves Encoder Statistics data to statistics surface in case of DI enabled (for 16x4 block) |
// Write encoder statistics to memory |
//Currently enable this only on Gen6 validation |
mov (8) mudMSGHDR_ENC_STATS(1)<1> 0x0:ud // Init payload MRF |
mov (8) mudMSGHDR_ENC_STATS(0)<1> r0.0<8;8,1>:ud // message header |
shr (1) mudMSGHDR_ENC_STATS(0,0)<1> r7.0<0;1,0>:w 1:w { NoDDClr } //enable the flag after testing on si { NoDDClr } // X origin / 2 |
mul (1) acc0.1<1>:ud r7.1<0;1,0>:w 3:w // Y origin * 3 |
shr (1) mudMSGHDR_ENC_STATS(0,1)<1> acc0.1<0;1,0>:ud 2:w { NoDDClr, NoDDChk } //enable the flag after testing on si { NoDDClr, NoDDChk } // Y origin * 3/4 |
mov (1) mudMSGHDR_ENC_STATS(0,2)<1> 0x20007:ud { NoDDChk } //enable the flag after testing on si { NoDDChk } // block width and height (8x3) |
add (2) mudMSGHDR_ENC_STATS(0,0)<1> mudMSGHDR_ENC_STATS(0,0)<2;2,1> r1.12<2;2,1>:uw // Add pitch to X,Y origin |
//Data block for Encoder Statistics |
//---------------------------------------------------- |
//| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | Bytes |
//---------------------------------------------------- |
//| BNE | MCNT | FCNT | TCNT | X | X | X | X | |
//---------------------------------------------------- |
//| DcTpT | SVCM | DcBpT | DcTpB | |
//---------------------------------------------------- |
//| SHCM | STAD | DcTcB | DcBpB | |
//---------------------------------------------------- |
mov (1) mudMSGHDR_ENC_STATS(1,0)<1> udDNDI_RESP(9,1)<0;1,0> { NoDDClr } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,3)<2> udDNDI_RESP(9,3)<2;2,1> { NoDDClr, NoDDChk } // Move encoder statistics to MRF |
mov (2) mudMSGHDR_ENC_STATS(1,2)<2> udDNDI_RESP(9,5)<2;2,1> { NoDDChk } // Move encoder statistics to MRF |
send (8) null<1>:d r24 0x5 0x40A8021:ud |
// FileName: DI_Save_PA_16x4.asm |
// Author: Vivek Kumar |
// Description: Save two 16x4 blocks of DI output in Packed format |
add (4) a0.4<1>:uw r2.28<4;4,1>:ub 608:w // Initial Y,U,V offset in YUV422 block; it starts at m20 |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud |
shl (1) r27.0<1>:d r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be doubled |
mov (1) r27.1<1>:d r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin |
mov (1) r27.2<1>:ud 0x3001F:ud { NoDDChk } // Block width and height (32x8) |
//prepare the message headers |
mov (8) r18.0<1>:ud r27<8;8,1>:ud |
mov (8) r23.0<1>:ud r27<8;8,1>:ud |
// Pack 2nd field Y |
mov (16) r[a0.4, 0]<2> ubDNDI_RESP(0,0) { NoDDClr } |
mov (16) r[a0.4, 32]<2> ubDNDI_RESP(0,16) { NoDDClr } |
mov (16) r[a0.4, 64]<2> ubDNDI_RESP(0,32) { NoDDClr } |
mov (16) r[a0.4, 96]<2> ubDNDI_RESP(0,48) { NoDDClr } |
// Pack 2nd field U |
mov (8) r[a0.5, 0]<4> ubDNDI_RESP(2,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 32]<4> ubDNDI_RESP(2,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 64]<4> ubDNDI_RESP(2,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 96]<4> ubDNDI_RESP(2,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 2nd field V |
mov (8) r[a0.6, 0]<4> ubDNDI_RESP(2,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 32]<4> ubDNDI_RESP(2,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 64]<4> ubDNDI_RESP(2,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 96]<4> ubDNDI_RESP(2,48)<16;8,2> { NoDDChk } //Vpixels |
// Pack 1st field Y |
mov (16) r[a0.4, 160]<2> ubDNDI_RESP(4,0) { NoDDClr } |
mov (16) r[a0.4, 192]<2> ubDNDI_RESP(4,16) { NoDDClr } |
mov (16) r[a0.4, 224]<2> ubDNDI_RESP(4,32) { NoDDClr } |
mov (16) r[a0.4, 256]<2> ubDNDI_RESP(4,48) { NoDDClr } |
// Pack 1st field U |
mov (8) r[a0.5, 160]<4> ubDNDI_RESP(6,1)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 192]<4> ubDNDI_RESP(6,17)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 224]<4> ubDNDI_RESP(6,33)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
mov (8) r[a0.5, 256]<4> ubDNDI_RESP(6,49)<16;8,2> { NoDDClr, NoDDChk } //U pixels |
// Pack 1st field V |
mov (8) r[a0.6, 160]<4> ubDNDI_RESP(6,0)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 192]<4> ubDNDI_RESP(6,16)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 224]<4> ubDNDI_RESP(6,32)<16;8,2> { NoDDChk } //Vpixels |
mov (8) r[a0.6, 256]<4> ubDNDI_RESP(6,48)<16;8,2> { NoDDChk } //Vpixels |
//save the previous frame |
send (8) null<1>:d r18.0 0x5 0xA0A801B:ud |
//save the current frame |
send (8) null<1>:d r23.0 0x5 0xA0A801E:ud |
//End of Thread message |
mov (8) r127<1>:ud r0.0<8;8,1>:ud |
send (1) null<1>:d r127 0x27 0x02000010 |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/Save_AVS_NV12.g4a |
---|
0,0 → 1,621 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 131 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// Module name: Save_AVS_NV12.asm |
// |
// Save NV12 420 frame data block of size 16x16 |
// |
// To save 16x16 block (16x16 bytes of Y and 16x8 bytes of interleaved UV), we need 2 send instructions with of size 16x16 and 16x8 each. |
// --------------- |
// | 16x16 | |
// | YUYV | |
// --------------- |
// | 16x8 UV | |
// --------------- |
//----------------------------------------------------------------- |
//The layout of data is as follows: |
//mMSGHDR0 : Y data header (16x16) |
//mubMSGPAYLOAD0 : Y data payload (8 GRFs) |
//mMSGHDR1 : U data header (16x8) |
//mubMSGPAYLOAD1 : U data payload (4 GRFs) |
//------------------------------------------------------------------ |
// Module name: Save.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//Msg payload buffers; upto 4 full-size messages can be written |
.declare mudMSGPAYLOAD0 Base=r29.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD1 Base=r38.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD2 Base=r47.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD3 Base=r56.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare muwMSGPAYLOAD0 Base=r29.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD1 Base=r38.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD2 Base=r47.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD3 Base=r56.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mubMSGPAYLOAD0 Base=r29.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD1 Base=r38.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD2 Base=r47.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD3 Base=r56.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD4 Base=r32.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD5 Base=r41.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD6 Base=r50.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD7 Base=r59.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
// the r17 register (nTEMP0) is originally defined from "Common.inc" |
// instead of re-defining a nTEMP0 here, we use "SAVE_RGB" suffix for its naming |
.declare uwTemp0 Base=r17.0 ElementSize=2 Type=uw |
//_SAVE_INC_ |
// At the save module we have all 8 address sub-registers available. |
// So we will use PING-PONG type of scheme to save the data using |
// pointers pBUF_CHNL_TOP_8x4 and pBUF_CHNL_BOT_8x4. This will help |
// reduce dependency. - rT |
//wBUFF_CHNL_PTR points to either buffer 0 or buffer 4. |
//Add appropriate offsets to get pointers for all buffers (1,2,3 or 5). |
//Offsets are zero for buffer 0 and buffer 4. |
add (4) a0.0:uw r22.0<4;4,1>:w 0:uw |
add (4) a0.4:uw r22.0<4;4,1>:w 512:uw |
//Set up header for Y,U and V data |
mov (8) r28<1>:ud r27<8;8,1>:ud |
mov (8) r37<1>:ud r27<8;8,1>:ud |
mov (2) r28.0<1>:d r7.0<2;2,1>:w { NoDDClr } //ORI Y (LUMA) = ORI |
mov (1) r37.0<1>:d r7.0<0;1,0>:w { NoDDClr } //H ORI (CHROMA) = H ORI |
shr (1) r37.1<1>:d r7.1<0;1,0>:w 1:w { NoDDClr, NoDDChk } //V ORI (CHROMA) = V ORI/2 |
mov (1) r28.2<1>:ud 0xF000F:ud { NoDDChk } // Y Block width and height (16x16) |
mov (1) r37.2<1>:ud 0x7000F:ud { NoDDChk } // UV Block width and height(16x8) |
// Unscramble, and pack data directly to MRFs |
// Data 16x16 block is divided as - |
// --------- |
// | 0 | |
// --------- |
// | 1 | |
// --------- |
// | 2 | |
// --------- |
// | 3 | |
// --------- |
// All sub-blocks are of size 16x4 |
// 0: ubBUFFER_0 |
// 1: ubBUFFER_1, ubBUFFER_0+16 |
// 2: ubBUFFER_2 |
// 3: ubBUFFER_3, ubBUFFER_2+16 |
//Y Rounding 16x4 top part |
add.sat (16) r[a0.1,0]<1>:uw r[a0.1,0]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,32]<1>:uw r[a0.1,32]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,64]<1>:uw r[a0.1,64]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,96]<1>:uw r[a0.1,96]<16;16,1>:uw 0x0080:uw |
// U Averaging and Rounding, 8x2 top part |
shr (8) uwBUFFER_5(0,0)<2> r[a0.2,0]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(1,0)<2> r[a0.2,32]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(2,0)<2> r[a0.2,64]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(3,0)<2> r[a0.2,96]<16;8,2>:uw 1:w |
add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> |
add.sat (8) r[a0.2,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw |
add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> |
add.sat (8) r[a0.2,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw |
// V Averaging and Rounding, 8x2 top part |
shr (8) uwBUFFER_5(4,0)<2> r[a0.0,0]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(5,0)<2> r[a0.0,32]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(6,0)<2> r[a0.0,64]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(7,0)<2> r[a0.0,96]<16;8,2>:uw 1:w |
add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> |
add.sat (8) r[a0.0,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw |
add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> |
add.sat (8) r[a0.0,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw |
add (4) a0.0:uw r22.0<4;4,1>:w 1024:uw //Update Buffer 2 pointers |
//Y Rounding, 16x4 bottom part |
add.sat (16) r[a0.5,0]<1>:uw r[a0.5,0]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,32]<1>:uw r[a0.5,32]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,64]<1>:uw r[a0.5,64]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,96]<1>:uw r[a0.5,96]<16;16,1>:uw 0x0080:uw |
// U Averaging and Rounding, 8x2 bottom part |
shr (8) uwBUFFER_5(0,0)<2> r[a0.6,0]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(1,0)<2> r[a0.6,32]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(2,0)<2> r[a0.6,64]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(3,0)<2> r[a0.6,96]<16;8,2>:uw 1:w |
add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> |
add.sat (8) r[a0.6,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw |
add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> |
add.sat (8) r[a0.6,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw |
// V Averaging and Rounding, 8x2 bottom part |
shr (8) uwBUFFER_5(4,0)<2> r[a0.4,0]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(5,0)<2> r[a0.4,32]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(6,0)<2> r[a0.4,64]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(7,0)<2> r[a0.4,96]<16;8,2>:uw 1:w |
add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> |
add.sat (8) r[a0.4,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw |
add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> |
add.sat (8) r[a0.4,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw |
add (4) a0.4:uw r22.0<4;4,1>:w 1536:uw //Update Buffer 3 pointers |
//Y Rounding 16x4 top part |
add.sat (16) r[a0.1,0]<1>:uw r[a0.1,0]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,32]<1>:uw r[a0.1,32]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,64]<1>:uw r[a0.1,64]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,96]<1>:uw r[a0.1,96]<16;16,1>:uw 0x0080:uw |
// U Averaging and Rounding, 8x2 top part |
shr (8) uwBUFFER_5(0,0)<2> r[a0.2,0]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(1,0)<2> r[a0.2,32]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(2,0)<2> r[a0.2,64]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(3,0)<2> r[a0.2,96]<16;8,2>:uw 1:w |
add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> |
add.sat (8) r[a0.2,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw |
add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> |
add.sat (8) r[a0.2,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw |
// V Averaging and Rounding, 8x2 top part |
shr (8) uwBUFFER_5(4,0)<2> r[a0.0,0]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(5,0)<2> r[a0.0,32]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(6,0)<2> r[a0.0,64]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(7,0)<2> r[a0.0,96]<16;8,2>:uw 1:w |
add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> |
add.sat (8) r[a0.0,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw |
add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> |
add.sat (8) r[a0.0,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw |
add (4) a0.0:uw r22.0<4;4,1>:w 1024:uw //Update Buffer 2 pointers |
//Y Rounding, 16x4 bottom part |
add.sat (16) r[a0.5,0]<1>:uw r[a0.5,0]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,32]<1>:uw r[a0.5,32]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,64]<1>:uw r[a0.5,64]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,96]<1>:uw r[a0.5,96]<16;16,1>:uw 0x0080:uw |
// U Averaging and Rounding, 8x2 bottom part |
shr (8) uwBUFFER_5(0,0)<2> r[a0.6,0]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(1,0)<2> r[a0.6,32]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(2,0)<2> r[a0.6,64]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(3,0)<2> r[a0.6,96]<16;8,2>:uw 1:w |
add (8) uwBUFFER_5(0,0)<2> uwBUFFER_5(0,0)<16;8,2> uwBUFFER_5(1,0)<16;8,2> |
add.sat (8) r[a0.6,0]<2>:uw uwBUFFER_5(0,0)<16;8,2> 0x0080:uw |
add (8) uwBUFFER_5(2,0)<2> uwBUFFER_5(2,0)<16;8,2> uwBUFFER_5(3,0)<16;8,2> |
add.sat (8) r[a0.6,64]<2>:uw uwBUFFER_5(2,0)<16;8,2> 0x0080:uw |
// V Averaging and Rounding, 8x2 bottom part |
shr (8) uwBUFFER_5(4,0)<2> r[a0.4,0]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(5,0)<2> r[a0.4,32]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(6,0)<2> r[a0.4,64]<16;8,2>:uw 1:w |
shr (8) uwBUFFER_5(7,0)<2> r[a0.4,96]<16;8,2>:uw 1:w |
add (8) uwBUFFER_5(4,0)<2> uwBUFFER_5(4,0)<16;8,2> uwBUFFER_5(5,0)<16;8,2> |
add.sat (8) r[a0.4,0]<2>:uw uwBUFFER_5(4,0)<16;8,2> 0x0080:uw |
add (8) uwBUFFER_5(6,0)<2> uwBUFFER_5(6,0)<16;8,2> uwBUFFER_5(7,0)<16;8,2> |
add.sat (8) r[a0.4,64]<2>:uw uwBUFFER_5(6,0)<16;8,2> 0x0080:uw |
add (4) a0.4:uw r22.0<4;4,1>:w 1536:uw //Update Buffer 3 pointers |
// restore pBUF_CHNL_TOP_8x4 and pBUF_CHNL_BOT_8x4 registers |
add (4) a0.0:uw r22.0<4;4,1>:w 0:uw |
add (4) a0.4:uw r22.0<4;4,1>:w 512:uw |
//Buffer 0 |
//Move Y to msg payload |
mov (16) mubMSGPAYLOAD0(0,0)<1> r[a0.1, 1]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(0,16)<1> r[a0.1, 33]<32;16,2>:ub { NoDDChk } |
mov (16) mubMSGPAYLOAD0(1,0)<1> r[a0.1, 65]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(1,16)<1> r[a0.1, 97]<32;16,2>:ub { NoDDChk } |
//Move U to msg payload |
mov (8) mubMSGPAYLOAD1(0,0)<2> r[a0.2, 1]<32;8,4>:ub { NoDDClr } |
mov (8) mubMSGPAYLOAD1(0,16)<2> r[a0.2, 65]<32;8,4>:ub { NoDDClr, NoDDChk } |
//Move V to msg payload |
mov (8) mubMSGPAYLOAD1(0,1)<2> r[a0.0, 1]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(0,17)<2> r[a0.0, 65]<32;8,4>:ub { NoDDChk } |
add (4) a0.0:uw r22.0<4;4,1>:w 1024:uw //Update Buffer 2 pointers |
//Buffer 1 |
mov (16) mubMSGPAYLOAD0(2,0)<1> r[a0.5, 1]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(2,16)<1> r[a0.5, 33]<32;16,2>:ub { NoDDChk } |
mov (16) mubMSGPAYLOAD0(3,0)<1> r[a0.5, 65]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(3,16)<1> r[a0.5, 97]<32;16,2>:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD1(1,0)<2> r[a0.6, 1]<32;8,4>:ub { NoDDClr } |
mov (8) mubMSGPAYLOAD1(1,16)<2> r[a0.6, 65]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(1,1)<2> r[a0.4, 1]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(1,17)<2> r[a0.4, 65]<32;8,4>:ub { NoDDChk } |
add (4) a0.4:uw r22.0<4;4,1>:w 1536:uw //Update Buffer 3 pointers |
//Buffer 2 |
mov (16) mubMSGPAYLOAD0(4,0)<1> r[a0.1, 1]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(4,16)<1> r[a0.1, 33]<32;16,2>:ub { NoDDChk } |
mov (16) mubMSGPAYLOAD0(5,0)<1> r[a0.1, 65]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(5,16)<1> r[a0.1, 97]<32;16,2>:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD1(2,0)<2> r[a0.2, 1]<32;8,4>:ub { NoDDClr } |
mov (8) mubMSGPAYLOAD1(2,16)<2> r[a0.2, 65]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(2,1)<2> r[a0.0, 1]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(2,17)<2> r[a0.0, 65]<32;8,4>:ub { NoDDChk } |
//Buffer 3 |
mov (16) mubMSGPAYLOAD0(6,0)<1> r[a0.5, 1]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(6,16)<1> r[a0.5, 33]<32;16,2>:ub { NoDDChk } |
mov (16) mubMSGPAYLOAD0(7,0)<1> r[a0.5, 65]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(7,16)<1> r[a0.5, 97]<32;16,2>:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD1(3,0)<2> r[a0.6, 1]<32;8,4>:ub { NoDDClr } |
mov (8) mubMSGPAYLOAD1(3,16)<2> r[a0.6, 65]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(3,1)<2> r[a0.4, 1]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(3,17)<2> r[a0.4, 65]<32;8,4>:ub { NoDDChk } |
//=========================================================================== |
send (1) null<1>:d r28 0x5 0x120A8018:ud |
send (1) null<1>:d r37 0x5 0xA0A8019:ud |
/drivers/video/i965/shaders/post_processing/gen7/Save_AVS_PA.g4a |
---|
0,0 → 1,625 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 174 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// Module name: Save_AVS_PA.asm |
// |
// Save PA 422 frame data block of size 16x16 |
// |
// To save 16x16 block (32x16 bytes of YUYV) we need 2 send instructions with of size 16x16 each. |
// ------------------------------- |
// | 16x16 | 16x16 | |
// | YUYV | YUYV | |
// ------------------------------- |
// these 2 sends are replaced by 8 32x2 sends to improve performance |
// Module name: Save.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//Msg payload buffers; upto 4 full-size messages can be written |
.declare mudMSGPAYLOAD0 Base=r29.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD1 Base=r38.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD2 Base=r47.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD3 Base=r56.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare muwMSGPAYLOAD0 Base=r29.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD1 Base=r38.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD2 Base=r47.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD3 Base=r56.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mubMSGPAYLOAD0 Base=r29.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD1 Base=r38.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD2 Base=r47.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD3 Base=r56.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD4 Base=r32.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD5 Base=r41.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD6 Base=r50.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD7 Base=r59.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
// the r17 register (nTEMP0) is originally defined from "Common.inc" |
// instead of re-defining a nTEMP0 here, we use "SAVE_RGB" suffix for its naming |
.declare uwTemp0 Base=r17.0 ElementSize=2 Type=uw |
//_SAVE_INC_ |
//wBUFF_CHNL_PTR points to buffer 0. |
//Add appropriate offsets to get pointers for all buffers (1,2,3). |
//Offset is zero for buffer 0. |
add (4) a0.0:uw r22.0<4;4,1>:w 0:uw |
//Set DEST pointers according to output packing i.e. YUYV, YVYU, UYVY, VYUY |
add (4) a0.4<1>:w r2.28<4;4,1>:ub 928:uw |
shl (1) r27.0<1>:d r7.0<0;1,0>:w 1:w { NoDDClr } // H. block origin need to be 2 times |
mov (1) r27.1<1>:d r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin (1st quadrant) |
mov (1) r27.2<1>:ud 0x1001F:ud { NoDDChk } // Block width and height (32x2) |
// Rounding |
// left |
add.sat (4) r[a0.0, 0]<2>:uw r[a0.0, 0]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,32]<2>:uw r[a0.0, 32]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,64]<2>:uw r[a0.0, 64]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,96]<2>:uw r[a0.0, 96]<8;4,2>:uw 0x0080:uw |
add.sat (8) r[a0.1, 0]<1>:uw r[a0.1, 0]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,32]<1>:uw r[a0.1, 32]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,64]<1>:uw r[a0.1, 64]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,96]<1>:uw r[a0.1, 96]<8;8,1>:uw 0x0080:uw |
add.sat (4) r[a0.2, 0]<2>:uw r[a0.2, 0]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,32]<2>:uw r[a0.2, 32]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,64]<2>:uw r[a0.2, 64]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,96]<2>:uw r[a0.2, 96]<8;4,2>:uw 0x0080:uw |
// right |
add.sat (4) r[a0.0,16]<2>:uw r[a0.0, 16]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,48]<2>:uw r[a0.0, 48]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,80]<2>:uw r[a0.0, 80]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,112]<2>:uw r[a0.0, 112]<8;4,2>:uw 0x0080:uw |
add.sat (8) r[a0.1, 16]<1>:uw r[a0.1, 16]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,48]<1>:uw r[a0.1, 48]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,80]<1>:uw r[a0.1, 80]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,112]<1>:uw r[a0.1, 112]<8;8,1>:uw 0x0080:uw |
add.sat (4) r[a0.2, 16]<2>:uw r[a0.2, 16]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,48]<2>:uw r[a0.2, 48]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,80]<2>:uw r[a0.2, 80]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,112]<2>:uw r[a0.2, 112]<8;4,2>:uw 0x0080:uw |
add (4) a0.0:uw r22.0<4;4,1>:w 512:uw |
// left |
add.sat (4) r[a0.0, 0]<2>:uw r[a0.0, 0]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,32]<2>:uw r[a0.0, 32]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,64]<2>:uw r[a0.0, 64]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,96]<2>:uw r[a0.0, 96]<8;4,2>:uw 0x0080:uw |
add.sat (8) r[a0.1, 0]<1>:uw r[a0.1, 0]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,32]<1>:uw r[a0.1, 32]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,64]<1>:uw r[a0.1, 64]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,96]<1>:uw r[a0.1, 96]<8;8,1>:uw 0x0080:uw |
add.sat (4) r[a0.2, 0]<2>:uw r[a0.2, 0]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,32]<2>:uw r[a0.2, 32]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,64]<2>:uw r[a0.2, 64]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,96]<2>:uw r[a0.2, 96]<8;4,2>:uw 0x0080:uw |
// right |
add.sat (4) r[a0.0,16]<2>:uw r[a0.0, 16]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,48]<2>:uw r[a0.0, 48]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,80]<2>:uw r[a0.0, 80]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,112]<2>:uw r[a0.0, 112]<8;4,2>:uw 0x0080:uw |
add.sat (8) r[a0.1, 16]<1>:uw r[a0.1, 16]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,48]<1>:uw r[a0.1, 48]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,80]<1>:uw r[a0.1, 80]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,112]<1>:uw r[a0.1, 112]<8;8,1>:uw 0x0080:uw |
add.sat (4) r[a0.2, 16]<2>:uw r[a0.2, 16]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,48]<2>:uw r[a0.2, 48]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,80]<2>:uw r[a0.2, 80]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,112]<2>:uw r[a0.2, 112]<8;4,2>:uw 0x0080:uw |
add (4) a0.0:uw r22.0<4;4,1>:w 1024:uw |
// left |
add.sat (4) r[a0.0, 0]<2>:uw r[a0.0, 0]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,32]<2>:uw r[a0.0, 32]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,64]<2>:uw r[a0.0, 64]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,96]<2>:uw r[a0.0, 96]<8;4,2>:uw 0x0080:uw |
add.sat (8) r[a0.1, 0]<1>:uw r[a0.1, 0]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,32]<1>:uw r[a0.1, 32]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,64]<1>:uw r[a0.1, 64]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,96]<1>:uw r[a0.1, 96]<8;8,1>:uw 0x0080:uw |
add.sat (4) r[a0.2, 0]<2>:uw r[a0.2, 0]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,32]<2>:uw r[a0.2, 32]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,64]<2>:uw r[a0.2, 64]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,96]<2>:uw r[a0.2, 96]<8;4,2>:uw 0x0080:uw |
// right |
add.sat (4) r[a0.0,16]<2>:uw r[a0.0, 16]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,48]<2>:uw r[a0.0, 48]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,80]<2>:uw r[a0.0, 80]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,112]<2>:uw r[a0.0, 112]<8;4,2>:uw 0x0080:uw |
add.sat (8) r[a0.1, 16]<1>:uw r[a0.1, 16]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,48]<1>:uw r[a0.1, 48]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,80]<1>:uw r[a0.1, 80]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,112]<1>:uw r[a0.1, 112]<8;8,1>:uw 0x0080:uw |
add.sat (4) r[a0.2, 16]<2>:uw r[a0.2, 16]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,48]<2>:uw r[a0.2, 48]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,80]<2>:uw r[a0.2, 80]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,112]<2>:uw r[a0.2, 112]<8;4,2>:uw 0x0080:uw |
add (4) a0.0:uw r22.0<4;4,1>:w 1536:uw |
// left |
add.sat (4) r[a0.0, 0]<2>:uw r[a0.0, 0]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,32]<2>:uw r[a0.0, 32]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,64]<2>:uw r[a0.0, 64]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,96]<2>:uw r[a0.0, 96]<8;4,2>:uw 0x0080:uw |
add.sat (8) r[a0.1, 0]<1>:uw r[a0.1, 0]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,32]<1>:uw r[a0.1, 32]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,64]<1>:uw r[a0.1, 64]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,96]<1>:uw r[a0.1, 96]<8;8,1>:uw 0x0080:uw |
add.sat (4) r[a0.2, 0]<2>:uw r[a0.2, 0]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,32]<2>:uw r[a0.2, 32]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,64]<2>:uw r[a0.2, 64]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,96]<2>:uw r[a0.2, 96]<8;4,2>:uw 0x0080:uw |
// right |
add.sat (4) r[a0.0,16]<2>:uw r[a0.0, 16]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,48]<2>:uw r[a0.0, 48]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,80]<2>:uw r[a0.0, 80]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.0,112]<2>:uw r[a0.0, 112]<8;4,2>:uw 0x0080:uw |
add.sat (8) r[a0.1, 16]<1>:uw r[a0.1, 16]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,48]<1>:uw r[a0.1, 48]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,80]<1>:uw r[a0.1, 80]<8;8,1>:uw 0x0080:uw |
add.sat (8) r[a0.1,112]<1>:uw r[a0.1, 112]<8;8,1>:uw 0x0080:uw |
add.sat (4) r[a0.2, 16]<2>:uw r[a0.2, 16]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,48]<2>:uw r[a0.2, 48]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,80]<2>:uw r[a0.2, 80]<8;4,2>:uw 0x0080:uw |
add.sat (4) r[a0.2,112]<2>:uw r[a0.2, 112]<8;4,2>:uw 0x0080:uw |
add (4) a0.0:uw r22.0<4;4,1>:w 2048:uw |
// restore pointer |
add (4) a0.0:uw r22.0<4;4,1>:w 0:uw |
mov (8) r28<1>:ud r27<8;8,1>:ud |
mov (8) r37<1>:ud r27<8;8,1>:ud |
add (1) r37.1<1>:d r27.1<0;1,0>:d 2:d // Point to 2nd part |
mov (8) r[a0.6, 0]<4>:ub r[a0.0, 1]<32;8,4>:ub { NoDDClr } |
mov (8) r[a0.6, 32]<4>:ub r[a0.0,33]<32;8,4>:ub { NoDDClr } |
mov (16) r[a0.4, 0]<2>:ub r[a0.1, 1]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (16) r[a0.4, 32]<2>:ub r[a0.1,33]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (8) r[a0.5, 0]<4>:ub r[a0.2, 1]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.5, 32]<4>:ub r[a0.2,33]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.6, 288]<4>:ub r[a0.0,65]<32;8,4>:ub { NoDDClr } |
mov (8) r[a0.6, 320]<4>:ub r[a0.0,97]<32;8,4>:ub { NoDDClr } |
mov (16) r[a0.4,288]<2>:ub r[a0.1,65]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (16) r[a0.4,320]<2>:ub r[a0.1,97]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (8) r[a0.5,288]<4>:ub r[a0.2,65]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.5,320]<4>:ub r[a0.2,97]<32;8,4>:ub { NoDDChk } |
send (1) null<1>:d r28 0x5 0x60A8018:ud |
send (1) null<1>:d r37 0x5 0x60A8018:ud |
// restore pointer |
add (4) a0.0:uw r22.0<4;4,1>:w 512:uw |
add (1) r28.1<1>:d r27.1<0;1,0>:d 4:d // Point to 2nd part |
add (1) r37.1<1>:d r27.1<0;1,0>:d 6:d // Point to 2nd part |
mov (8) r[a0.6, 0]<4>:ub r[a0.0, 1]<32;8,4>:ub { NoDDClr } |
mov (8) r[a0.6, 32]<4>:ub r[a0.0,33]<32;8,4>:ub { NoDDClr } |
mov (16) r[a0.4, 0]<2>:ub r[a0.1, 1]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (16) r[a0.4, 32]<2>:ub r[a0.1,33]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (8) r[a0.5, 0]<4>:ub r[a0.2, 1]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.5, 32]<4>:ub r[a0.2,33]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.6, 288]<4>:ub r[a0.0,65]<32;8,4>:ub { NoDDClr } |
mov (8) r[a0.6, 320]<4>:ub r[a0.0,97]<32;8,4>:ub { NoDDClr } |
mov (16) r[a0.4,288]<2>:ub r[a0.1,65]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (16) r[a0.4,320]<2>:ub r[a0.1,97]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (8) r[a0.5,288]<4>:ub r[a0.2,65]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.5,320]<4>:ub r[a0.2,97]<32;8,4>:ub { NoDDChk } |
send (1) null<1>:d r28 0x5 0x60A8018:ud |
send (1) null<1>:d r37 0x5 0x60A8018:ud |
// restore pointer |
add (4) a0.0:uw r22.0<4;4,1>:w 1024:uw |
add (1) r28.1<1>:d r27.1<0;1,0>:d 8:d // Point to 2nd part |
add (1) r37.1<1>:d r27.1<0;1,0>:d 10:d // Point to 2nd part |
mov (8) r[a0.6, 0]<4>:ub r[a0.0, 1]<32;8,4>:ub { NoDDClr } |
mov (8) r[a0.6, 32]<4>:ub r[a0.0,33]<32;8,4>:ub { NoDDClr } |
mov (16) r[a0.4, 0]<2>:ub r[a0.1, 1]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (16) r[a0.4, 32]<2>:ub r[a0.1,33]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (8) r[a0.5, 0]<4>:ub r[a0.2, 1]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.5, 32]<4>:ub r[a0.2,33]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.6, 288]<4>:ub r[a0.0,65]<32;8,4>:ub { NoDDClr } |
mov (8) r[a0.6, 320]<4>:ub r[a0.0,97]<32;8,4>:ub { NoDDClr } |
mov (16) r[a0.4,288]<2>:ub r[a0.1,65]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (16) r[a0.4,320]<2>:ub r[a0.1,97]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (8) r[a0.5,288]<4>:ub r[a0.2,65]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.5,320]<4>:ub r[a0.2,97]<32;8,4>:ub { NoDDChk } |
send (1) null<1>:d r28 0x5 0x60A8018:ud |
send (1) null<1>:d r37 0x5 0x60A8018:ud |
// restore pointer |
add (4) a0.0:uw r22.0<4;4,1>:w 1536:uw |
add (1) r28.1<1>:d r27.1<0;1,0>:d 12:d // Point to 2nd part |
add (1) r37.1<1>:d r27.1<0;1,0>:d 14:d // Point to 2nd part |
mov (8) r[a0.6, 0]<4>:ub r[a0.0, 1]<32;8,4>:ub { NoDDClr } |
mov (8) r[a0.6, 32]<4>:ub r[a0.0,33]<32;8,4>:ub { NoDDClr } |
mov (16) r[a0.4, 0]<2>:ub r[a0.1, 1]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (16) r[a0.4, 32]<2>:ub r[a0.1,33]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (8) r[a0.5, 0]<4>:ub r[a0.2, 1]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.5, 32]<4>:ub r[a0.2,33]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.6, 288]<4>:ub r[a0.0,65]<32;8,4>:ub { NoDDClr } |
mov (8) r[a0.6, 320]<4>:ub r[a0.0,97]<32;8,4>:ub { NoDDClr } |
mov (16) r[a0.4,288]<2>:ub r[a0.1,65]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (16) r[a0.4,320]<2>:ub r[a0.1,97]<32;16,2>:ub { NoDDClr, NoDDChk } |
mov (8) r[a0.5,288]<4>:ub r[a0.2,65]<32;8,4>:ub { NoDDChk } |
mov (8) r[a0.5,320]<4>:ub r[a0.2,97]<32;8,4>:ub { NoDDChk } |
send (1) null<1>:d r28 0x5 0x60A8018:ud |
send (1) null<1>:d r37 0x5 0x60A8018:ud |
/drivers/video/i965/shaders/post_processing/gen7/Save_AVS_PL3.g4a |
---|
0,0 → 1,564 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 84 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// Module name: Save_AVS_PL3.asm |
// |
// Save PL3 420 frame data block of size 16x16 |
// |
// To save 16x16 block (16x16 byte of Y and 8x8 byte of U and V each) we need 3 send instructions with one of size 16x16 and two of size 8x8. |
// ----------------- |
// | 16x16 Y | |
// | | |
// ----------------- |
// | 8x8 U | |
// --------- |
// | 8x8 V | |
// --------- |
//----------------------------------------------------------------- |
//The layout of data is as follows: |
//mMSGHDR0 : Y data header (16x16) |
//mubMSGPAYLOAD0 : Y data payload (8 GRFs) |
//mMSGHDR1 : U data header (8x8) |
//mubMSGPAYLOAD1 : U data payload (2 GRFs) |
//mMSGHDR2 : V data header (8x8) |
//mubMSGPAYLOAD2 : V data payload (2 GRFs) |
//------------------------------------------------------------------ |
// Module name: Save.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//Msg payload buffers; upto 4 full-size messages can be written |
.declare mudMSGPAYLOAD0 Base=r29.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD1 Base=r38.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD2 Base=r47.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD3 Base=r56.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare muwMSGPAYLOAD0 Base=r29.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD1 Base=r38.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD2 Base=r47.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD3 Base=r56.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mubMSGPAYLOAD0 Base=r29.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD1 Base=r38.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD2 Base=r47.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD3 Base=r56.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD4 Base=r32.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD5 Base=r41.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD6 Base=r50.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD7 Base=r59.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
// the r17 register (nTEMP0) is originally defined from "Common.inc" |
// instead of re-defining a nTEMP0 here, we use "SAVE_RGB" suffix for its naming |
.declare uwTemp0 Base=r17.0 ElementSize=2 Type=uw |
//_SAVE_INC_ |
// At the save module we have all 8 address sub-registers available. |
// So we will use PING-PONG type of scheme to save the data using |
// pointers pBUF_CHNL_TOP_8x4 and pBUF_CHNL_BOT_8x4. This will help |
// reduce dependency. - rT |
//wBUFF_CHNL_PTR points to either buffer 0 or buffer 4. |
//Add appropriate offsets to get pointers for all buffers (1,2,3 or 5). |
//Offsets are zero for buffer 0 and buffer 4. |
add (4) a0.0:uw r22.0<4;4,1>:w 0:uw |
add (4) a0.4:uw r22.0<4;4,1>:w 512:uw |
//Set up header for Y,U and V data |
mov (8) r28<1>:ud r27<8;8,1>:ud |
mov (8) r37<1>:ud r27<8;8,1>:ud |
mov (8) r46<1>:ud r27<8;8,1>:ud |
mov (2) r28.0<1>:d r7.0<2;2,1>:w { NoDDClr } //ORI Y (LUMA) = ORI |
shr (2) r37.0<1>:d r7.0<2;2,1>:w 1:w { NoDDClr } //H/V ORI U = H/V ORI/2 |
shr (2) r46.0<1>:d r7.0<2;2,1>:w 1:w { NoDDClr } //H/V ORI V = H/V ORI/2 |
mov (1) r28.2<1>:ud 0xF000F:ud { NoDDChk } // Y Block width and height (16x16) |
mov (1)r37.2<1>:ud 0x70007:ud { NoDDChk } // U Block width and height (8x8) |
mov (1)r46.2<1>:ud 0x70007:ud { NoDDChk } // V Block width and height (8x8) |
// Unscramble, and pack data directly to MRFs |
// Data 16x16 block is divided as - |
// --------- |
// | 0 | |
// --------- |
// | 1 | |
// --------- |
// | 2 | |
// --------- |
// | 3 | |
// --------- |
// All sub-blocks are of size 16x4 |
// 0: ubBUFFER_0 |
// 1: ubBUFFER_1, ubBUFFER_0+16 |
// 2: ubBUFFER_2 |
// 3: ubBUFFER_3, ubBUFFER_2+16 |
//Y Rounding, first |
add.sat (16) r[a0.1,0]<1>:uw r[a0.1,0]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,32]<1>:uw r[a0.1,32]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,64]<1>:uw r[a0.1,64]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,96]<1>:uw r[a0.1,96]<16;16,1>:uw 0x0080:uw |
// U rounding |
add.sat (8) r[a0.2,0]<2>:uw r[a0.2,0]<16;8,2>:uw 0x0080:uw |
add.sat (8) r[a0.2,64]<2>:uw r[a0.2,64]<16;8,2>:uw 0x0080:uw |
// V rounding |
add.sat (8) r[a0.0,0]<2>:uw r[a0.0,0]<16;8,2>:uw 0x0080:uw |
add.sat (8) r[a0.0,64]<2>:uw r[a0.0,64]<16;8,2>:uw 0x0080:uw |
add (4) a0.0:uw r22.0<4;4,1>:w 1024:uw //Update Buffer 2 pointers |
//Y Rounding, second |
add.sat (16) r[a0.5,0]<1>:uw r[a0.5,0]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,32]<1>:uw r[a0.5,32]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,64]<1>:uw r[a0.5,64]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,96]<1>:uw r[a0.5,96]<16;16,1>:uw 0x0080:uw |
// U rounding |
add.sat (8) r[a0.6,0]<2>:uw r[a0.6,0]<16;8,2>:uw 0x0080:uw |
add.sat (8) r[a0.6,64]<2>:uw r[a0.6,64]<16;8,2>:uw 0x0080:uw |
// V rounding |
add.sat (8) r[a0.4,0]<2>:uw r[a0.4,0]<16;8,2>:uw 0x0080:uw |
add.sat (8) r[a0.4,64]<2>:uw r[a0.4,64]<16;8,2>:uw 0x0080:uw |
add (4) a0.4:uw r22.0<4;4,1>:w 1536:uw //Update Buffer 3 pointers |
//Y Rounding, third |
add.sat (16) r[a0.1,0]<1>:uw r[a0.1,0]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,32]<1>:uw r[a0.1,32]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,64]<1>:uw r[a0.1,64]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.1,96]<1>:uw r[a0.1,96]<16;16,1>:uw 0x0080:uw |
// U rounding |
add.sat (8) r[a0.2,0]<2>:uw r[a0.2,0]<16;8,2>:uw 0x0080:uw |
add.sat (8) r[a0.2,64]<2>:uw r[a0.2,64]<16;8,2>:uw 0x0080:uw |
// V rounding |
add.sat (8) r[a0.0,0]<2>:uw r[a0.0,0]<16;8,2>:uw 0x0080:uw |
add.sat (8) r[a0.0,64]<2>:uw r[a0.0,64]<16;8,2>:uw 0x0080:uw |
//Y Rounding, fourth |
add.sat (16) r[a0.5,0]<1>:uw r[a0.5,0]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,32]<1>:uw r[a0.5,32]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,64]<1>:uw r[a0.5,64]<16;16,1>:uw 0x0080:uw |
add.sat (16) r[a0.5,96]<1>:uw r[a0.5,96]<16;16,1>:uw 0x0080:uw |
// U rounding |
add.sat (8) r[a0.6,0]<2>:uw r[a0.6,0]<16;8,2>:uw 0x0080:uw |
add.sat (8) r[a0.6,64]<2>:uw r[a0.6,64]<16;8,2>:uw 0x0080:uw |
// V rounding |
add.sat (8) r[a0.4,0]<2>:uw r[a0.4,0]<16;8,2>:uw 0x0080:uw |
add.sat (8) r[a0.4,64]<2>:uw r[a0.4,64]<16;8,2>:uw 0x0080:uw |
// restore the TOP and BOT pointers |
add (4) a0.0:uw r22.0<4;4,1>:w 0:uw |
add (4) a0.4:uw r22.0<4;4,1>:w 512:uw |
//Buffer 0 |
//Move Y to msg payload |
mov (16) mubMSGPAYLOAD0(0,0)<1> r[a0.1, 1]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(0,16)<1> r[a0.1, 33]<32;16,2>:ub { NoDDChk } |
mov (16) mubMSGPAYLOAD0(1,0)<1> r[a0.1, 65]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(1,16)<1> r[a0.1, 97]<32;16,2>:ub { NoDDChk } |
//Move U to msg payload |
mov (8) mubMSGPAYLOAD1(0,0)<1> r[a0.2, 1]<32;8,4>:ub { NoDDClr } |
mov (8) mubMSGPAYLOAD1(0,8)<1> r[a0.2, 65]<32;8,4>:ub { NoDDClr, NoDDChk } |
//Move V to msg payload |
mov (8) mubMSGPAYLOAD2(0,0)<1> r[a0.0, 1]<32;8,4>:ub { NoDDClr } |
mov (8) mubMSGPAYLOAD2(0,8)<1> r[a0.0, 65]<32;8,4>:ub { NoDDClr, NoDDChk } |
add (4) a0.0:uw r22.0<4;4,1>:w 1024:uw //Update Buffer 2 pointers |
//Buffer 1 |
mov (16) mubMSGPAYLOAD0(2,0)<1> r[a0.5, 1]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(2,16)<1> r[a0.5, 33]<32;16,2>:ub { NoDDChk } |
mov (16) mubMSGPAYLOAD0(3,0)<1> r[a0.5, 65]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(3,16)<1> r[a0.5, 97]<32;16,2>:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD1(0,16)<1> r[a0.6, 1]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(0,24)<1> r[a0.6, 65]<32;8,4>:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD2(0,16)<1> r[a0.4, 1]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(0,24)<1> r[a0.4, 65]<32;8,4>:ub { NoDDChk } |
add (4) a0.4:uw r22.0<4;4,1>:w 1536:uw //Update Buffer 3 pointers |
//Buffer 2 |
mov (16) mubMSGPAYLOAD0(4,0)<1> r[a0.1, 1]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(4,16)<1> r[a0.1, 33]<32;16,2>:ub { NoDDChk } |
mov (16) mubMSGPAYLOAD0(5,0)<1> r[a0.1, 65]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(5,16)<1> r[a0.1, 97]<32;16,2>:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD1(1,0)<1> r[a0.2, 1]<32;8,4>:ub { NoDDClr } |
mov (8) mubMSGPAYLOAD1(1,8)<1> r[a0.2, 65]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(1,0)<1> r[a0.0, 1]<32;8,4>:ub { NoDDClr } |
mov (8) mubMSGPAYLOAD2(1,8)<1> r[a0.0, 65]<32;8,4>:ub { NoDDClr, NoDDChk } |
//Buffer 3 |
mov (16) mubMSGPAYLOAD0(6,0)<1> r[a0.5, 1]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(6,16)<1> r[a0.5, 33]<32;16,2>:ub { NoDDChk } |
mov (16) mubMSGPAYLOAD0(7,0)<1> r[a0.5, 65]<32;16,2>:ub { NoDDClr } |
mov (16) mubMSGPAYLOAD0(7,16)<1> r[a0.5, 97]<32;16,2>:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD1(1,16)<1> r[a0.6, 1]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(1,24)<1> r[a0.6, 65]<32;8,4>:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD2(1,16)<1> r[a0.4, 1]<32;8,4>:ub { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(1,24)<1> r[a0.4, 65]<32;8,4>:ub { NoDDChk } |
//=========================================================================== |
send (1) null<1>:d r28 0x5 0x120A8018:ud |
send (1) null<1>:d r37 0x5 0x60A8019:ud |
send (1) null<1>:d r46 0x5 0x60A801A:ud |
/drivers/video/i965/shaders/post_processing/gen7/Save_AVS_RGB.g4a |
---|
0,0 → 1,668 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 198 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// Module name: Save_AVS_RGB.asm |
// |
// Save packed ARGB 444 frame data block of size 16x16 |
// |
// To save 16x16 block (64x16 byte layout for ARGB8888) we need 4 send instructions with 16x16 in each |
// ----------------- |
// | 0 | 1 | 2 | 3 | |
// ----------------- |
// the 4 16x16 block send has been replaced by 16 32x2 sends to get better performance |
// Module name: Save.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//Msg payload buffers; upto 4 full-size messages can be written |
.declare mudMSGPAYLOAD0 Base=r29.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD1 Base=r38.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD2 Base=r47.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mudMSGPAYLOAD3 Base=r56.0 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare muwMSGPAYLOAD0 Base=r29.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD1 Base=r38.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD2 Base=r47.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare muwMSGPAYLOAD3 Base=r56.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mubMSGPAYLOAD0 Base=r29.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD1 Base=r38.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD2 Base=r47.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD3 Base=r56.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD4 Base=r32.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD5 Base=r41.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD6 Base=r50.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare mubMSGPAYLOAD7 Base=r59.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
// the r17 register (nTEMP0) is originally defined from "Common.inc" |
// instead of re-defining a nTEMP0 here, we use "SAVE_RGB" suffix for its naming |
.declare uwTemp0 Base=r17.0 ElementSize=2 Type=uw |
//_SAVE_INC_ |
// At the save module we have all 8 address sub-registers available. |
// So we will use PING-PONG type of scheme to save the data using |
// pointers pBUF_CHNL_TOP_8x4 and pBUF_CHNL_BOT_8x4. This will help |
// reduce dependency. - rT |
// channel switching based on bit 0 of uWRGB_BGR_CH_SWITCH |
// if channel swap? |
and.nz.f0.0 null<1>:w r2.3<0;1,0>:uw 0x01:w |
//wBUFF_CHNL_PTR points to either buffer 0 or buffer 4. |
//Add appropriate offsets to get pointers for all buffers (1,2,3 or 5). |
//Offsets are zero for buffer 0 and buffer 4. |
add (4) a0.0:uw r22.0<4;4,1>:w 0:uw |
// pointer swap |
(f0.0) mov (1) uwTemp0<1> a0.0:uw |
(f0.0) mov (1) a0.0:uw a0.2:uw |
(f0.0) mov (1) a0.2:uw uwTemp0<0;1,0> |
shl (1) r27.0<1>:d r7.0<0;1,0>:w 2:w { NoDDClr } // H. block origin need to be quadrupled |
mov (1) r27.1<1>:d r7.1<0;1,0>:w { NoDDClr, NoDDChk } // Block origin (1st quadrant) |
mov (1) r27.2<1>:ud 0x1001F:ud { NoDDChk } // Block width and height (32x2) |
add (4) a0.4:uw a0.0<4;4,1>:w r22.8<0;2,1>:w |
mov (8) r28<1>:ud r27<8;8,1>:ud |
mov (8) r37<1>:ud r27<8;8,1>:ud |
mov (8) r46<1>:ud r27<8;8,1>:ud |
mov (8) r55<1>:ud r27<8;8,1>:ud |
mov (8) r31<1>:ud r27<8;8,1>:ud |
mov (8) r40<1>:ud r27<8;8,1>:ud |
mov (8) r49<1>:ud r27<8;8,1>:ud |
mov (8) r58<1>:ud r27<8;8,1>:ud |
//for BUFFER 0 |
add (1) r37.1<1>:d r27.1<0;1,0>:d 2:d |
add (1) r46.0<1>:d r27.0<0;1,0>:d 32:d |
add (1) r55.0<1>:d r27.0<0;1,0>:d 32:d |
add (1) r55.1<1>:d r27.1<0;1,0>:d 2:d |
// for BUFFER 1 |
add (1) r31.1<1>:d r27.1<0;1,0>:d 4:d |
add (1) r40.1<1>:d r27.1<0;1,0>:d 6:d |
add (1) r49.0<1>:d r27.0<0;1,0>:d 32:d |
add (1) r49.1<1>:d r27.1<0;1,0>:d 4:d |
add (1) r58.0<1>:d r27.0<0;1,0>:d 32:d |
add (1) r58.1<1>:d r27.1<0;1,0>:d 6:d |
// write Buf_0 to 1st quarter of four horizontal output blocks |
// Please note the scattered order of NODDCLR, NODDCHK flags. Since the sub-registers |
// of destination reg are not updated at one place and hence even flags are scattered. -rT |
mov (8) mubMSGPAYLOAD0(0, 0)<4> r[a0.2, 1]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD0(0, 1)<4> r[a0.1, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD0(0, 2)<4> r[a0.0, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD0(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD0(1, 0)<4> r[a0.2, 33]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD0(1, 1)<4> r[a0.1, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD0(1, 2)<4> r[a0.0, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD0(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD1(0, 0)<4> r[a0.6, 1]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD1(0, 1)<4> r[a0.5, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(0, 2)<4> r[a0.4, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD1(1, 0)<4> r[a0.6, 33]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD1(1, 1)<4> r[a0.5, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(1, 2)<4> r[a0.4, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD2(0, 0)<4> r[a0.2, 17]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD2(0, 1)<4> r[a0.1, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(0, 2)<4> r[a0.0, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD2(1, 0)<4> r[a0.2, 49]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD2(1, 1)<4> r[a0.1, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(1, 2)<4> r[a0.0, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD3(0, 0)<4> r[a0.6, 17]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD3(0, 1)<4> r[a0.5, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD3(0, 2)<4> r[a0.4, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD3(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD3(1, 0)<4> r[a0.6, 49]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD3(1, 1)<4> r[a0.5, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD3(1, 2)<4> r[a0.4, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD3(1, 3)<4> r2.31:ub { NoDDChk } |
// write Buf_1 to 2nd quarter of four horizontal output blocks |
add (4) a0.0:uw r22.0<4;4,1>:w 512:uw |
// pointer swap |
(f0.0) mov (1) uwTemp0<1> a0.0:uw |
(f0.0) mov (1) a0.0:uw a0.2:uw |
(f0.0) mov (1) a0.2:uw uwTemp0<0;1,0> |
add (4) a0.4:uw a0.0<4;4,1>:w r22.8<0;2,1>:w |
mov (8) mubMSGPAYLOAD4(0, 0)<4> r[a0.2, 1]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD4(0, 1)<4> r[a0.1, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD4(0, 2)<4> r[a0.0, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD4(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD4(1, 0)<4> r[a0.2, 33]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD4(1, 1)<4> r[a0.1, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD4(1, 2)<4> r[a0.0, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD4(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD5(0, 0)<4> r[a0.6, 1]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD5(0, 1)<4> r[a0.5, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD5(0, 2)<4> r[a0.4, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD5(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD5(1, 0)<4> r[a0.6, 33]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD5(1, 1)<4> r[a0.5, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD5(1, 2)<4> r[a0.4, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD5(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD6(0, 0)<4> r[a0.2, 17]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD6(0, 1)<4> r[a0.1, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD6(0, 2)<4> r[a0.0, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD6(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD6(1, 0)<4> r[a0.2, 49]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD6(1, 1)<4> r[a0.1, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD6(1, 2)<4> r[a0.0, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD6(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD7(0, 0)<4> r[a0.6, 17]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD7(0, 1)<4> r[a0.5, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD7(0, 2)<4> r[a0.4, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD7(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD7(1, 0)<4> r[a0.6, 49]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD7(1, 1)<4> r[a0.5, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD7(1, 2)<4> r[a0.4, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD7(1, 3)<4> r2.31:ub { NoDDChk } |
// send buffer 0 and buffer 1 |
send (1) null<1>:d r28 0x5 0x60A8018:ud |
send (1) null<1>:d r37 0x5 0x60A8018:ud |
send (1) null<1>:d r46 0x5 0x60A8018:ud |
send (1) null<1>:d r55 0x5 0x60A8018:ud |
send (1) null<1>:d r31 0x5 0x60A8018:ud |
send (1) null<1>:d r40 0x5 0x60A8018:ud |
send (1) null<1>:d r49 0x5 0x60A8018:ud |
send (1) null<1>:d r58 0x5 0x60A8018:ud |
//========== |
//prepare headers |
//for BUFFER 2 |
add (1) r28.1<1>:d r27.1<0;1,0>:d 8:d |
add (1) r37.1<1>:d r27.1<0;1,0>:d 10:d |
add (1) r46.0<1>:d r27.0<0;1,0>:d 32:d |
add (1) r46.1<1>:d r27.1<0;1,0>:d 8:d |
add (1) r55.0<1>:d r27.0<0;1,0>:d 32:d |
add (1) r55.1<1>:d r27.1<0;1,0>:d 10:d |
// for BUFFER 3 |
add (1) r31.1<1>:d r27.1<0;1,0>:d 12:d |
add (1) r40.1<1>:d r27.1<0;1,0>:d 14:d |
add (1) r49.0<1>:d r27.0<0;1,0>:d 32:d |
add (1) r49.1<1>:d r27.1<0;1,0>:d 12:d |
add (1) r58.0<1>:d r27.0<0;1,0>:d 32:d |
add (1) r58.1<1>:d r27.1<0;1,0>:d 14:d |
//=========== |
// write Buf_2 to 3rd quarter of four horizontal output blocks |
add (4) a0.0:uw r22.0<4;4,1>:w 1024:uw |
// pointer swap |
(f0.0) mov (1) uwTemp0<1> a0.0:uw |
(f0.0) mov (1) a0.0:uw a0.2:uw |
(f0.0) mov (1) a0.2:uw uwTemp0<0;1,0> |
add (4) a0.4:uw a0.0<4;4,1>:w r22.8<0;2,1>:w |
mov (8) mubMSGPAYLOAD0(0, 0)<4> r[a0.2, 1]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD0(0, 1)<4> r[a0.1, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD0(0, 2)<4> r[a0.0, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD0(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD0(1, 0)<4> r[a0.2, 33]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD0(1, 1)<4> r[a0.1, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD0(1, 2)<4> r[a0.0, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD0(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD1(0, 0)<4> r[a0.6, 1]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD1(0, 1)<4> r[a0.5, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(0, 2)<4> r[a0.4, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD1(1, 0)<4> r[a0.6, 33]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD1(1, 1)<4> r[a0.5, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(1, 2)<4> r[a0.4, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD1(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD2(0, 0)<4> r[a0.2, 17]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD2(0, 1)<4> r[a0.1, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(0, 2)<4> r[a0.0, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD2(1, 0)<4> r[a0.2, 49]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD2(1, 1)<4> r[a0.1, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(1, 2)<4> r[a0.0, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD2(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD3(0, 0)<4> r[a0.6, 17]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD3(0, 1)<4> r[a0.5, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD3(0, 2)<4> r[a0.4, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD3(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD3(1, 0)<4> r[a0.6, 49]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD3(1, 1)<4> r[a0.5, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD3(1, 2)<4> r[a0.4, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD3(1, 3)<4> r2.31:ub { NoDDChk } |
// write Buf_3 to 4th quarter of four horizontal output blocks |
add (4) a0.0:uw r22.0<4;4,1>:w 1536:uw |
// pointer swap |
(f0.0) mov (1) uwTemp0<1> a0.0:uw |
(f0.0) mov (1) a0.0:uw a0.2:uw |
(f0.0) mov (1) a0.2:uw uwTemp0<0;1,0> |
add (4) a0.4:uw a0.0<4;4,1>:w r22.8<0;2,1>:w |
mov (8) mubMSGPAYLOAD4(0, 0)<4> r[a0.2, 1]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD4(0, 1)<4> r[a0.1, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD4(0, 2)<4> r[a0.0, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD4(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD4(1, 0)<4> r[a0.2, 33]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD4(1, 1)<4> r[a0.1, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD4(1, 2)<4> r[a0.0, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD4(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD5(0, 0)<4> r[a0.6, 1]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD5(0, 1)<4> r[a0.5, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD5(0, 2)<4> r[a0.4, 1]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD5(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD5(1, 0)<4> r[a0.6, 33]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD5(1, 1)<4> r[a0.5, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD5(1, 2)<4> r[a0.4, 33]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD5(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD6(0, 0)<4> r[a0.2, 17]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD6(0, 1)<4> r[a0.1, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD6(0, 2)<4> r[a0.0, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD6(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD6(1, 0)<4> r[a0.2, 49]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD6(1, 1)<4> r[a0.1, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD6(1, 2)<4> r[a0.0, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD6(1, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD7(0, 0)<4> r[a0.6, 17]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD7(0, 1)<4> r[a0.5, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD7(0, 2)<4> r[a0.4, 17]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD7(0, 3)<4> r2.31:ub { NoDDChk } |
mov (8) mubMSGPAYLOAD7(1, 0)<4> r[a0.6, 49]<16;8,2> { NoDDClr } |
mov (8) mubMSGPAYLOAD7(1, 1)<4> r[a0.5, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD7(1, 2)<4> r[a0.4, 49]<16;8,2> { NoDDClr, NoDDChk } |
mov (8) mubMSGPAYLOAD7(1, 3)<4> r2.31:ub { NoDDChk } |
// send buffer 2 and buffer 3 |
send (1) null<1>:d r28 0x5 0x60A8018:ud |
send (1) null<1>:d r37 0x5 0x60A8018:ud |
send (1) null<1>:d r46 0x5 0x60A8018:ud |
send (1) null<1>:d r55 0x5 0x60A8018:ud |
send (1) null<1>:d r31 0x5 0x60A8018:ud |
send (1) null<1>:d r40 0x5 0x60A8018:ud |
send (1) null<1>:d r49 0x5 0x60A8018:ud |
send (1) null<1>:d r58 0x5 0x60A8018:ud |
/drivers/video/i965/shaders/post_processing/gen7/Set_AVS_Buf_0123_BGRA.g4a |
---|
0,0 → 1,362 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 7 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
//Module Name: Set_AVS_Buf_0123_BGRA.asm |
//Module Name: Set_Buf_0123_BGRA |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//AVS LAYOUT:(UUYYVVAA) |
//Assign buffer channel order for Buffer 0123 in the order AUYV a0.3>A, a0.2>U, a0.1>Y, a0.0>V |
// V = 8, Y= 4, U = 0, A = 12. |
mov (4) acc0.0<1>:w 0x6AE2:v |
add (4) acc0.0<1>:w acc0<4;4,1>:w 70:uw |
shl (4) r22.0<1>:w acc0<4;4,1>:w 5:uw |
//OPT: wAVS_SU_SHUFFLE_PTR_0 and udAVS_SU_SHUFFLE_OFF_0 are sub-regs of same GRF. -rT |
//SU LAYOUT:(VYUAVYUA) |
//V = 4, Y = 2, U = 0, A = 6 |
mov (4) acc0.0<1>:w 0x6024:v |
add (4) acc0.0<1>:w acc0<4;4,1>:w 64:uw |
shl (4) r18.0<1>:w acc0<4;4,1>:w 5:uw { NoDDClr } //Convert to BYTE address. |
//OFFSET: |
mov (1) r18.4<1>:ud 0x1000100:ud { NoDDChk } |
/drivers/video/i965/shaders/post_processing/gen7/Set_AVS_Buf_0123_PL2.g4a |
---|
0,0 → 1,361 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 7 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
//Module Name: Set_AVS_Buf_0123_PL2.asm |
//Module Name: Set_Buf_0123_PL2 |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//AVS LAYOUT: (YYUUVVAA) |
//Assign buffer channel order for Buffer 0123 in the order AUYV a0.3>A, a0.2>U, a0.1>Y, a0.0>V |
//For PL2-AVS: V = 8, Y= 0, U = 4, A = 12. |
mov (4) acc0.0<1>:w 0x6EA2:v //Subtract 6 from 0,4,8,12 |
add (4) acc0.0<1>:w acc0<4;4,1>:w 70:uw //add 6 back |
shl (4) r22.0<1>:w acc0<4;4,1>:w 5:uw //Convert to BYTE address. |
//OPT: wAVS_SU_SHUFFLE_PTR_0 and udAVS_SU_SHUFFLE_OFF_0 are sub-regs of same GRF. -rT |
//SU LAYOUT:(YUVAYUVA) |
//V = 4, Y = 0, U = 2, A = 6 |
mov (4) acc0.0<1>:w 0x6204:v |
add (4) acc0.0<1>:w acc0<4;4,1>:w 64:uw |
shl (4) r18.0<1>:w acc0<4;4,1>:w 5:uw { NoDDClr } //Convert to BYTE address. |
//OFFSET: |
mov (1) r18.4<1>:ud 0x1000100:ud { NoDDChk } |
/drivers/video/i965/shaders/post_processing/gen7/Set_AVS_Buf_0123_PL3.g4a |
---|
0,0 → 1,361 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 7 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
//Module Name: Set_AVS_Buf_0123_PL3.asm |
//Module Name: Set_Buf_0123_PL3 |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//AVS LAYOUT: (YYUUVVAA) |
//Assign buffer channel order for Buffer 0123 in the order AUYV a0.3>A, a0.2>U, a0.1>Y, a0.0>V |
//For PL3-AVS: V = 8, Y= 0, U = 4, A = 12. |
mov (4) acc0.0<1>:w 0x6EA2:v //Subtract 6 from 0,4,8,12 |
add (4) acc0.0<1>:w acc0<4;4,1>:w 70:uw //add 6 back |
shl (4) r22.0<1>:w acc0<4;4,1>:w 5:uw //Convert to BYTE address. |
//OPT: wAVS_SU_SHUFFLE_PTR_0 and udAVS_SU_SHUFFLE_OFF_0 are sub-regs of same GRF. -rT |
//SU LAYOUT:(YUVAYUVA) |
//V = 4, Y = 0, U = 2, A = 6 |
mov (4) acc0.0<1>:w 0x6204:v |
add (4) acc0.0<1>:w acc0<4;4,1>:w 64:uw |
shl (4) r18.0<1>:w acc0<4;4,1>:w 5:uw { NoDDClr } //Convert to BYTE address. |
//OFFSET: |
mov (1) r18.4<1>:ud 0x1000100:ud { NoDDChk } |
/drivers/video/i965/shaders/post_processing/gen7/Set_AVS_Buf_0123_VUYA.g4a |
---|
0,0 → 1,362 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 7 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
//Module Name: Set_AVS_Buf_0123_YUVA.asm |
// Module Name : Set_Buf_0123_VUYA |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//For AVS: We use surface state as R8G8B8A8_UNORM and hence set pointers to VUYA. |
//AVS LAYOUT:(VVUUYYAA) |
//Assign buffer channel order for Buffer 0123 in the order AUYV a0.3>A, a0.2>U, a0.1>Y, a0.0>V |
//V = 0, Y= 8, U = 4, A = 12. |
mov (4) acc0.0<1>:w 0x6E2A:v |
add (4) acc0.0<1>:w acc0<4;4,1>:w 70:uw |
shl (4) r22.0<1>:w acc0<4;4,1>:w 5:uw |
//Used by Shuffle. |
//SU LAYOUT:(VUYAVUYA) |
//V = 0, Y = 4, U = 2, A = 6 |
mov (4) acc0.0<1>:w 0x6240:v |
add (4) acc0.0<1>:w acc0<4;4,1>:w 64:uw |
shl (4) r18.0<1>:w acc0<4;4,1>:w 5:uw { NoDDClr } //Convert to BYTE address. |
//OFFSET: |
mov (1) r18.4<1>:ud 0x1000100:ud { NoDDChk } |
/drivers/video/i965/shaders/post_processing/gen7/Set_AVS_Buf_0123_VYUA.g4a |
---|
0,0 → 1,362 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 7 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
//Module Name: Set_AVS_Buf_0123_VYUA.asm |
//Module Name: Set_Buf_0123_VYUA |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//AVS LAYOUT:(VVYYUUAA) |
//Assign buffer channel order for Buffer 0123 in the order AUYV a0.3>A, a0.2>U, a0.1>Y, a0.0>V |
// V = 0, Y= 4, U = 8, A = 12. |
mov (4) acc0.0<1>:w 0x62EA:v //Subtract 6 from 0,4,8,12 |
add (4) acc0.0<1>:w acc0<4;4,1>:w 70:uw //add 6 back |
shl (4) r22.0<1>:w acc0<4;4,1>:w 5:uw //Convert to BYTE address. |
//OPT: wAVS_SU_SHUFFLE_PTR_0 and udAVS_SU_SHUFFLE_OFF_0 are sub-regs of same GRF. -rT |
//SU LAYOUT:(VYUAVYUA) |
//V = 0, Y = 2, U = 4, A = 6 |
mov (4) acc0.0<1>:w 0x6420:v |
add (4) acc0.0<1>:w acc0<4;4,1>:w 64:uw |
shl (4) r18.0<1>:w acc0<4;4,1>:w 5:uw { NoDDClr } //Convert to BYTE address. |
//OFFSET: |
mov (1) r18.4<1>:ud 0x1000100:ud { NoDDChk } |
/drivers/video/i965/shaders/post_processing/gen7/Set_Layer_0.g4a |
---|
0,0 → 1,467 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 18 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
//Module name: Set_Layer_N.inc |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//Used to generate LABELS at compile time. |
//definitions for Expand Mask |
.declare uwMask_Temp1 Base=r17.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
.declare ubMask_Temp1 Base=r17.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub // 1 GRF |
.declare udMask_Temp1 Base=r17.0 ElementSize=4 Type=ud // 1 GRF |
.declare uwMask_Temp2 Base=r16.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
.declare ubMask_Temp2 Base=r16.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub // 1 GRF |
.declare udMask_Temp2 Base=r16.0 ElementSize=4 Type=ud // 1 GRF |
.declare uwMask_Temp3 Base=r15.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
.declare ubMask_Temp3 Base=r15.0 ElementSize=1 SrcRegion=<16;16,1> Type=ub // 1 GRF |
.declare udALPHA_MASK_REG Base=r21.0 ElementSize=4 Type=ud // 1 GRF |
.declare udALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=4 Type=ud // 1 GRF |
//Initialize mask reg to FFFF |
mov (16) uwALPHA_MASK_REG(0)<1> 0xFFFF:uw |
//Fast jump for - |
//LAYER0: we determine whether layer 0 is to be loaded and processed or not based |
// on block mask in module "Set_Layer_0" and store result in f0.1. |
// This flag is then directly used to while loading buf0-3 and colorfill. |
// (So flag f0.1 should not be changed from Set_Layer_0 till Colorfill) |
// |
//LAYER1-7: For all other layers, we compute whether layer is to be loaded and processed |
// based on block mask in module "Set_Layer_1-7" and store result in SKIP_LAYER |
// variable. |
// While Loading buf 4 and 5, we move SKIP_LAYER to f0.0 every time and use it |
// for Loading. |
// For processing though, we move SKIP_LAYER only once to f0.1 in module |
// "Set_Buf0_Buf4" and use f0.1 for deciding whether layer 1-7 (all 4 sub blocks) |
// is to be processed or not. |
// (So flag f0.1) should not be modififed from module "Set_Buf0_Buf4" till module |
// that processess sub-block 3). |
// |
//None of the above fast jumps, apply to CSC modules. We always perform CSC irrespective of mask. |
// |
//Example: (Without going into finer details) |
// Typical Combined kernel: |
// |
// (let var = decision whether to load/process that layer) |
// |
// Set_Layer_0 //f0.1 <- var |
// .. |
// Set_Layer_1 //f0.1 <- var, SKIP_LAYER <- var |
// .. |
// Load buf 0 //use f0.1 |
// Load buf 4 //f0.0 <- SKIP_LAYER |
// Load buf 1 //use f0.1 |
// Load buf 5 //f0.0 <- SKIP_LAYER |
// Load buf 2 //use f0.1 |
// Load buf 3 //use f0.1 |
// .. |
// .. |
// Colorfill |
// .. |
// Set_Buf0_Buf4 //f0.1 <- SKIP_LAYER |
// process0-4 //Use f0.1 |
// Load buf 4 |
// Set_Buf1_Buf5 |
// process1-5 |
// Load buf 5 |
// .. |
// Set_Layer_2 //f0.1 <-var, SKIP_LAYER <- var |
// .. |
// Set_Buf2_Buf4 |
// process2-4 |
// Load buf 4 |
// Set_Buf3_Buf5 |
// process3-5 |
// Load buf 5 |
// .. |
//For layer 0, use f0.1 directly |
cmp.ne.f0.1 (1) null<1>:d r7.2:uw 0:uw |
(f0.1)cmp.ne.f0.1 (1) null<1>:d r7.3:uw 0:uw |
(-f0.1) jmpi (1) SKIP_LAYER_L0 |
and (1) r24.2:ub r2.2<0;1,0>:uw 3:uw |
//Copy all AVS Payload data |
// Setup Message Payload Header for 1st block of Media Sampler 8x8 (16x4 for IVB+) |
mov (1) r25.6:f r7.5:f { NoDDClr } //NLAS dx |
mov (1) r25.4:f r3.0:f { NoDDClr, NoDDChk } //Step X |
mov (1) r25.5:f r4.0:f { NoDDClr, NoDDChk } //Step Y |
mov (1) r25.2:f r6.0<0;1,0>:f { NoDDClr, NoDDChk } //Orig X |
mov (1) r25.3:f r5.0<0;1,0>:f { NoDDChk } //Orig Y |
//NLAS calculations for 2nd half of blocks of Media Sampler 8x8: |
// X(i) = X0 + dx*i + ddx*i*(i-1)/2 ==> X(8) = X0 + dx*8 +ddx*28 |
// dx(i)= dx(0) + ddx*i ==> dx(8)= dx + ddx*8 |
//OPTIMIZATION: fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY - are sub registers of same GRF. Use NODDCLR NODDCHK. -rT |
// Calculating X(8) |
mov (1) acc0.2:f r6.0:f |
mac (1) acc0.2:f r3.0:f 8.0:f |
mac (1) r23.2:f r7.5:f 28.0:f { NoDDClr } |
// Calculating Y(4) |
mul (1) r23.1<1>:f r4.0:f 4.0:f { NoDDClr, NoDDChk } //dY*4 |
// Calculating dx(8) |
mov (1) acc0.4:f r3.0:f |
mac (1) r23.4:f r7.5:f 8.0:f { NoDDClr, NoDDChk } |
// Binding Index |
mov (1) r23.5:ud 0:ud { NoDDChk } |
SKIP_LAYER_L0: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/VP_Setup.g4a |
---|
0,0 → 1,853 |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
/* |
* Copyright 2000-2011 Intel Corporation All Rights Reserved |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
// 326 // Total instruction count |
// 1 // Total kernel count |
// Module name: common.inc |
// |
// Common header file for all Video-Processing kernels |
// |
.default_execution_size (16) |
.default_register_type :ub |
.reg_count_total 128 |
.reg_count_payload 7 |
//========== Common constants ========== |
//========== Macros ========== |
//Fast Jump, For more details see "Set_Layer_N.asm" |
//========== Defines ==================== |
//========== Static Parameters (Common To All) ========== |
//r1 |
//r2 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//Color Pipe (IECP) parameters |
//ByteCopy |
//r4 |
// e.g. byte0 byte1 byte2 |
// YUYV 0 1 3 |
// YVYU 0 3 1 |
//========== Inline parameters (Common To All) =========== |
//============== Binding Index Table=========== |
//Common between DNDI and DNUV |
//================= Common Message Descriptor ===== |
// Message descriptor for thread spawning |
// Message Descriptors |
// = 000 0001 (min message len 1 ) 0,0000 (resp len 0 -add later) |
// 0000,0000,0000 |
// 0001(Spawn a root thread),0001 (Root thread spawn thread) |
// = 0x02000011 |
// Thread Spawner Message Descriptor |
// Message descriptor for atomic operation add |
// Message Descriptors |
// = 000 0110 (min message len 6 ) 0,0000 (resp len 0 -add later) |
// 1(header present)001,10(typed atomic operation)0(return enabled)0(slot group, low 8 bits),0111 (AOP_Add) |
// 0000,0000 (Binding table index, added later) |
// = 0x02000011 |
// Atomic Operation Add Message Descriptor |
// Message descriptor for dataport media write |
// Message Descriptors |
// = 000 0001 (min message len 1 - add later) 00000 (resp len 0) |
// 1 (header present 1) 0 1010 (media block write) 000000 |
// 00000000 (binding table index - set later) |
// = 0x020A8000 |
// Message Length defines |
// Response Length defines |
// Block Width and Height Size defines |
// Extended Message Descriptors |
// Common message descriptors: |
//===================== Math Function Control =================================== |
//============ Message Registers =============== |
// buf4 starts from r28 |
//#define mMSGHDR_EOT r43 // Dummy Message Register for EOT |
.declare mubMSGPAYLOAD Base=r30 ElementSize=1 SrcRegion=<16;16,1> Type=ub |
.declare muwMSGPAYLOAD Base=r30 ElementSize=2 SrcRegion=<16;16,1> Type=uw |
.declare mudMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=ud |
.declare mfMSGPAYLOAD Base=r30 ElementSize=4 SrcRegion=<8;8,1> Type=f |
//=================== End of thread instruction =========================== |
//=====================Pointers Used===================================== |
//======================================================================= |
//r9-r17 |
// Define temp space for any usages |
// Common Buffers |
// temp space for rotation |
.declare fROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udROBUF Base=r9.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwROBUF Base=r9.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubROBUF Base=r9.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4ROBUF Base=r9.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
// End of common.inc |
// FileName: VP_Setup.asm |
// Author: Vivek Kumar |
// Description: Sets up all parameters for the Video Processing Kernel |
// Description: Includes all definitions explicit to Fast Composite. |
// End of common.inc |
//========== GRF partition ========== |
// r0 header : r0 (1 GRF) |
// Static parameters : r1 - r6 (6 GRFS) |
// Inline parameters : r7 - r8 (2 GRFs) |
// MSGSRC : r27 (1 GRF) |
//=================================== |
//Interface: |
//========== Static Parameters (Explicit To Fast Composite) ========== |
//r1 |
//CSC Set 0 |
.declare udCSC_CURBE Base=r1.0 ElementSize=4 Type=ud |
//Constant alpha |
//r2 |
// Gen7 AVS WA |
// WiDi Definitions |
//Colorfill |
// 0: 0-degree, 1: 90, 2: 180, 3: 270-degree, clockwise. |
.declare ubCOLOR_PIXEL_VAL Base=r2.20 ElementSize=1 SrcRegion=<0;1,0> DstRegion=<1> Type=ub |
//r3 |
//Normalised Ratio of Horizontal step size with main video for all layers |
//Normalised Ratio of Horizontal step size with main video for all layers becomes |
//Normalised Horizontal step size for all layers in VP_Setup.asm |
//r4 |
//Normalised Vertical step size for all layers |
//r5 |
//Normalised Vertical Frame Origin for all layers |
//r6 |
//Normalised Horizontal Frame Origin for all layers |
//========== Inline Parameters (Explicit To Fast Composite) ========== |
//Main video Step X |
//====================== Binding table (Explicit To Fast Composite)========================================= |
//Used by Interlaced Scaling Kernels |
//========== Sampler State Table Index (Explicit To Fast Composite)========== |
//Sampler Index for AVS/IEF messages |
//Sampler Index for SIMD16 sampler messages |
//============================================================================= |
.declare fBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare fBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=f |
.declare udBUFFER_0 Base=r64.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_1 Base=r80.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_2 Base=r96.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_3 Base=r112.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_4 Base=r28.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare udBUFFER_5 Base=r46.0 ElementSize=4 SrcRegion=<8;8,1> DstRegion=<1> Type=ud |
.declare uwBUFFER_0 Base=r64.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_1 Base=r80.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_2 Base=r96.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_3 Base=r112.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_4 Base=r28.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare uwBUFFER_5 Base=r46.0 ElementSize=2 SrcRegion=<16;16,1> DstRegion=<1> Type=uw |
.declare ubBUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ubBUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<16;16,1> DstRegion=<1> Type=ub |
.declare ub4BUFFER_0 Base=r64.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_1 Base=r80.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_2 Base=r96.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_3 Base=r112.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_4 Base=r28.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
.declare ub4BUFFER_5 Base=r46.0 ElementSize=1 SrcRegion=<32;8,4> DstRegion=<4> Type=ub |
//Pointer to mask reg |
//r18 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
.declare udCSC_COEFF_0 Base=r18.0 ElementSize=4 Type=ud // 1 GRF |
//r19 |
.declare udCSC_COEFF_1 Base=r19.0 ElementSize=4 Type=ud // 1 GRF |
//r20 |
.declare uwALPHA_MASK_REG_TEMP Base=r20.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r21 |
.declare uwALPHA_MASK_REG Base=r21.0 ElementSize=2 SrcRegion=<16;16,1> Type=uw // 1 GRF |
//r22 |
//Always keep Cannel Pointers and Offsets in same GRF, so that we can use |
// NODDCLR, NODDCHK flags. -rT |
//Keep fORIGIN_X_NLAS, fY_OFFSET_2ND_BLOCK, fSTEP_X_NLAS, pMSGDSC_COPY, ubCONST_ALPHA_COPY as |
//sub registers of same GRF to enable using NODDCLR NODDCHK. -rT |
//r23 |
//Lumakey |
//r24 |
//r25 |
//r26 |
//defines to generate LABELS during compile time. |
//Setup pointer to the inline parameter |
// Copy MSG HDR |
mov (8) r27.0<1>:ud r0.0<8;8,1>:ud // Initialize message payload header with R0 |
//temp; remove it once unread msg warnings are resolved -vK |
mov (8) r25:ud r0.0<8;8,1>:ud |
mov (8) r26:ud r0.0<8;8,1>:ud |
// Calculate StepX for all layers and overwrite it on the ratio |
mul (8) r3.0<1>:f r3.0<8;8,1>:f r7.4<0;1,0>:f //StepX_ratio = StepX / VideoStepX |
//Normalised Ratio of Horizontal step size with main video for all layers now becomes |
//Normalised Horizontal step size for all layers |
// Calculate block origin for all layers and overwrite it on the frame origin |
mov (2) r8.5<1>:f r7.0<2;2,1>:w //Convert origin from word to float |
cmp.e.f0.0 (8) null<1>:d r2.26:ub 1:uw |
shr (1) r17.0<1>:uw r2.2<0;1,0>:uw 0:uw |
and (1) r17.0<1>:uw r17.0<0;1,0>:uw 3:uw |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 1:uw |
(f0.1) jmpi (1) ROTATE_90_L0 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 2:uw |
(f0.1) jmpi (1) ROTATE_180_L0 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 3:uw |
(f0.1) jmpi (1) ROTATE_270_L0 |
// rotate 0 degree |
ROTATE_0_L0: |
(-f0.0)mov (1) acc0.0:f r6.0<0;1,0>:f |
(-f0.0)mac (1) r6.0<1>:f r3.0<0;1,0>:f r8.5<0;1,0>:f |
mov (1) acc0.0:f r5.0<0;1,0>:f |
mac (1) r5.0<1>:f r4.0<0;1,0>:f r8.6<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L0 |
// rotate 90 degree |
ROTATE_90_L0: |
(-f0.0)mov (1) acc0.0:f r6.0<0;1,0>:f |
(-f0.0)mac (1) r6.0<1>:f r3.0<0;1,0>:f r8.6<0;1,0>:f |
mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.0:f r5.0<0;1,0>:f |
mac (1) r5.0<1>:f r4.0<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L0 |
// rotate 180 degree |
ROTATE_180_L0: |
(-f0.0)mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.0:f r6.0<0;1,0>:f |
(-f0.0)mac (1) r6.0<1>:f r3.0<0;1,0>:f r17.0<0;1,0>:f |
mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.0:f r5.0<0;1,0>:f |
mac (1) r5.0<1>:f r4.0<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L0 |
// rotate 270 degree |
ROTATE_270_L0: |
(-f0.0)mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.0:f r6.0<0;1,0>:f |
(-f0.0)mac (1) r6.0<1>:f r3.0<0;1,0>:f r17.0<0;1,0>:f |
mov (1) acc0.0:f r5.0<0;1,0>:f |
mac (1) r5.0<1>:f r4.0<0;1,0>:f r8.5<0;1,0>:f |
END_SRC_BLOCK_ORIG_COMP_L0: |
nop |
shr (1) r17.0<1>:uw r2.2<0;1,0>:uw 2:uw |
and (1) r17.0<1>:uw r17.0<0;1,0>:uw 3:uw |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 1:uw |
(f0.1) jmpi (1) ROTATE_90_L1 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 2:uw |
(f0.1) jmpi (1) ROTATE_180_L1 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 3:uw |
(f0.1) jmpi (1) ROTATE_270_L1 |
// rotate 0 degree |
ROTATE_0_L1: |
(-f0.0)mov (1) acc0.1:f r6.1<0;1,0>:f |
(-f0.0)mac (1) r6.1<1>:f r3.1<0;1,0>:f r8.5<0;1,0>:f |
mov (1) acc0.1:f r5.1<0;1,0>:f |
mac (1) r5.1<1>:f r4.1<0;1,0>:f r8.6<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L1 |
// rotate 90 degree |
ROTATE_90_L1: |
(-f0.0)mov (1) acc0.1:f r6.1<0;1,0>:f |
(-f0.0)mac (1) r6.1<1>:f r3.1<0;1,0>:f r8.6<0;1,0>:f |
mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.1:f r5.1<0;1,0>:f |
mac (1) r5.1<1>:f r4.1<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L1 |
// rotate 180 degree |
ROTATE_180_L1: |
(-f0.0)mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.1:f r6.1<0;1,0>:f |
(-f0.0)mac (1) r6.1<1>:f r3.1<0;1,0>:f r17.0<0;1,0>:f |
mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.1:f r5.1<0;1,0>:f |
mac (1) r5.1<1>:f r4.1<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L1 |
// rotate 270 degree |
ROTATE_270_L1: |
(-f0.0)mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.1:f r6.1<0;1,0>:f |
(-f0.0)mac (1) r6.1<1>:f r3.1<0;1,0>:f r17.0<0;1,0>:f |
mov (1) acc0.1:f r5.1<0;1,0>:f |
mac (1) r5.1<1>:f r4.1<0;1,0>:f r8.5<0;1,0>:f |
END_SRC_BLOCK_ORIG_COMP_L1: |
nop |
shr (1) r17.0<1>:uw r2.2<0;1,0>:uw 4:uw |
and (1) r17.0<1>:uw r17.0<0;1,0>:uw 3:uw |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 1:uw |
(f0.1) jmpi (1) ROTATE_90_L2 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 2:uw |
(f0.1) jmpi (1) ROTATE_180_L2 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 3:uw |
(f0.1) jmpi (1) ROTATE_270_L2 |
// rotate 0 degree |
ROTATE_0_L2: |
(-f0.0)mov (1) acc0.2:f r6.2<0;1,0>:f |
(-f0.0)mac (1) r6.2<1>:f r3.2<0;1,0>:f r8.5<0;1,0>:f |
mov (1) acc0.2:f r5.2<0;1,0>:f |
mac (1) r5.2<1>:f r4.2<0;1,0>:f r8.6<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L2 |
// rotate 90 degree |
ROTATE_90_L2: |
(-f0.0)mov (1) acc0.2:f r6.2<0;1,0>:f |
(-f0.0)mac (1) r6.2<1>:f r3.2<0;1,0>:f r8.6<0;1,0>:f |
mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.2:f r5.2<0;1,0>:f |
mac (1) r5.2<1>:f r4.2<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L2 |
// rotate 180 degree |
ROTATE_180_L2: |
(-f0.0)mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.2:f r6.2<0;1,0>:f |
(-f0.0)mac (1) r6.2<1>:f r3.2<0;1,0>:f r17.0<0;1,0>:f |
mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.2:f r5.2<0;1,0>:f |
mac (1) r5.2<1>:f r4.2<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L2 |
// rotate 270 degree |
ROTATE_270_L2: |
(-f0.0)mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.2:f r6.2<0;1,0>:f |
(-f0.0)mac (1) r6.2<1>:f r3.2<0;1,0>:f r17.0<0;1,0>:f |
mov (1) acc0.2:f r5.2<0;1,0>:f |
mac (1) r5.2<1>:f r4.2<0;1,0>:f r8.5<0;1,0>:f |
END_SRC_BLOCK_ORIG_COMP_L2: |
nop |
shr (1) r17.0<1>:uw r2.2<0;1,0>:uw 6:uw |
and (1) r17.0<1>:uw r17.0<0;1,0>:uw 3:uw |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 1:uw |
(f0.1) jmpi (1) ROTATE_90_L3 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 2:uw |
(f0.1) jmpi (1) ROTATE_180_L3 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 3:uw |
(f0.1) jmpi (1) ROTATE_270_L3 |
// rotate 0 degree |
ROTATE_0_L3: |
(-f0.0)mov (1) acc0.3:f r6.3<0;1,0>:f |
(-f0.0)mac (1) r6.3<1>:f r3.3<0;1,0>:f r8.5<0;1,0>:f |
mov (1) acc0.3:f r5.3<0;1,0>:f |
mac (1) r5.3<1>:f r4.3<0;1,0>:f r8.6<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L3 |
// rotate 90 degree |
ROTATE_90_L3: |
(-f0.0)mov (1) acc0.3:f r6.3<0;1,0>:f |
(-f0.0)mac (1) r6.3<1>:f r3.3<0;1,0>:f r8.6<0;1,0>:f |
mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.3:f r5.3<0;1,0>:f |
mac (1) r5.3<1>:f r4.3<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L3 |
// rotate 180 degree |
ROTATE_180_L3: |
(-f0.0)mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.3:f r6.3<0;1,0>:f |
(-f0.0)mac (1) r6.3<1>:f r3.3<0;1,0>:f r17.0<0;1,0>:f |
mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.3:f r5.3<0;1,0>:f |
mac (1) r5.3<1>:f r4.3<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L3 |
// rotate 270 degree |
ROTATE_270_L3: |
(-f0.0)mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.3:f r6.3<0;1,0>:f |
(-f0.0)mac (1) r6.3<1>:f r3.3<0;1,0>:f r17.0<0;1,0>:f |
mov (1) acc0.3:f r5.3<0;1,0>:f |
mac (1) r5.3<1>:f r4.3<0;1,0>:f r8.5<0;1,0>:f |
END_SRC_BLOCK_ORIG_COMP_L3: |
nop |
shr (1) r17.0<1>:uw r2.2<0;1,0>:uw 8:uw |
and (1) r17.0<1>:uw r17.0<0;1,0>:uw 3:uw |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 1:uw |
(f0.1) jmpi (1) ROTATE_90_L4 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 2:uw |
(f0.1) jmpi (1) ROTATE_180_L4 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 3:uw |
(f0.1) jmpi (1) ROTATE_270_L4 |
// rotate 0 degree |
ROTATE_0_L4: |
(-f0.0)mov (1) acc0.4:f r6.4<0;1,0>:f |
(-f0.0)mac (1) r6.4<1>:f r3.4<0;1,0>:f r8.5<0;1,0>:f |
mov (1) acc0.4:f r5.4<0;1,0>:f |
mac (1) r5.4<1>:f r4.4<0;1,0>:f r8.6<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L4 |
// rotate 90 degree |
ROTATE_90_L4: |
(-f0.0)mov (1) acc0.4:f r6.4<0;1,0>:f |
(-f0.0)mac (1) r6.4<1>:f r3.4<0;1,0>:f r8.6<0;1,0>:f |
mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.4:f r5.4<0;1,0>:f |
mac (1) r5.4<1>:f r4.4<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L4 |
// rotate 180 degree |
ROTATE_180_L4: |
(-f0.0)mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.4:f r6.4<0;1,0>:f |
(-f0.0)mac (1) r6.4<1>:f r3.4<0;1,0>:f r17.0<0;1,0>:f |
mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.4:f r5.4<0;1,0>:f |
mac (1) r5.4<1>:f r4.4<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L4 |
// rotate 270 degree |
ROTATE_270_L4: |
(-f0.0)mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.4:f r6.4<0;1,0>:f |
(-f0.0)mac (1) r6.4<1>:f r3.4<0;1,0>:f r17.0<0;1,0>:f |
mov (1) acc0.4:f r5.4<0;1,0>:f |
mac (1) r5.4<1>:f r4.4<0;1,0>:f r8.5<0;1,0>:f |
END_SRC_BLOCK_ORIG_COMP_L4: |
nop |
shr (1) r17.0<1>:uw r2.2<0;1,0>:uw 10:uw |
and (1) r17.0<1>:uw r17.0<0;1,0>:uw 3:uw |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 1:uw |
(f0.1) jmpi (1) ROTATE_90_L5 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 2:uw |
(f0.1) jmpi (1) ROTATE_180_L5 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 3:uw |
(f0.1) jmpi (1) ROTATE_270_L5 |
// rotate 0 degree |
ROTATE_0_L5: |
(-f0.0)mov (1) acc0.5:f r6.5<0;1,0>:f |
(-f0.0)mac (1) r6.5<1>:f r3.5<0;1,0>:f r8.5<0;1,0>:f |
mov (1) acc0.5:f r5.5<0;1,0>:f |
mac (1) r5.5<1>:f r4.5<0;1,0>:f r8.6<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L5 |
// rotate 90 degree |
ROTATE_90_L5: |
(-f0.0)mov (1) acc0.5:f r6.5<0;1,0>:f |
(-f0.0)mac (1) r6.5<1>:f r3.5<0;1,0>:f r8.6<0;1,0>:f |
mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.5:f r5.5<0;1,0>:f |
mac (1) r5.5<1>:f r4.5<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L5 |
// rotate 180 degree |
ROTATE_180_L5: |
(-f0.0)mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.5:f r6.5<0;1,0>:f |
(-f0.0)mac (1) r6.5<1>:f r3.5<0;1,0>:f r17.0<0;1,0>:f |
mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.5:f r5.5<0;1,0>:f |
mac (1) r5.5<1>:f r4.5<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L5 |
// rotate 270 degree |
ROTATE_270_L5: |
(-f0.0)mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.5:f r6.5<0;1,0>:f |
(-f0.0)mac (1) r6.5<1>:f r3.5<0;1,0>:f r17.0<0;1,0>:f |
mov (1) acc0.5:f r5.5<0;1,0>:f |
mac (1) r5.5<1>:f r4.5<0;1,0>:f r8.5<0;1,0>:f |
END_SRC_BLOCK_ORIG_COMP_L5: |
nop |
shr (1) r17.0<1>:uw r2.2<0;1,0>:uw 12:uw |
and (1) r17.0<1>:uw r17.0<0;1,0>:uw 3:uw |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 1:uw |
(f0.1) jmpi (1) ROTATE_90_L6 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 2:uw |
(f0.1) jmpi (1) ROTATE_180_L6 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 3:uw |
(f0.1) jmpi (1) ROTATE_270_L6 |
// rotate 0 degree |
ROTATE_0_L6: |
(-f0.0)mov (1) acc0.6:f r6.6<0;1,0>:f |
(-f0.0)mac (1) r6.6<1>:f r3.6<0;1,0>:f r8.5<0;1,0>:f |
mov (1) acc0.6:f r5.6<0;1,0>:f |
mac (1) r5.6<1>:f r4.6<0;1,0>:f r8.6<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L6 |
// rotate 90 degree |
ROTATE_90_L6: |
(-f0.0)mov (1) acc0.6:f r6.6<0;1,0>:f |
(-f0.0)mac (1) r6.6<1>:f r3.6<0;1,0>:f r8.6<0;1,0>:f |
mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.6:f r5.6<0;1,0>:f |
mac (1) r5.6<1>:f r4.6<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L6 |
// rotate 180 degree |
ROTATE_180_L6: |
(-f0.0)mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.6:f r6.6<0;1,0>:f |
(-f0.0)mac (1) r6.6<1>:f r3.6<0;1,0>:f r17.0<0;1,0>:f |
mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.6:f r5.6<0;1,0>:f |
mac (1) r5.6<1>:f r4.6<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L6 |
// rotate 270 degree |
ROTATE_270_L6: |
(-f0.0)mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.6:f r6.6<0;1,0>:f |
(-f0.0)mac (1) r6.6<1>:f r3.6<0;1,0>:f r17.0<0;1,0>:f |
mov (1) acc0.6:f r5.6<0;1,0>:f |
mac (1) r5.6<1>:f r4.6<0;1,0>:f r8.5<0;1,0>:f |
END_SRC_BLOCK_ORIG_COMP_L6: |
nop |
shr (1) r17.0<1>:uw r2.2<0;1,0>:uw 14:uw |
and (1) r17.0<1>:uw r17.0<0;1,0>:uw 3:uw |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 1:uw |
(f0.1) jmpi (1) ROTATE_90_L7 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 2:uw |
(f0.1) jmpi (1) ROTATE_180_L7 |
cmp.e.f0.1 (1) null<1>:w r17.0<0;1,0>:uw 3:uw |
(f0.1) jmpi (1) ROTATE_270_L7 |
// rotate 0 degree |
ROTATE_0_L7: |
(-f0.0)mov (1) acc0.7:f r6.7<0;1,0>:f |
(-f0.0)mac (1) r6.7<1>:f r3.7<0;1,0>:f r8.5<0;1,0>:f |
mov (1) acc0.7:f r5.7<0;1,0>:f |
mac (1) r5.7<1>:f r4.7<0;1,0>:f r8.6<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L7 |
// rotate 90 degree |
ROTATE_90_L7: |
(-f0.0)mov (1) acc0.7:f r6.7<0;1,0>:f |
(-f0.0)mac (1) r6.7<1>:f r3.7<0;1,0>:f r8.6<0;1,0>:f |
mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.7:f r5.7<0;1,0>:f |
mac (1) r5.7<1>:f r4.7<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L7 |
// rotate 180 degree |
ROTATE_180_L7: |
(-f0.0)mov (1) r16.0<1>:f r2.0<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.5<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.7:f r6.7<0;1,0>:f |
(-f0.0)mac (1) r6.7<1>:f r3.7<0;1,0>:f r17.0<0;1,0>:f |
mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
mov (1) acc0.7:f r5.7<0;1,0>:f |
mac (1) r5.7<1>:f r4.7<0;1,0>:f r17.0<0;1,0>:f |
jmpi (1) END_SRC_BLOCK_ORIG_COMP_L7 |
// rotate 270 degree |
ROTATE_270_L7: |
(-f0.0)mov (1) r16.0<1>:f r2.1<0;1,0>:uw |
(-f0.0)add (1) r17.0<1>:f -r8.6<0;1,0>:f r16.0<0;1,0>:f |
(-f0.0)add (1) r17.0<1>:f r17.0<0;1,0>:f -16.0:f |
(-f0.0)mov (1) acc0.7:f r6.7<0;1,0>:f |
(-f0.0)mac (1) r6.7<1>:f r3.7<0;1,0>:f r17.0<0;1,0>:f |
mov (1) acc0.7:f r5.7<0;1,0>:f |
mac (1) r5.7<1>:f r4.7<0;1,0>:f r8.5<0;1,0>:f |
END_SRC_BLOCK_ORIG_COMP_L7: |
nop |
/drivers/video/i965/shaders/post_processing/gen7/avs.asm |
---|
0,0 → 1,19 |
// Module name: AVS |
.kernel AVS |
.code |
#include "VP_Setup.g4a" |
#include "Set_Layer_0.g4a" |
#include "Set_AVS_Buf_0123_PL2.g4a" |
#include "PL2_AVS_Buf_0.g4a" |
#include "PL2_AVS_Buf_1.g4a" |
#include "PL2_AVS_Buf_2.g4a" |
#include "PL2_AVS_Buf_3.g4a" |
#include "Save_AVS_NV12.g4a" |
#include "EOT.g4a" |
.end_code |
.end_kernel |
// end of DNDI |
/drivers/video/i965/shaders/post_processing/gen7/avs.g75b |
---|
0,0 → 1,654 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000000d0 }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000290 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00000401, 0x24a001a5, 0x000000e0, 0x00000000 }, |
{ 0x00000c08, 0x24a43da5, 0x000000e2, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x0007000f }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x44c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x44d00231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x44c10231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x44d10231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x44e00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x44f00231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x44e10231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x44f10231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x45000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x45100231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x45010231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x45110231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x45200231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x45300231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x45210231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x45310231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x0a0a8019 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/avs.g7b |
---|
0,0 → 1,654 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000001a }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000052 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00000401, 0x24a001a5, 0x000000e0, 0x00000000 }, |
{ 0x00000c08, 0x24a43da5, 0x000000e2, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x0007000f }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x44c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x44d00231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x44c10231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x44d10231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x44e00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x44f00231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x44e10231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x44f10231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x45000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x45100231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x45010231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x45110231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x45200231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x45300231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x45210231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x45310231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x0a0a8019 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/dndi.asm |
---|
0,0 → 1,11 |
// Module name: DNDI |
.kernel DNDI |
.code |
#include "NV12_DI_NV12.g4a" |
.end_code |
.end_kernel |
// end of DNDI |
/drivers/video/i965/shaders/post_processing/gen7/dndi.g75b |
---|
0,0 → 1,46 |
{ 0x00600001, 0x22400021, 0x008d0000, 0x00000000 }, |
{ 0x00000401, 0x226801ad, 0x000000e0, 0x00000000 }, |
{ 0x00000801, 0x227801ad, 0x000000e2, 0x00000000 }, |
{ 0x02600031, 0x25c00e21, 0x00000240, 0x04ae8003 }, |
{ 0x00200001, 0x20e0012d, 0x004506fc, 0x00000000 }, |
{ 0x00600001, 0x22800021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x22a00021, 0x008d06c0, 0x00000000 }, |
{ 0x00000408, 0x22803da1, 0x000000e0, 0x00010001 }, |
{ 0x00000c01, 0x228401a1, 0x000000e2, 0x00000000 }, |
{ 0x00000801, 0x22880061, 0x00000000, 0x00030007 }, |
{ 0x05600031, 0x20000e24, 0x00000280, 0x040a8021 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000021, 0x008d0000, 0x00000000 }, |
{ 0x00000408, 0x23003da1, 0x000000e0, 0x00010001 }, |
{ 0x00000041, 0x24043da0, 0x000000e2, 0x00030003 }, |
{ 0x00000c08, 0x23043c01, 0x00000404, 0x00020002 }, |
{ 0x00000801, 0x23080061, 0x00000000, 0x00020007 }, |
{ 0x00200040, 0x23002421, 0x00450300, 0x00450038 }, |
{ 0x00000401, 0x23200021, 0x000006e4, 0x00000000 }, |
{ 0x00200c01, 0x432c0021, 0x004506ec, 0x00000000 }, |
{ 0x00200801, 0x43280021, 0x004506f4, 0x00000000 }, |
{ 0x05600031, 0x20000e24, 0x00000300, 0x040a8021 }, |
{ 0x00600001, 0x23800021, 0x008d0000, 0x00000000 }, |
{ 0x00000401, 0x238001a5, 0x000000e0, 0x00000000 }, |
{ 0x00000c01, 0x238401a5, 0x000000e2, 0x00000000 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x22400021, 0x008d0380, 0x00000000 }, |
{ 0x00600001, 0x22e00021, 0x008d0380, 0x00000000 }, |
{ 0x00600001, 0x22600021, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x22800021, 0x008d05e0, 0x00000000 }, |
{ 0x00600001, 0x23000021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0660, 0x00000000 }, |
{ 0x0000040c, 0x23843ca5, 0x00000384, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x0001000f }, |
{ 0x00800401, 0x42c00231, 0x00ce0601, 0x00000000 }, |
{ 0x00800801, 0x42c10231, 0x00ce0600, 0x00000000 }, |
{ 0x00800401, 0x43600231, 0x00ce0681, 0x00000000 }, |
{ 0x00800801, 0x43610231, 0x00ce0680, 0x00000000 }, |
{ 0x00600001, 0x22a00021, 0x008d0380, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0380, 0x00000000 }, |
{ 0x05600031, 0x20000e24, 0x00000240, 0x060a801b }, |
{ 0x05600031, 0x20000e24, 0x000002e0, 0x060a801e }, |
{ 0x05600031, 0x20000e24, 0x000002a0, 0x040a801c }, |
{ 0x05600031, 0x20000e24, 0x00000340, 0x040a801f }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/dndi.g7b |
---|
0,0 → 1,46 |
{ 0x00600001, 0x22400021, 0x008d0000, 0x00000000 }, |
{ 0x00000401, 0x226801ad, 0x000000e0, 0x00000000 }, |
{ 0x00000801, 0x227801ad, 0x000000e2, 0x00000000 }, |
{ 0x02600031, 0x25c00e21, 0x00000240, 0x04ae8003 }, |
{ 0x00200001, 0x20e0012d, 0x004506fc, 0x00000000 }, |
{ 0x00600001, 0x22800021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x22a00021, 0x008d06c0, 0x00000000 }, |
{ 0x00000408, 0x22803da1, 0x000000e0, 0x00010001 }, |
{ 0x00000c01, 0x228401a1, 0x000000e2, 0x00000000 }, |
{ 0x00000801, 0x22880061, 0x00000000, 0x00030007 }, |
{ 0x05600031, 0x20000e24, 0x00000280, 0x040a8021 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000021, 0x008d0000, 0x00000000 }, |
{ 0x00000408, 0x23003da1, 0x000000e0, 0x00010001 }, |
{ 0x00000041, 0x24043da0, 0x000000e2, 0x00030003 }, |
{ 0x00000c08, 0x23043c01, 0x00000404, 0x00020002 }, |
{ 0x00000801, 0x23080061, 0x00000000, 0x00020007 }, |
{ 0x00200040, 0x23002421, 0x00450300, 0x00450038 }, |
{ 0x00000401, 0x23200021, 0x000006e4, 0x00000000 }, |
{ 0x00200c01, 0x432c0021, 0x004506ec, 0x00000000 }, |
{ 0x00200801, 0x43280021, 0x004506f4, 0x00000000 }, |
{ 0x05600031, 0x20000e24, 0x00000300, 0x040a8021 }, |
{ 0x00600001, 0x23800021, 0x008d0000, 0x00000000 }, |
{ 0x00000401, 0x238001a5, 0x000000e0, 0x00000000 }, |
{ 0x00000c01, 0x238401a5, 0x000000e2, 0x00000000 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x22400021, 0x008d0380, 0x00000000 }, |
{ 0x00600001, 0x22e00021, 0x008d0380, 0x00000000 }, |
{ 0x00600001, 0x22600021, 0x008d05c0, 0x00000000 }, |
{ 0x00600001, 0x22800021, 0x008d05e0, 0x00000000 }, |
{ 0x00600001, 0x23000021, 0x008d0640, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0660, 0x00000000 }, |
{ 0x0000040c, 0x23843ca5, 0x00000384, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x0001000f }, |
{ 0x00800401, 0x42c00231, 0x00ce0601, 0x00000000 }, |
{ 0x00800801, 0x42c10231, 0x00ce0600, 0x00000000 }, |
{ 0x00800401, 0x43600231, 0x00ce0681, 0x00000000 }, |
{ 0x00800801, 0x43610231, 0x00ce0680, 0x00000000 }, |
{ 0x00600001, 0x22a00021, 0x008d0380, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0380, 0x00000000 }, |
{ 0x05600031, 0x20000e24, 0x00000240, 0x060a801b }, |
{ 0x05600031, 0x20000e24, 0x000002e0, 0x060a801e }, |
{ 0x05600031, 0x20000e24, 0x000002a0, 0x040a801c }, |
{ 0x05600031, 0x20000e24, 0x00000340, 0x040a801f }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/nv12_dn_nv12.asm |
---|
0,0 → 1,5 |
// Module name: DN |
#include "NV12_DN_NV12.g4a" |
// end of DNDI |
/drivers/video/i965/shaders/post_processing/gen7/nv12_dn_nv12.g75b |
---|
0,0 → 1,40 |
{ 0x00600001, 0x22400021, 0x008d0000, 0x00000000 }, |
{ 0x00000401, 0x226801ad, 0x000000e0, 0x00000000 }, |
{ 0x00000801, 0x227801ad, 0x000000e2, 0x00000000 }, |
{ 0x02600031, 0x25c00e21, 0x00000240, 0x045e8003 }, |
{ 0x00200001, 0x20e0012d, 0x0045065c, 0x00000000 }, |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00200001, 0x22e00021, 0x00450640, 0x00000000 }, |
{ 0x00200008, 0x23603da1, 0x004500e0, 0x00020002 }, |
{ 0x00000440, 0x23602421, 0x00000360, 0x00000038 }, |
{ 0x00000801, 0x23680061, 0x00000000, 0x00010003 }, |
{ 0x00600001, 0x22c00021, 0x008d0360, 0x00000000 }, |
{ 0x05600031, 0x20000e24, 0x000002c0, 0x040a8021 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000021, 0x008d0000, 0x00000000 }, |
{ 0x00000408, 0x23003da1, 0x000000e0, 0x00010001 }, |
{ 0x00000041, 0x24043da0, 0x000000e2, 0x00030003 }, |
{ 0x00000c08, 0x23043c01, 0x00000404, 0x00020002 }, |
{ 0x00000801, 0x23080061, 0x00000000, 0x00050003 }, |
{ 0x00200040, 0x23002421, 0x00450300, 0x00450038 }, |
{ 0x00000401, 0x23200231, 0x00000648, 0x00000000 }, |
{ 0x00000c01, 0x23260129, 0x00000656, 0x00000000 }, |
{ 0x00200c01, 0x23280129, 0x00450658, 0x00000000 }, |
{ 0x00000c01, 0x23320129, 0x00000650, 0x00000000 }, |
{ 0x00200801, 0x23340129, 0x00450652, 0x00000000 }, |
{ 0x05600031, 0x20000e24, 0x00000300, 0x040a8021 }, |
{ 0x00200040, 0x236035a5, 0x004500e0, 0x00450088 }, |
{ 0x0000040c, 0x23643ca5, 0x00000364, 0x00010001 }, |
{ 0x00000801, 0x23680061, 0x00000000, 0x0004000f }, |
{ 0x00600001, 0x24800021, 0x008d0360, 0x00000000 }, |
{ 0x04600031, 0x27400e21, 0x00000480, 0x02390001 }, |
{ 0x00000001, 0x24880061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x25a00021, 0x008d0000, 0x00000000 }, |
{ 0x00200401, 0x25a001a1, 0x004500e0, 0x00000000 }, |
{ 0x00000801, 0x25a80061, 0x00000000, 0x0007000f }, |
{ 0x05600031, 0x20000e24, 0x000005a0, 0x0a0a8018 }, |
{ 0x00600001, 0x24a00021, 0x008d0740, 0x00000000 }, |
{ 0x00600001, 0x24c00021, 0x008d0760, 0x00000000 }, |
{ 0x05600031, 0x20000e24, 0x00000480, 0x060a8019 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/nv12_dn_nv12.g7b |
---|
0,0 → 1,40 |
{ 0x00600001, 0x22400021, 0x008d0000, 0x00000000 }, |
{ 0x00000401, 0x226801ad, 0x000000e0, 0x00000000 }, |
{ 0x00000801, 0x227801ad, 0x000000e2, 0x00000000 }, |
{ 0x02600031, 0x25c00e21, 0x00000240, 0x045e8003 }, |
{ 0x00200001, 0x20e0012d, 0x0045065c, 0x00000000 }, |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00200001, 0x22e00021, 0x00450640, 0x00000000 }, |
{ 0x00200008, 0x23603da1, 0x004500e0, 0x00020002 }, |
{ 0x00000440, 0x23602421, 0x00000360, 0x00000038 }, |
{ 0x00000801, 0x23680061, 0x00000000, 0x00010003 }, |
{ 0x00600001, 0x22c00021, 0x008d0360, 0x00000000 }, |
{ 0x05600031, 0x20000e24, 0x000002c0, 0x040a8021 }, |
{ 0x00600001, 0x23200061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x23000021, 0x008d0000, 0x00000000 }, |
{ 0x00000408, 0x23003da1, 0x000000e0, 0x00010001 }, |
{ 0x00000041, 0x24043da0, 0x000000e2, 0x00030003 }, |
{ 0x00000c08, 0x23043c01, 0x00000404, 0x00020002 }, |
{ 0x00000801, 0x23080061, 0x00000000, 0x00050003 }, |
{ 0x00200040, 0x23002421, 0x00450300, 0x00450038 }, |
{ 0x00000401, 0x23200231, 0x00000648, 0x00000000 }, |
{ 0x00000c01, 0x23260129, 0x00000656, 0x00000000 }, |
{ 0x00200c01, 0x23280129, 0x00450658, 0x00000000 }, |
{ 0x00000c01, 0x23320129, 0x00000650, 0x00000000 }, |
{ 0x00200801, 0x23340129, 0x00450652, 0x00000000 }, |
{ 0x05600031, 0x20000e24, 0x00000300, 0x040a8021 }, |
{ 0x00200040, 0x236035a5, 0x004500e0, 0x00450088 }, |
{ 0x0000040c, 0x23643ca5, 0x00000364, 0x00010001 }, |
{ 0x00000801, 0x23680061, 0x00000000, 0x0004000f }, |
{ 0x00600001, 0x24800021, 0x008d0360, 0x00000000 }, |
{ 0x04600031, 0x27400e21, 0x00000480, 0x02390001 }, |
{ 0x00000001, 0x24880061, 0x00000000, 0x0003000f }, |
{ 0x00600001, 0x25a00021, 0x008d0000, 0x00000000 }, |
{ 0x00200401, 0x25a001a1, 0x004500e0, 0x00000000 }, |
{ 0x00000801, 0x25a80061, 0x00000000, 0x0007000f }, |
{ 0x05600031, 0x20000e24, 0x000005a0, 0x0a0a8018 }, |
{ 0x00600001, 0x24a00021, 0x008d0740, 0x00000000 }, |
{ 0x00600001, 0x24c00021, 0x008d0760, 0x00000000 }, |
{ 0x05600031, 0x20000e24, 0x00000480, 0x060a8019 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pa_to_pl2.asm |
---|
0,0 → 1,17 |
// Module name: AVS |
.kernel PA_TO_pl2 |
.code |
#include "VP_Setup.g4a" |
#include "Set_Layer_0.g4a" |
#include "Set_AVS_Buf_0123_VYUA.g4a" |
#include "PA_AVS_Buf_0.g4a" |
#include "PA_AVS_Buf_1.g4a" |
#include "PA_AVS_Buf_2.g4a" |
#include "PA_AVS_Buf_3.g4a" |
#include "Save_AVS_NV12.g4a" |
#include "EOT.g4a" |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/pa_to_pl2.g75b |
---|
0,0 → 1,634 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000000d0 }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x000062ea }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006420 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000240 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000230 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000230 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000230 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00000401, 0x24a001a5, 0x000000e0, 0x00000000 }, |
{ 0x00000c08, 0x24a43da5, 0x000000e2, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x0007000f }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x44c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x44d00231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x44c10231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x44d10231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x44e00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x44f00231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x44e10231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x44f10231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x45000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x45100231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x45010231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x45110231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x45200231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x45300231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x45210231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x45310231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x0a0a8019 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pa_to_pl2.g7b |
---|
0,0 → 1,634 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000001a }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x000062ea }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006420 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000048 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000046 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000046 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000046 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00000401, 0x24a001a5, 0x000000e0, 0x00000000 }, |
{ 0x00000c08, 0x24a43da5, 0x000000e2, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x0007000f }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x44c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x44d00231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x44c10231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x44d10231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x44e00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x44f00231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x44e10231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x44f10231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x45000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x45100231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x45010231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x45110231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x45200231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x45300231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x45210231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x45310231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x0a0a8019 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pa_to_pl3.asm |
---|
0,0 → 1,17 |
// Module name: AVS |
.kernel PA_TO_PL3 |
.code |
#include "VP_Setup.g4a" |
#include "Set_Layer_0.g4a" |
#include "Set_AVS_Buf_0123_VYUA.g4a" |
#include "PA_AVS_Buf_0.g4a" |
#include "PA_AVS_Buf_1.g4a" |
#include "PA_AVS_Buf_2.g4a" |
#include "PA_AVS_Buf_3.g4a" |
#include "Save_AVS_PL3.g4a" |
#include "EOT.g4a" |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/pa_to_pl3.g75b |
---|
0,0 → 1,587 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000000d0 }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x000062ea }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006420 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000240 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000230 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000230 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000230 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x25c00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00200408, 0x24a03da5, 0x004500e0, 0x00010001 }, |
{ 0x00200408, 0x25c03da5, 0x004500e0, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x00070007 }, |
{ 0x00000801, 0x25c80061, 0x00000000, 0x00070007 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24c80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x25e00231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x25e80231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24d00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24d80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x25f00231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x25f80231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24e00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24e80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x26000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x26080231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24f00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24f80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x26100231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x26180231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8019 }, |
{ 0x05000031, 0x20000e24, 0x000005c0, 0x060a801a }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pa_to_pl3.g7b |
---|
0,0 → 1,587 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000001a }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x000062ea }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006420 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000048 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000046 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000046 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000046 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x050eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x00000000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x25c00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00200408, 0x24a03da5, 0x004500e0, 0x00010001 }, |
{ 0x00200408, 0x25c03da5, 0x004500e0, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x00070007 }, |
{ 0x00000801, 0x25c80061, 0x00000000, 0x00070007 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24c80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x25e00231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x25e80231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24d00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24d80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x25f00231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x25f80231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24e00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24e80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x26000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x26080231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24f00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24f80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x26100231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x26180231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8019 }, |
{ 0x05000031, 0x20000e24, 0x000005c0, 0x060a801a }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl2_to_pa.asm |
---|
0,0 → 1,17 |
// Module name: AVS |
.kernel PL2_TO_PA |
.code |
#include "VP_Setup.g4a" |
#include "Set_Layer_0.g4a" |
#include "Set_AVS_Buf_0123_PL2.g4a" |
#include "PL2_AVS_Buf_0.g4a" |
#include "PL2_AVS_Buf_1.g4a" |
#include "PL2_AVS_Buf_2.g4a" |
#include "PL2_AVS_Buf_3.g4a" |
#include "Save_AVS_PA.g4a" |
#include "EOT.g4a" |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/pl2_to_pa.g75b |
---|
0,0 → 1,697 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000000d0 }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000290 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082e2c, 0x0069005c, 0x03a003a0 }, |
{ 0x00000409, 0x23603da5, 0x000000e0, 0x00010001 }, |
{ 0x00000c01, 0x236401a5, 0x000000e2, 0x00000000 }, |
{ 0x00000801, 0x23680061, 0x00000000, 0x0001001f }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x02000200 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x06000600 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x08000800 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x00000002 }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x02000200 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x00000004 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x00000006 }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x00000008 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x0000000a }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x06000600 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x0000000c }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x0000000e }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl2_to_pa.g7b |
---|
0,0 → 1,697 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000001a }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000052 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082e2c, 0x0069005c, 0x03a003a0 }, |
{ 0x00000409, 0x23603da5, 0x000000e0, 0x00010001 }, |
{ 0x00000c01, 0x236401a5, 0x000000e2, 0x00000000 }, |
{ 0x00000801, 0x23680061, 0x00000000, 0x0001001f }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x02000200 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x06000600 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x08000800 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x00000002 }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x02000200 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x00000004 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x00000006 }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x00000008 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x0000000a }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x06000600 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x0000000c }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x0000000e }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl2_to_pl2.asm |
---|
0,0 → 1,17 |
// Module name: AVS |
.kernel PL2_TO_PL2 |
.code |
#include "VP_Setup.g4a" |
#include "Set_Layer_0.g4a" |
#include "Set_AVS_Buf_0123_PL2.g4a" |
#include "PL2_AVS_Buf_0.g4a" |
#include "PL2_AVS_Buf_1.g4a" |
#include "PL2_AVS_Buf_2.g4a" |
#include "PL2_AVS_Buf_3.g4a" |
#include "Save_AVS_NV12.g4a" |
#include "EOT.g4a" |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/pl2_to_pl2.g75b |
---|
0,0 → 1,654 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000000d0 }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000290 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00000401, 0x24a001a5, 0x000000e0, 0x00000000 }, |
{ 0x00000c08, 0x24a43da5, 0x000000e2, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x0007000f }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x44c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x44d00231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x44c10231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x44d10231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x44e00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x44f00231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x44e10231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x44f10231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x45000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x45100231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x45010231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x45110231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x45200231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x45300231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x45210231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x45310231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x0a0a8019 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl2_to_pl2.g7b |
---|
0,0 → 1,654 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000001a }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000052 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00000401, 0x24a001a5, 0x000000e0, 0x00000000 }, |
{ 0x00000c08, 0x24a43da5, 0x000000e2, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x0007000f }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x44c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x44d00231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x44c10231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x44d10231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x44e00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x44f00231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x44e10231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x44f10231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x45000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x45100231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x45010231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x45110231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x45200231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x45300231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x45210231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x45310231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x0a0a8019 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl2_to_pl3.asm |
---|
0,0 → 1,17 |
// Module name: AVS |
.kernel PL2_TO_PL3 |
.code |
#include "VP_Setup.g4a" |
#include "Set_Layer_0.g4a" |
#include "Set_AVS_Buf_0123_PL2.g4a" |
#include "PL2_AVS_Buf_0.g4a" |
#include "PL2_AVS_Buf_1.g4a" |
#include "PL2_AVS_Buf_2.g4a" |
#include "PL2_AVS_Buf_3.g4a" |
#include "Save_AVS_PL3.g4a" |
#include "EOT.g4a" |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/pl2_to_pl3.g75b |
---|
0,0 → 1,607 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000000d0 }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000290 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000280 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x25c00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00200408, 0x24a03da5, 0x004500e0, 0x00010001 }, |
{ 0x00200408, 0x25c03da5, 0x004500e0, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x00070007 }, |
{ 0x00000801, 0x25c80061, 0x00000000, 0x00070007 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24c80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x25e00231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x25e80231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24d00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24d80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x25f00231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x25f80231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24e00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24e80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x26000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x26080231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24f00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24f80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x26100231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x26180231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8019 }, |
{ 0x05000031, 0x20000e24, 0x000005c0, 0x060a801a }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl2_to_pl3.g7b |
---|
0,0 → 1,607 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000001a }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000052 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000050 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x048eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000a000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x25c00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00200408, 0x24a03da5, 0x004500e0, 0x00010001 }, |
{ 0x00200408, 0x25c03da5, 0x004500e0, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x00070007 }, |
{ 0x00000801, 0x25c80061, 0x00000000, 0x00070007 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24c80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x25e00231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x25e80231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24d00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24d80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x25f00231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x25f80231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24e00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24e80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x26000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x26080231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24f00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24f80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x26100231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x26180231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8019 }, |
{ 0x05000031, 0x20000e24, 0x000005c0, 0x060a801a }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl3_to_pa.asm |
---|
0,0 → 1,17 |
// Module name: AVS |
.kernel PL3_TO_PA |
.code |
#include "VP_Setup.g4a" |
#include "Set_Layer_0.g4a" |
#include "Set_AVS_Buf_0123_PL3.g4a" |
#include "PL3_AVS_Buf_0.g4a" |
#include "PL3_AVS_Buf_1.g4a" |
#include "PL3_AVS_Buf_2.g4a" |
#include "PL3_AVS_Buf_3.g4a" |
#include "Save_AVS_PA.g4a" |
#include "EOT.g4a" |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/pl3_to_pa.g75b |
---|
0,0 → 1,709 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000000d0 }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002c0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x29000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002b0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2b000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002b0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2d000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002b0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2f000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082e2c, 0x0069005c, 0x03a003a0 }, |
{ 0x00000409, 0x23603da5, 0x000000e0, 0x00010001 }, |
{ 0x00000c01, 0x236401a5, 0x000000e2, 0x00000000 }, |
{ 0x00000801, 0x23680061, 0x00000000, 0x0001001f }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x02000200 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x06000600 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x08000800 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x00000002 }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x02000200 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x00000004 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x00000006 }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x00000008 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x0000000a }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x06000600 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x0000000c }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x0000000e }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl3_to_pa.g7b |
---|
0,0 → 1,709 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000001a }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000058 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x29000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000056 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2b000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000056 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2d000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000056 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2f000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082e2c, 0x0069005c, 0x03a003a0 }, |
{ 0x00000409, 0x23603da5, 0x000000e0, 0x00010001 }, |
{ 0x00000c01, 0x236401a5, 0x000000e2, 0x00000000 }, |
{ 0x00000801, 0x23680061, 0x00000000, 0x0001001f }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x02000200 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x06000600 }, |
{ 0x80400040, 0xc0002d29, 0x008a8000, 0x00800080 }, |
{ 0x80400040, 0xc0202d29, 0x008a8020, 0x00800080 }, |
{ 0x80400040, 0xc0402d29, 0x008a8040, 0x00800080 }, |
{ 0x80400040, 0xc0602d29, 0x008a8060, 0x00800080 }, |
{ 0x80600040, 0xa4002d29, 0x008d8400, 0x00800080 }, |
{ 0x80600040, 0xa4202d29, 0x008d8420, 0x00800080 }, |
{ 0x80600040, 0xa4402d29, 0x008d8440, 0x00800080 }, |
{ 0x80600040, 0xa4602d29, 0x008d8460, 0x00800080 }, |
{ 0x80400040, 0xc8002d29, 0x008a8800, 0x00800080 }, |
{ 0x80400040, 0xc8202d29, 0x008a8820, 0x00800080 }, |
{ 0x80400040, 0xc8402d29, 0x008a8840, 0x00800080 }, |
{ 0x80400040, 0xc8602d29, 0x008a8860, 0x00800080 }, |
{ 0x80400040, 0xc0102d29, 0x008a8010, 0x00800080 }, |
{ 0x80400040, 0xc0302d29, 0x008a8030, 0x00800080 }, |
{ 0x80400040, 0xc0502d29, 0x008a8050, 0x00800080 }, |
{ 0x80400040, 0xc0702d29, 0x008a8070, 0x00800080 }, |
{ 0x80600040, 0xa4102d29, 0x008d8410, 0x00800080 }, |
{ 0x80600040, 0xa4302d29, 0x008d8430, 0x00800080 }, |
{ 0x80600040, 0xa4502d29, 0x008d8450, 0x00800080 }, |
{ 0x80600040, 0xa4702d29, 0x008d8470, 0x00800080 }, |
{ 0x80400040, 0xc8102d29, 0x008a8810, 0x00800080 }, |
{ 0x80400040, 0xc8302d29, 0x008a8830, 0x00800080 }, |
{ 0x80400040, 0xc8502d29, 0x008a8850, 0x00800080 }, |
{ 0x80400040, 0xc8702d29, 0x008a8870, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x08000800 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x00000002 }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x02000200 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x00000004 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x00000006 }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x00000008 }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x0000000a }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x06000600 }, |
{ 0x00000040, 0x23841ca5, 0x00000364, 0x0000000c }, |
{ 0x00000040, 0x24a41ca5, 0x00000364, 0x0000000e }, |
{ 0x00600401, 0xf8000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600401, 0xf8200231, 0x00cf8021, 0x00000000 }, |
{ 0x00800c01, 0xd0000231, 0x00d28401, 0x00000000 }, |
{ 0x00800c01, 0xd0200231, 0x00d28421, 0x00000000 }, |
{ 0x00600801, 0xf4000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600801, 0xf4200231, 0x00cf8821, 0x00000000 }, |
{ 0x00600401, 0xf9200231, 0x00cf8041, 0x00000000 }, |
{ 0x00600401, 0xf9400231, 0x00cf8061, 0x00000000 }, |
{ 0x00800c01, 0xd1200231, 0x00d28441, 0x00000000 }, |
{ 0x00800c01, 0xd1400231, 0x00d28461, 0x00000000 }, |
{ 0x00600801, 0xf5200231, 0x00cf8841, 0x00000000 }, |
{ 0x00600801, 0xf5400231, 0x00cf8861, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x060a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8018 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl3_to_pl2.asm |
---|
0,0 → 1,17 |
// Module name: AVS |
.kernel PL3_TO_PL2 |
.code |
#include "VP_Setup.g4a" |
#include "Set_Layer_0.g4a" |
#include "Set_AVS_Buf_0123_PL3.g4a" |
#include "PL3_AVS_Buf_0.g4a" |
#include "PL3_AVS_Buf_1.g4a" |
#include "PL3_AVS_Buf_2.g4a" |
#include "PL3_AVS_Buf_3.g4a" |
#include "Save_AVS_NV12.g4a" |
#include "EOT.g4a" |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/pl3_to_pl2.g75b |
---|
0,0 → 1,666 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000000d0 }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002c0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x29000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002b0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2b000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002b0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2d000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002b0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2f000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00000401, 0x24a001a5, 0x000000e0, 0x00000000 }, |
{ 0x00000c08, 0x24a43da5, 0x000000e2, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x0007000f }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x44c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x44d00231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x44c10231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x44d10231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x44e00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x44f00231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x44e10231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x44f10231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x45000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x45100231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x45010231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x45110231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x45200231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x45300231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x45210231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x45310231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x0a0a8019 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl3_to_pl2.g7b |
---|
0,0 → 1,666 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000001a }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000058 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x29000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000056 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2b000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000056 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2d000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000056 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2f000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00000401, 0x24a001a5, 0x000000e0, 0x00000000 }, |
{ 0x00000c08, 0x24a43da5, 0x000000e2, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x0007000f }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae8800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae8820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae8840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae8860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xc8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xc8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae8000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae8020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae8040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae8060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xc0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xc0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x00600008, 0x45c03d29, 0x00ae9800, 0x00010001 }, |
{ 0x00600008, 0x45e03d29, 0x00ae9820, 0x00010001 }, |
{ 0x00600008, 0x46003d29, 0x00ae9840, 0x00010001 }, |
{ 0x00600008, 0x46203d29, 0x00ae9860, 0x00010001 }, |
{ 0x00600040, 0x45c02529, 0x00ae05c0, 0x00ae05e0 }, |
{ 0x80600040, 0xd8002d29, 0x00ae05c0, 0x00800080 }, |
{ 0x00600040, 0x46002529, 0x00ae0600, 0x00ae0620 }, |
{ 0x80600040, 0xd8402d29, 0x00ae0600, 0x00800080 }, |
{ 0x00600008, 0x46403d29, 0x00ae9000, 0x00010001 }, |
{ 0x00600008, 0x46603d29, 0x00ae9020, 0x00010001 }, |
{ 0x00600008, 0x46803d29, 0x00ae9040, 0x00010001 }, |
{ 0x00600008, 0x46a03d29, 0x00ae9060, 0x00010001 }, |
{ 0x00600040, 0x46402529, 0x00ae0640, 0x00ae0660 }, |
{ 0x80600040, 0xd0002d29, 0x00ae0640, 0x00800080 }, |
{ 0x00600040, 0x46802529, 0x00ae0680, 0x00ae06a0 }, |
{ 0x80600040, 0xd0402d29, 0x00ae0680, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x44c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x44d00231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x44c10231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x44d10231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x44e00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x44f00231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x44e10231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x44f10231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x45000231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x45100231, 0x00cf8841, 0x00000000 }, |
{ 0x00600c01, 0x45010231, 0x00cf8001, 0x00000000 }, |
{ 0x00600801, 0x45110231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600401, 0x45200231, 0x00cf9801, 0x00000000 }, |
{ 0x00600c01, 0x45300231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x45210231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x45310231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x0a0a8019 }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl3_to_pl3.asm |
---|
0,0 → 1,17 |
// Module name: AVS |
.kernel PL3_TO_PL3 |
.code |
#include "VP_Setup.g4a" |
#include "Set_Layer_0.g4a" |
#include "Set_AVS_Buf_0123_PL3.g4a" |
#include "PL3_AVS_Buf_0.g4a" |
#include "PL3_AVS_Buf_1.g4a" |
#include "PL3_AVS_Buf_2.g4a" |
#include "PL3_AVS_Buf_3.g4a" |
#include "Save_AVS_PL3.g4a" |
#include "EOT.g4a" |
.end_code |
.end_kernel |
/drivers/video/i965/shaders/post_processing/gen7/pl3_to_pl3.g75b |
---|
0,0 → 1,619 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000090 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x000000f0 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000180 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000120 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000000d0 }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002c0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x29000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002b0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2b000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002b0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2d000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x000002b0 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x000001a0 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2f000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x25c00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00200408, 0x24a03da5, 0x004500e0, 0x00010001 }, |
{ 0x00200408, 0x25c03da5, 0x004500e0, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x00070007 }, |
{ 0x00000801, 0x25c80061, 0x00000000, 0x00070007 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24c80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x25e00231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x25e80231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24d00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24d80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x25f00231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x25f80231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24e00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24e80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x26000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x26080231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24f00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24f80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x26100231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x26180231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8019 }, |
{ 0x05000031, 0x20000e24, 0x000005c0, 0x060a801a }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/post_processing/gen7/pl3_to_pl3.g7b |
---|
0,0 → 1,619 |
{ 0x00600001, 0x23600021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23200021, 0x008d0000, 0x00000000 }, |
{ 0x00600001, 0x23400021, 0x008d0000, 0x00000000 }, |
{ 0x00600041, 0x206077bd, 0x008d0060, 0x000000f0 }, |
{ 0x00200001, 0x211401bd, 0x004500e0, 0x00000000 }, |
{ 0x01600010, 0x20002e24, 0x0000005a, 0x00010001 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00000000 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000114 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240003bc, 0x000000c0, 0x00000000 }, |
{ 0x00110048, 0x20c077bd, 0x00000060, 0x00000220 }, |
{ 0x00000001, 0x240003bc, 0x000000a0, 0x00000000 }, |
{ 0x00000048, 0x20a077bd, 0x00000080, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00020002 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000114 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240403bc, 0x000000c4, 0x00000000 }, |
{ 0x00110048, 0x20c477bd, 0x00000064, 0x00000220 }, |
{ 0x00000001, 0x240403bc, 0x000000a4, 0x00000000 }, |
{ 0x00000048, 0x20a477bd, 0x00000084, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00040004 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000114 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240803bc, 0x000000c8, 0x00000000 }, |
{ 0x00110048, 0x20c877bd, 0x00000068, 0x00000220 }, |
{ 0x00000001, 0x240803bc, 0x000000a8, 0x00000000 }, |
{ 0x00000048, 0x20a877bd, 0x00000088, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00060006 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000114 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x240c03bc, 0x000000cc, 0x00000000 }, |
{ 0x00110048, 0x20cc77bd, 0x0000006c, 0x00000220 }, |
{ 0x00000001, 0x240c03bc, 0x000000ac, 0x00000000 }, |
{ 0x00000048, 0x20ac77bd, 0x0000008c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x00080008 }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000114 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241003bc, 0x000000d0, 0x00000000 }, |
{ 0x00110048, 0x20d077bd, 0x00000070, 0x00000220 }, |
{ 0x00000001, 0x241003bc, 0x000000b0, 0x00000000 }, |
{ 0x00000048, 0x20b077bd, 0x00000090, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000a000a }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000114 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241403bc, 0x000000d4, 0x00000000 }, |
{ 0x00110048, 0x20d477bd, 0x00000074, 0x00000220 }, |
{ 0x00000001, 0x241403bc, 0x000000b4, 0x00000000 }, |
{ 0x00000048, 0x20b477bd, 0x00000094, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000c000c }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000114 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241803bc, 0x000000d8, 0x00000000 }, |
{ 0x00110048, 0x20d877bd, 0x00000078, 0x00000220 }, |
{ 0x00000001, 0x241803bc, 0x000000b8, 0x00000000 }, |
{ 0x00000048, 0x20b877bd, 0x00000098, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00000008, 0x22202d29, 0x00000044, 0x000e000e }, |
{ 0x00000005, 0x22202d29, 0x00000220, 0x00030003 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00010001 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000012 }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00020002 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x0000001e }, |
{ 0x01000010, 0x20002d2c, 0x02000220, 0x00030003 }, |
{ 0x00010220, 0x34001c00, 0x02001400, 0x00000030 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000114 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000118 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000118 }, |
{ 0x00000001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x00000024 }, |
{ 0x00110001, 0x2200013d, 0x00000040, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004114, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00000040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00000040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000220 }, |
{ 0x00000220, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00110001, 0x2200013d, 0x00000042, 0x00000000 }, |
{ 0x00110040, 0x222077bd, 0x00004118, 0x00000200 }, |
{ 0x00110040, 0x22207fbd, 0x00000220, 0xc1800000 }, |
{ 0x00110001, 0x241c03bc, 0x000000dc, 0x00000000 }, |
{ 0x00110048, 0x20dc77bd, 0x0000007c, 0x00000220 }, |
{ 0x00000001, 0x241c03bc, 0x000000bc, 0x00000000 }, |
{ 0x00000048, 0x20bc77bd, 0x0000009c, 0x00000114 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x22a00169, 0x00000000, 0xffffffff }, |
{ 0x02000010, 0x20002d24, 0x020000e4, 0x00000000 }, |
{ 0x02010010, 0x20002d24, 0x020000e6, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x0000001a }, |
{ 0x00000005, 0x23022d31, 0x00000044, 0x00030003 }, |
{ 0x00000401, 0x233803bd, 0x000000f4, 0x00000000 }, |
{ 0x00000c01, 0x233003bd, 0x00000060, 0x00000000 }, |
{ 0x00000c01, 0x233403bd, 0x00000080, 0x00000000 }, |
{ 0x00000c01, 0x232803bd, 0x000000c0, 0x00000000 }, |
{ 0x00000801, 0x232c03bd, 0x000000a0, 0x00000000 }, |
{ 0x00000001, 0x240803bc, 0x000000c0, 0x00000000 }, |
{ 0x00000048, 0x24087fbc, 0x00000060, 0x41000000 }, |
{ 0x00000448, 0x22e87fbd, 0x000000f4, 0x41e00000 }, |
{ 0x00000c41, 0x22e47fbd, 0x00000080, 0x40800000 }, |
{ 0x00000001, 0x241003bc, 0x00000060, 0x00000000 }, |
{ 0x00000c48, 0x22f07fbd, 0x000000f4, 0x41000000 }, |
{ 0x00000801, 0x22f40061, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006ea2 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00460046 }, |
{ 0x00400009, 0x22c02d8d, 0x00690400, 0x00050005 }, |
{ 0x00400001, 0x2400036c, 0x00000000, 0x00006204 }, |
{ 0x00400040, 0x24002d8c, 0x00690400, 0x00400040 }, |
{ 0x00400409, 0x22402d8d, 0x00690400, 0x00050005 }, |
{ 0x00000801, 0x22500061, 0x00000000, 0x01000100 }, |
{ 0x00000001, 0x22d00061, 0x00000000, 0x00400040 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000058 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000401, 0x233c0021, 0x000000fc, 0x00000000 }, |
{ 0x00000801, 0x23240121, 0x000000f8, 0x00000000 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x28000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x28800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x29000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000056 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000001 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2a000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2a800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2b000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000056 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000002 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2c000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2c800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2d000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00110220, 0x34001c00, 0x02001400, 0x00000056 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb400 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000d000 }, |
{ 0x00000040, 0x23240d21, 0x000000f8, 0x00000003 }, |
{ 0x00600001, 0x22200021, 0x008d0320, 0x00000000 }, |
{ 0x00000001, 0x21d00109, 0x00000600, 0x00000000 }, |
{ 0x00000001, 0x21d403bd, 0x00000228, 0x00000000 }, |
{ 0x02000005, 0x20002d28, 0x00000046, 0x00020002 }, |
{ 0x00110220, 0x34001c00, 0x00001400, 0x00000034 }, |
{ 0x02600005, 0x20002d28, 0x00000046, 0x00040004 }, |
{ 0x00610001, 0x240003bc, 0x00000228, 0x00000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000230, 0xc0000000 }, |
{ 0x00610048, 0x24007fbc, 0x00000238, 0x40400000 }, |
{ 0x00010001, 0x21c8039d, 0x00210400, 0x00000000 }, |
{ 0x00110001, 0x21c803bd, 0x00000228, 0x00000000 }, |
{ 0x00000005, 0x21c42d21, 0x00000046, 0xfff8fff8 }, |
{ 0x0000000c, 0x21c41c21, 0x000001c4, 0x00000003 }, |
{ 0x00000001, 0x21c4003d, 0x000001c4, 0x00000000 }, |
{ 0x00000041, 0x21c077bd, 0x000001c8, 0x000001c4 }, |
{ 0x00000040, 0x21c87fbd, 0x000001c0, 0x3ca00000 }, |
{ 0x00000040, 0x21cc7fbd, 0x000001c0, 0x3f7f0000 }, |
{ 0x05000010, 0x20007fbc, 0x000001c0, 0x00000000 }, |
{ 0x00000001, 0x21c003a5, 0x000001c0, 0x00000000 }, |
{ 0x00010040, 0x21c01ca5, 0x000001c0, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001c8, 0x00000000 }, |
{ 0x00000001, 0x21c803a5, 0x000001c8, 0x00000000 }, |
{ 0x00010040, 0x21c81ca5, 0x000001c8, 0xffffffff }, |
{ 0x05000010, 0x20007fbc, 0x000001cc, 0x00000000 }, |
{ 0x00000001, 0x21cc03a5, 0x000001cc, 0x00000000 }, |
{ 0x00010040, 0x21cc1ca5, 0x000001cc, 0xffffffff }, |
{ 0x00000001, 0x26000168, 0x00000000, 0x00000000 }, |
{ 0x03000010, 0x200014a4, 0x040001c8, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x04000228, 0x0000404c }, |
{ 0x01110010, 0x200014a4, 0x000001cc, 0x000001c0 }, |
{ 0x00010040, 0x222877bd, 0x00000228, 0x00000048 }, |
{ 0x00000001, 0x26000128, 0x000001d0, 0x00000000 }, |
{ 0x02000031, 0x2e000229, 0x00000200, 0x00000200 }, |
{ 0x00000001, 0x222803bd, 0x000001d4, 0x00000000 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044eb801 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2e800229, 0x00000200, 0x00000200 }, |
{ 0x00000040, 0x22000c20, 0x000002f4, 0x044ebc02 }, |
{ 0x00000001, 0x22080061, 0x00000000, 0x0000e000 }, |
{ 0x02000031, 0x2f000229, 0x00000200, 0x00000200 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00600001, 0x23800021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x24a00021, 0x008d0360, 0x00000000 }, |
{ 0x00600001, 0x25c00021, 0x008d0360, 0x00000000 }, |
{ 0x00200401, 0x238001a5, 0x004500e0, 0x00000000 }, |
{ 0x00200408, 0x24a03da5, 0x004500e0, 0x00010001 }, |
{ 0x00200408, 0x25c03da5, 0x004500e0, 0x00010001 }, |
{ 0x00000801, 0x23880061, 0x00000000, 0x000f000f }, |
{ 0x00000801, 0x24a80061, 0x00000000, 0x00070007 }, |
{ 0x00000801, 0x25c80061, 0x00000000, 0x00070007 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x80800040, 0xa4002d29, 0x00b18400, 0x00800080 }, |
{ 0x80800040, 0xa4202d29, 0x00b18420, 0x00800080 }, |
{ 0x80800040, 0xa4402d29, 0x00b18440, 0x00800080 }, |
{ 0x80800040, 0xa4602d29, 0x00b18460, 0x00800080 }, |
{ 0x80600040, 0xc8002d29, 0x00ae8800, 0x00800080 }, |
{ 0x80600040, 0xc8402d29, 0x00ae8840, 0x00800080 }, |
{ 0x80600040, 0xc0002d29, 0x00ae8000, 0x00800080 }, |
{ 0x80600040, 0xc0402d29, 0x00ae8040, 0x00800080 }, |
{ 0x80800040, 0xb4002d29, 0x00b19400, 0x00800080 }, |
{ 0x80800040, 0xb4202d29, 0x00b19420, 0x00800080 }, |
{ 0x80800040, 0xb4402d29, 0x00b19440, 0x00800080 }, |
{ 0x80800040, 0xb4602d29, 0x00b19460, 0x00800080 }, |
{ 0x80600040, 0xd8002d29, 0x00ae9800, 0x00800080 }, |
{ 0x80600040, 0xd8402d29, 0x00ae9840, 0x00800080 }, |
{ 0x80600040, 0xd0002d29, 0x00ae9000, 0x00800080 }, |
{ 0x80600040, 0xd0402d29, 0x00ae9040, 0x00800080 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x02000200 }, |
{ 0x00800401, 0x23a00231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x23b00231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x23c00231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x23d00231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24c00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24c80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x25e00231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x25e80231, 0x00cf8041, 0x00000000 }, |
{ 0x00400040, 0x22002da8, 0x006902c0, 0x04000400 }, |
{ 0x00800401, 0x23e00231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x23f00231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24000231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24100231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24d00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24d80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x25f00231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x25f80231, 0x00cf9041, 0x00000000 }, |
{ 0x00400040, 0x22082da8, 0x006902c0, 0x06000600 }, |
{ 0x00800401, 0x24200231, 0x00d28401, 0x00000000 }, |
{ 0x00800801, 0x24300231, 0x00d28421, 0x00000000 }, |
{ 0x00800401, 0x24400231, 0x00d28441, 0x00000000 }, |
{ 0x00800801, 0x24500231, 0x00d28461, 0x00000000 }, |
{ 0x00600401, 0x24e00231, 0x00cf8801, 0x00000000 }, |
{ 0x00600c01, 0x24e80231, 0x00cf8841, 0x00000000 }, |
{ 0x00600401, 0x26000231, 0x00cf8001, 0x00000000 }, |
{ 0x00600c01, 0x26080231, 0x00cf8041, 0x00000000 }, |
{ 0x00800401, 0x24600231, 0x00d29401, 0x00000000 }, |
{ 0x00800801, 0x24700231, 0x00d29421, 0x00000000 }, |
{ 0x00800401, 0x24800231, 0x00d29441, 0x00000000 }, |
{ 0x00800801, 0x24900231, 0x00d29461, 0x00000000 }, |
{ 0x00600c01, 0x24f00231, 0x00cf9801, 0x00000000 }, |
{ 0x00600801, 0x24f80231, 0x00cf9841, 0x00000000 }, |
{ 0x00600c01, 0x26100231, 0x00cf9001, 0x00000000 }, |
{ 0x00600801, 0x26180231, 0x00cf9041, 0x00000000 }, |
{ 0x05000031, 0x20000e24, 0x00000380, 0x120a8018 }, |
{ 0x05000031, 0x20000e24, 0x000004a0, 0x060a8019 }, |
{ 0x05000031, 0x20000e24, 0x000005c0, 0x060a801a }, |
{ 0x00600001, 0x2fe00021, 0x008d0000, 0x00000000 }, |
{ 0x07000031, 0x20001e24, 0x00000fe0, 0x82000010 }, |
/drivers/video/i965/shaders/render/exa_sf.g4b |
---|
0,0 → 1,15 |
{ 0x00400031, 0x20c01fbd, 0x0069002c, 0x01110001 }, |
{ 0x00400001, 0x206003be, 0x00690060, 0x00000000 }, |
{ 0x00400040, 0x20e077bd, 0x00690080, 0x006940a0 }, |
{ 0x00400041, 0x202077be, 0x006900e0, 0x000000c0 }, |
{ 0x00400040, 0x20e077bd, 0x006900a0, 0x00694060 }, |
{ 0x00400041, 0x204077be, 0x006900e0, 0x000000c8 }, |
{ 0x00600031, 0x20001fbc, 0x008d0000, 0x8640c800 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
/drivers/video/i965/shaders/render/exa_sf.g4b.gen5 |
---|
0,0 → 1,15 |
{ 0x00400031, 0x20c01fbd, 0x1069002c, 0x02100001 }, |
{ 0x00400001, 0x206003be, 0x00690060, 0x00000000 }, |
{ 0x00400040, 0x20e077bd, 0x00690080, 0x006940a0 }, |
{ 0x00400041, 0x202077be, 0x006900e0, 0x000000c0 }, |
{ 0x00400040, 0x20e077bd, 0x006900a0, 0x00694060 }, |
{ 0x00400041, 0x204077be, 0x006900e0, 0x000000c8 }, |
{ 0x00600031, 0x20001fbc, 0x648d0000, 0x8808c800 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
/drivers/video/i965/shaders/render/exa_wm_src_affine.g4b |
---|
0,0 → 1,8 |
{ 0x00802041, 0x23c077bd, 0x008d0100, 0x00000060 }, |
{ 0x00802041, 0x238077bd, 0x008d0140, 0x00000064 }, |
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 }, |
{ 0x00802040, 0x204077be, 0x008d03c0, 0x0000006c }, |
{ 0x00802041, 0x23c077bd, 0x008d0100, 0x00000070 }, |
{ 0x00802041, 0x238077bd, 0x008d0140, 0x00000074 }, |
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 }, |
{ 0x00802040, 0x208077be, 0x008d03c0, 0x0000007c }, |
/drivers/video/i965/shaders/render/exa_wm_src_affine.g4b.gen5 |
---|
0,0 → 1,8 |
{ 0x00802041, 0x23c077bd, 0x008d0100, 0x00000060 }, |
{ 0x00802041, 0x238077bd, 0x008d0140, 0x00000064 }, |
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 }, |
{ 0x00802040, 0x204077be, 0x008d03c0, 0x0000006c }, |
{ 0x00802041, 0x23c077bd, 0x008d0100, 0x00000070 }, |
{ 0x00802041, 0x238077bd, 0x008d0140, 0x00000074 }, |
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 }, |
{ 0x00802040, 0x208077be, 0x008d03c0, 0x0000007c }, |
/drivers/video/i965/shaders/render/exa_wm_src_affine.g6b |
---|
0,0 → 1,4 |
{ 0x0060005a, 0x204077be, 0x000000e0, 0x008d0040 }, |
{ 0x0060005a, 0x206077be, 0x000000e0, 0x008d0080 }, |
{ 0x0060005a, 0x208077be, 0x000000f0, 0x008d0040 }, |
{ 0x0060005a, 0x20a077be, 0x000000f0, 0x008d0080 }, |
/drivers/video/i965/shaders/render/exa_wm_src_affine.g7b |
---|
0,0 → 1,4 |
{ 0x0060005a, 0x284077bd, 0x000000e0, 0x008d0040 }, |
{ 0x0060005a, 0x286077bd, 0x000000e0, 0x008d0080 }, |
{ 0x0060005a, 0x288077bd, 0x000000f0, 0x008d0040 }, |
{ 0x0060005a, 0x28a077bd, 0x000000f0, 0x008d0080 }, |
/drivers/video/i965/shaders/render/exa_wm_src_sample_argb.g4b |
---|
0,0 → 1,4 |
{ 0x00000201, 0x20080061, 0x00000000, 0x00000000 }, |
{ 0x01800031, 0x21c01d29, 0x008d0000, 0x02580001 }, |
{ 0x00600041, 0x228077bd, 0x00200280, 0x00000040 }, |
{ 0x00600041, 0x22a077bd, 0x002002a0, 0x00000040 }, |
/drivers/video/i965/shaders/render/exa_wm_src_sample_argb.g4b.gen5 |
---|
0,0 → 1,4 |
{ 0x00000201, 0x20080061, 0x00000000, 0x00000000 }, |
{ 0x01800031, 0x21c01d29, 0x208d0000, 0x0a8a0001 }, |
{ 0x00600041, 0x228077bd, 0x00200280, 0x00000040 }, |
{ 0x00600041, 0x22a077bd, 0x002002a0, 0x00000040 }, |
/drivers/video/i965/shaders/render/exa_wm_src_sample_argb.g6b |
---|
0,0 → 1,5 |
{ 0x00000201, 0x20080061, 0x00000000, 0x00000000 }, |
{ 0x00600201, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x21c01cc9, 0x00000020, 0x0a8a0001 }, |
{ 0x00600041, 0x228077bd, 0x00200280, 0x000000c0 }, |
{ 0x00600041, 0x22a077bd, 0x002002a0, 0x000000c0 }, |
/drivers/video/i965/shaders/render/exa_wm_src_sample_argb.g7b |
---|
0,0 → 1,5 |
{ 0x00000201, 0x20080061, 0x00000000, 0x00000000 }, |
{ 0x00600201, 0x28200021, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x21c01ca9, 0x00000820, 0x0a8c0001 }, |
{ 0x00600241, 0x228077bd, 0x00200280, 0x000000c0 }, |
{ 0x00600241, 0x22a077bd, 0x002002a0, 0x000000c0 }, |
/drivers/video/i965/shaders/render/exa_wm_src_sample_planar.g4b |
---|
0,0 → 1,10 |
{ 0x02000005, 0x20002d3c, 0x00000040, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000004 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x01800031, 0x22001d29, 0x008d0000, 0x02520203 }, |
{ 0x01800031, 0x22401d29, 0x008d0000, 0x02520405 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000003 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000c000 }, |
{ 0x01800031, 0x22001d29, 0x008d0000, 0x02540203 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x01800031, 0x21c01d29, 0x008d0000, 0x02520001 }, |
/drivers/video/i965/shaders/render/exa_wm_src_sample_planar.g4b.gen5 |
---|
0,0 → 1,10 |
{ 0x02000005, 0x20002d3c, 0x00000040, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000008 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x01800031, 0x22001d29, 0x208d0000, 0x0a2a0203 }, |
{ 0x01800031, 0x22401d29, 0x208d0000, 0x0a2a0405 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000c000 }, |
{ 0x01800031, 0x22001d29, 0x208d0000, 0x0a4a0203 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x01800031, 0x21c01d29, 0x208d0000, 0x0a2a0001 }, |
/drivers/video/i965/shaders/render/exa_wm_src_sample_planar.g6b |
---|
0,0 → 1,15 |
{ 0x03000010, 0x20002d3c, 0x000000c0, 0x00000000 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x00600201, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x22001cc9, 0x00000020, 0x0a2a0203 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x00600201, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x22401cc9, 0x00000020, 0x0a2a0405 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000c000 }, |
{ 0x00600201, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x22001cc9, 0x00000020, 0x0a4a0203 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x00600201, 0x20200022, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x21c01cc9, 0x00000020, 0x0a2a0001 }, |
/drivers/video/i965/shaders/render/exa_wm_src_sample_planar.g7b |
---|
0,0 → 1,20 |
{ 0x01000010, 0x20002d3c, 0x000000c0, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000018 }, |
{ 0x01000010, 0x20002d3c, 0x000000c0, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x0000000e }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x00600201, 0x28200021, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x22001ca9, 0x00000820, 0x0a2c0203 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x00600201, 0x28200021, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x22401ca9, 0x00000820, 0x0a2c0405 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x0000000c }, |
{ 0x00800201, 0x220003fd, 0x00000000, 0x3f000000 }, |
{ 0x00800201, 0x224003fd, 0x00000000, 0x3f000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000006 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000c000 }, |
{ 0x00600201, 0x28200021, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x22001ca9, 0x00000820, 0x0a4c0203 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x00600201, 0x28200021, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x21c01ca9, 0x00000820, 0x0a2c0001 }, |
/drivers/video/i965/shaders/render/exa_wm_src_sample_planar.g7b.haswell |
---|
0,0 → 1,20 |
{ 0x01000010, 0x20002d3c, 0x000000c0, 0x00010001 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x000000c0 }, |
{ 0x01000010, 0x20002d3c, 0x000000c0, 0x00020002 }, |
{ 0x00010020, 0x34001c00, 0x00001400, 0x00000070 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x00600201, 0x28200021, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x22001ca9, 0x00000820, 0x0a2c0203 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x00600201, 0x28200021, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x22401ca9, 0x00000820, 0x0a2c0405 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000060 }, |
{ 0x00800201, 0x220003fd, 0x00000000, 0x3f000000 }, |
{ 0x00800201, 0x224003fd, 0x00000000, 0x3f000000 }, |
{ 0x00000020, 0x34001c00, 0x00001400, 0x00000030 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000c000 }, |
{ 0x00600201, 0x28200021, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x22001ca9, 0x00000820, 0x0a4c0203 }, |
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 }, |
{ 0x00600201, 0x28200021, 0x008d0000, 0x00000000 }, |
{ 0x02800031, 0x21c01ca9, 0x00000820, 0x0a2c0001 }, |
/drivers/video/i965/shaders/render/exa_wm_write.g4b |
---|
0,0 → 1,26 |
{ 0x00600001, 0x204003be, 0x008d01c0, 0x00000000 }, |
{ 0x00600001, 0x206003be, 0x008d0200, 0x00000000 }, |
{ 0x00600001, 0x208003be, 0x008d0240, 0x00000000 }, |
{ 0x00600001, 0x20a003be, 0x008d0280, 0x00000000 }, |
{ 0x00601001, 0x20c003be, 0x008d01e0, 0x00000000 }, |
{ 0x00601001, 0x20e003be, 0x008d0220, 0x00000000 }, |
{ 0x00601001, 0x210003be, 0x008d0260, 0x00000000 }, |
{ 0x00601001, 0x212003be, 0x008d02a0, 0x00000000 }, |
{ 0x00600001, 0x204003be, 0x008d01c0, 0x00000000 }, |
{ 0x00600001, 0x206003be, 0x008d0200, 0x00000000 }, |
{ 0x00600001, 0x208003be, 0x008d0240, 0x00000000 }, |
{ 0x00600001, 0x20a003be, 0x008d0280, 0x00000000 }, |
{ 0x00601001, 0x20c003be, 0x008d01e0, 0x00000000 }, |
{ 0x00601001, 0x20e003be, 0x008d0220, 0x00000000 }, |
{ 0x00601001, 0x210003be, 0x008d0260, 0x00000000 }, |
{ 0x00601001, 0x212003be, 0x008d02a0, 0x00000000 }, |
{ 0x00600201, 0x20200022, 0x008d0020, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x008d0000, 0x85a04800 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
/drivers/video/i965/shaders/render/exa_wm_write.g4b.gen5 |
---|
0,0 → 1,26 |
{ 0x00600001, 0x204003be, 0x008d01c0, 0x00000000 }, |
{ 0x00600001, 0x206003be, 0x008d0200, 0x00000000 }, |
{ 0x00600001, 0x208003be, 0x008d0240, 0x00000000 }, |
{ 0x00600001, 0x20a003be, 0x008d0280, 0x00000000 }, |
{ 0x00601001, 0x20c003be, 0x008d01e0, 0x00000000 }, |
{ 0x00601001, 0x20e003be, 0x008d0220, 0x00000000 }, |
{ 0x00601001, 0x210003be, 0x008d0260, 0x00000000 }, |
{ 0x00601001, 0x212003be, 0x008d02a0, 0x00000000 }, |
{ 0x00600001, 0x204003be, 0x008d01c0, 0x00000000 }, |
{ 0x00600001, 0x206003be, 0x008d0200, 0x00000000 }, |
{ 0x00600001, 0x208003be, 0x008d0240, 0x00000000 }, |
{ 0x00600001, 0x20a003be, 0x008d0280, 0x00000000 }, |
{ 0x00601001, 0x20c003be, 0x008d01e0, 0x00000000 }, |
{ 0x00601001, 0x20e003be, 0x008d0220, 0x00000000 }, |
{ 0x00601001, 0x210003be, 0x008d0260, 0x00000000 }, |
{ 0x00601001, 0x212003be, 0x008d02a0, 0x00000000 }, |
{ 0x00600201, 0x20200022, 0x008d0020, 0x00000000 }, |
{ 0x00800031, 0x24001d28, 0x548d0000, 0x94084800 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
/drivers/video/i965/shaders/render/exa_wm_write.g6b |
---|
0,0 → 1,17 |
{ 0x00600001, 0x204003be, 0x008d01c0, 0x00000000 }, |
{ 0x00600001, 0x206003be, 0x008d01e0, 0x00000000 }, |
{ 0x00600001, 0x208003be, 0x008d0200, 0x00000000 }, |
{ 0x00600001, 0x20a003be, 0x008d0220, 0x00000000 }, |
{ 0x00600001, 0x20c003be, 0x008d0240, 0x00000000 }, |
{ 0x00600001, 0x20e003be, 0x008d0260, 0x00000000 }, |
{ 0x00600001, 0x210003be, 0x008d0280, 0x00000000 }, |
{ 0x00600001, 0x212003be, 0x008d02a0, 0x00000000 }, |
{ 0x05800031, 0x24001cc8, 0x00000040, 0x90019000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
/drivers/video/i965/shaders/render/exa_wm_write.g7b |
---|
0,0 → 1,19 |
{ 0x00600201, 0x28000021, 0x008d0000, 0x00000000 }, |
{ 0x00600201, 0x28200021, 0x008d0020, 0x00000000 }, |
{ 0x00600201, 0x284003bd, 0x002001c0, 0x00000000 }, |
{ 0x00600201, 0x286003bd, 0x002001e0, 0x00000000 }, |
{ 0x00600201, 0x288003bd, 0x00200200, 0x00000000 }, |
{ 0x00600201, 0x28a003bd, 0x00200220, 0x00000000 }, |
{ 0x00600201, 0x28c003bd, 0x00200240, 0x00000000 }, |
{ 0x00600201, 0x28e003bd, 0x00200260, 0x00000000 }, |
{ 0x00600201, 0x290003bd, 0x00200280, 0x00000000 }, |
{ 0x00600201, 0x292003bd, 0x002002a0, 0x00000000 }, |
{ 0x05800031, 0x20001ca8, 0x00000800, 0x940b1000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 }, |
/drivers/video/i965/shaders/render/exa_wm_xy.g4b |
---|
0,0 → 1,4 |
{ 0x00800040, 0x23c06d29, 0x00480028, 0x10101010 }, |
{ 0x00800040, 0x23806d29, 0x0048002a, 0x11001100 }, |
{ 0x00802040, 0x2100753d, 0x008d03c0, 0x00004020 }, |
{ 0x00802040, 0x2140753d, 0x008d0380, 0x00004024 }, |
/drivers/video/i965/shaders/render/exa_wm_xy.g4b.gen5 |
---|
0,0 → 1,4 |
{ 0x00800040, 0x23c06d29, 0x00480028, 0x10101010 }, |
{ 0x00800040, 0x23806d29, 0x0048002a, 0x11001100 }, |
{ 0x00802040, 0x2100753d, 0x008d03c0, 0x00004020 }, |
{ 0x00802040, 0x2140753d, 0x008d0380, 0x00004024 }, |
/drivers/video/i965/shaders/render/exa_wm_yuv_rgb.g4b |
---|
0,0 → 1,12 |
{ 0x00802040, 0x22c07fbd, 0x008d01c0, 0xbd808081 }, |
{ 0x00802041, 0x22c07fbd, 0x008d02c0, 0x3f94fdf4 }, |
{ 0x00802040, 0x23007fbd, 0x008d0240, 0xbf008084 }, |
{ 0x00802040, 0x23407fbd, 0x008d0200, 0xbf008084 }, |
{ 0x00802001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x80802048, 0x21c07fbd, 0x008d0300, 0x3fcc49ba }, |
{ 0x00802001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x00802048, 0x24007fbc, 0x008d0300, 0xbf5020c5 }, |
{ 0x80802048, 0x22007fbd, 0x008d0340, 0xbec8b439 }, |
{ 0x00802001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x80802048, 0x22407fbd, 0x008d0340, 0x40011687 }, |
{ 0x00802001, 0x228003fd, 0x00000000, 0x3f800000 }, |
/drivers/video/i965/shaders/render/exa_wm_yuv_rgb.g4b.gen5 |
---|
0,0 → 1,12 |
{ 0x00802040, 0x22c07fbd, 0x008d01c0, 0xbd808081 }, |
{ 0x00802041, 0x22c07fbd, 0x008d02c0, 0x3f94fdf4 }, |
{ 0x00802040, 0x23007fbd, 0x008d0240, 0xbf008084 }, |
{ 0x00802040, 0x23407fbd, 0x008d0200, 0xbf008084 }, |
{ 0x00802001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x80802048, 0x21c07fbd, 0x008d0300, 0x3fcc49ba }, |
{ 0x00802001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x00802048, 0x24007fbc, 0x008d0300, 0xbf5020c5 }, |
{ 0x80802048, 0x22007fbd, 0x008d0340, 0xbec8b439 }, |
{ 0x00802001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x80802048, 0x22407fbd, 0x008d0340, 0x40011687 }, |
{ 0x00802001, 0x228003fd, 0x00000000, 0x3f800000 }, |
/drivers/video/i965/shaders/render/exa_wm_yuv_rgb.g6b |
---|
0,0 → 1,12 |
{ 0x00800040, 0x22c07fbd, 0x008d01c0, 0xbd808081 }, |
{ 0x00800041, 0x22c07fbd, 0x008d02c0, 0x3f94fdf4 }, |
{ 0x00800040, 0x23007fbd, 0x008d0240, 0xbf008084 }, |
{ 0x00800040, 0x23407fbd, 0x008d0200, 0xbf008084 }, |
{ 0x00800001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x80800048, 0x21c07fbd, 0x008d0300, 0x3fcc49ba }, |
{ 0x00800001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x00800048, 0x24007fbc, 0x008d0300, 0xbf5020c5 }, |
{ 0x80800048, 0x22007fbd, 0x008d0340, 0xbec8b439 }, |
{ 0x00800001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x80800048, 0x22407fbd, 0x008d0340, 0x40011687 }, |
{ 0x00800001, 0x228003fd, 0x00000000, 0x3f800000 }, |
/drivers/video/i965/shaders/render/exa_wm_yuv_rgb.g7b |
---|
0,0 → 1,12 |
{ 0x00800040, 0x22c07fbd, 0x008d01c0, 0xbd808081 }, |
{ 0x00800041, 0x22c07fbd, 0x008d02c0, 0x3f94fdf4 }, |
{ 0x00800040, 0x23007fbd, 0x008d0240, 0xbf008084 }, |
{ 0x00800040, 0x23407fbd, 0x008d0200, 0xbf008084 }, |
{ 0x00800001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x80800048, 0x21c07fbd, 0x008d0300, 0x3fcc49ba }, |
{ 0x00800001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x00800048, 0x24007fbc, 0x008d0300, 0xbf5020c5 }, |
{ 0x80800048, 0x22007fbd, 0x008d0340, 0xbec8b439 }, |
{ 0x00800001, 0x240003bc, 0x008d02c0, 0x00000000 }, |
{ 0x80800048, 0x22407fbd, 0x008d0340, 0x40011687 }, |
{ 0x00800001, 0x228003fd, 0x00000000, 0x3f800000 }, |
/drivers/video/i965/shaders/vme/inter_frame.g6b |
---|
0,0 → 1,28 |
{ 0x00800001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00200041, 0x24082e29, 0x004500a0, 0x00100010 }, |
{ 0x00200041, 0x24002e29, 0x004500a0, 0x00100010 }, |
{ 0x00200040, 0x24003dad, 0x00450400, 0xfff8fff8 }, |
{ 0x00000001, 0x240c0061, 0x00000000, 0x7e203000 }, |
{ 0x00000001, 0x24140231, 0x00000014, 0x00000000 }, |
{ 0x00000001, 0x24160169, 0x00000000, 0x20202020 }, |
{ 0x00600001, 0x20000022, 0x008d0400, 0x00000000 }, |
{ 0x00000001, 0x24240061, 0x00000000, 0x00000020 }, |
{ 0x00000001, 0x24280061, 0x00000000, 0x00003f3f }, |
{ 0x00600001, 0x20200022, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x20400062, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20400062, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20600062, 0x00000000, 0x00000000 }, |
{ 0x08600031, 0x21801cdd, 0x00000000, 0x08482000 }, |
{ 0x00000041, 0x24684521, 0x000000a2, 0x000000a1 }, |
{ 0x00000040, 0x24684421, 0x00000468, 0x000000a0 }, |
{ 0x00000041, 0x24680c21, 0x00000468, 0x00000004 }, |
{ 0x00000001, 0x24740231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d0460, 0x00000000 }, |
{ 0x00200001, 0x24600229, 0x004501a0, 0x00000000 }, |
{ 0x00200040, 0x24603dad, 0x00450460, 0xffe0ffe0 }, |
{ 0x00600001, 0x20200022, 0x008c0460, 0x00000000 }, |
{ 0x00600001, 0x20400022, 0x008c0460, 0x00000000 }, |
{ 0x05800031, 0x22001cdd, 0x00000000, 0x061b0303 }, |
{ 0x00600001, 0x20000022, 0x008d0000, 0x00000000 }, |
{ 0x07800031, 0x24001cc8, 0x00000000, 0x82000010 }, |
/drivers/video/i965/shaders/vme/inter_frame.g7b |
---|
0,0 → 1,28 |
{ 0x00800001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00200041, 0x24082e29, 0x004500a0, 0x00100010 }, |
{ 0x00200041, 0x24002e29, 0x004500a0, 0x00100010 }, |
{ 0x00200040, 0x24003dad, 0x00450400, 0xfff8fff8 }, |
{ 0x00000001, 0x240c0061, 0x00000000, 0x7e203000 }, |
{ 0x00000001, 0x24140231, 0x00000014, 0x00000000 }, |
{ 0x00000001, 0x24160169, 0x00000000, 0x20202020 }, |
{ 0x00600001, 0x28000021, 0x008d0400, 0x00000000 }, |
{ 0x00000001, 0x24240061, 0x00000000, 0x00000020 }, |
{ 0x00000001, 0x24280061, 0x00000000, 0x00003f3f }, |
{ 0x00600001, 0x28200021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28800061, 0x00000000, 0x00000000 }, |
{ 0x08600031, 0x21801cbd, 0x00000800, 0x0a682001 }, |
{ 0x00000041, 0x24684521, 0x000000a2, 0x000000a1 }, |
{ 0x00000040, 0x24684421, 0x00000468, 0x000000a0 }, |
{ 0x00000041, 0x24680c21, 0x00000468, 0x00000004 }, |
{ 0x00000001, 0x24740231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, |
{ 0x00200001, 0x24600229, 0x004501a0, 0x00000000 }, |
{ 0x00200040, 0x24603dad, 0x00450460, 0xffe0ffe0 }, |
{ 0x00600001, 0x28200021, 0x008c0460, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008c0460, 0x00000000 }, |
{ 0x0a800031, 0x20001cac, 0x00000800, 0x060a0300 }, |
{ 0x00600001, 0x28000021, 0x008d0000, 0x00000000 }, |
{ 0x07800031, 0x24001ca8, 0x00000800, 0x82000010 }, |
/drivers/video/i965/shaders/vme/inter_frame_haswell.g75b |
---|
0,0 → 1,137 |
{ 0x00800001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00200009, 0x24002e25, 0x004500a0, 0x00040004 }, |
{ 0x00000040, 0x24003ca5, 0x00000400, 0xfff8fff8 }, |
{ 0x00000040, 0x24043ca5, 0x00000404, 0xffffffff }, |
{ 0x00000001, 0x240800e1, 0x00000000, 0x0000001f }, |
{ 0x00000001, 0x24140231, 0x00000014, 0x00000000 }, |
{ 0x00200009, 0x24202e25, 0x004500a0, 0x00040004 }, |
{ 0x00000040, 0x24203ca5, 0x00000420, 0xfffcfffc }, |
{ 0x00000001, 0x242800e1, 0x00000000, 0x000f0003 }, |
{ 0x00000001, 0x24340231, 0x00000014, 0x00000000 }, |
{ 0x00200009, 0x24482e29, 0x004500a0, 0x00040004 }, |
{ 0x00000001, 0x24540231, 0x00000014, 0x00000000 }, |
{ 0x00000041, 0x24884521, 0x000000a2, 0x000000a1 }, |
{ 0x00000040, 0x24884421, 0x00000488, 0x000000a0 }, |
{ 0x00000041, 0x24880c21, 0x00000488, 0x00000018 }, |
{ 0x00000001, 0x24940231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0400, 0x00000000 }, |
{ 0x04600031, 0x23801cb1, 0x00000800, 0x02190004 }, |
{ 0x00600001, 0x28000021, 0x008d0420, 0x00000000 }, |
{ 0x04600031, 0x23a01cb1, 0x00000800, 0x02290004 }, |
{ 0x00600001, 0x25600021, 0x008d0020, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d0560, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00000005, 0x23840c21, 0x00000384, 0xff000000 }, |
{ 0x00600001, 0x28800021, 0x008d0380, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x28a00231, 0x00cf03a3, 0x00000000 }, |
{ 0x00000001, 0x28b00061, 0x00000000, 0x11111111 }, |
{ 0x00000001, 0x28bc0061, 0x00000000, 0x00010101 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0440, 0x00000000 }, |
{ 0x00000001, 0x24000169, 0x00000000, 0x00010001 }, |
{ 0x00000001, 0x28850231, 0x00000400, 0x00000000 }, |
{ 0x00000001, 0x247c0169, 0x00000000, 0x00000000 }, |
{ 0x01000005, 0x20002e28, 0x000000a4, 0x00010001 }, |
{ 0x00010001, 0x247c00f1, 0x00000000, 0x00000002 }, |
{ 0x00000001, 0x247d0231, 0x000000a5, 0x00000000 }, |
{ 0x00000001, 0x24000169, 0x00000000, 0x00200020 }, |
{ 0x00000001, 0x247e0231, 0x00000400, 0x00000000 }, |
{ 0x00000001, 0x244c0061, 0x00000000, 0x00800000 }, |
{ 0x00600001, 0x28000021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, |
{ 0x0d600031, 0x21801ca1, 0x00000800, 0x0e782000 }, |
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 }, |
{ 0x00000001, 0x28200021, 0x00000180, 0x00000000 }, |
{ 0x00000001, 0x28240021, 0x00000190, 0x00000000 }, |
{ 0x00000001, 0x28280021, 0x00000194, 0x00000000 }, |
{ 0x00000001, 0x282c0021, 0x00000198, 0x00000000 }, |
{ 0x00000001, 0x28300129, 0x0000018c, 0x00000000 }, |
{ 0x00000001, 0x28340021, 0x00000188, 0x00000000 }, |
{ 0x00000001, 0x28380021, 0x0000019c, 0x00000000 }, |
{ 0x00000001, 0x283c0021, 0x00000488, 0x00000000 }, |
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0203 }, |
{ 0x00000001, 0x244c0061, 0x00000000, 0x00200000 }, |
{ 0x00000001, 0x24560169, 0x00000000, 0x28302830 }, |
{ 0x00000001, 0x24400021, 0x00000448, 0x00000000 }, |
{ 0x00000040, 0x24403dad, 0x00000440, 0xfff0fff0 }, |
{ 0x00000040, 0x24423dad, 0x00000442, 0xfff4fff4 }, |
{ 0x00000001, 0x244001ed, 0x00000000, 0xfff0fff0 }, |
{ 0x00000001, 0x244201ed, 0x00000000, 0xfff4fff4 }, |
{ 0x00000001, 0x24440021, 0x00000440, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0440, 0x00000000 }, |
{ 0x00000001, 0x24600061, 0x00000000, 0x00000002 }, |
{ 0x00000001, 0x24640061, 0x00000000, 0x00000020 }, |
{ 0x00000001, 0x24680061, 0x00000000, 0x30003030 }, |
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d0560, 0x00000000 }, |
{ 0x00000001, 0x28600061, 0x00000000, 0x01010101 }, |
{ 0x00000001, 0x28640061, 0x00000000, 0x10010101 }, |
{ 0x00000001, 0x28680061, 0x00000000, 0x0f0f0f0f }, |
{ 0x00000001, 0x286c0061, 0x00000000, 0x100f0f0f }, |
{ 0x00000001, 0x28700061, 0x00000000, 0x01010101 }, |
{ 0x00000001, 0x28740061, 0x00000000, 0x10010101 }, |
{ 0x00000001, 0x28780061, 0x00000000, 0x0f0f0f0f }, |
{ 0x00000001, 0x287c0061, 0x00000000, 0x100f0f0f }, |
{ 0x00000001, 0x28800061, 0x00000000, 0x01010101 }, |
{ 0x00000001, 0x28840061, 0x00000000, 0x10010101 }, |
{ 0x00000001, 0x28880061, 0x00000000, 0x0f0f0f0f }, |
{ 0x00000001, 0x288c0061, 0x00000000, 0x000f0f0f }, |
{ 0x00400001, 0x28900061, 0x00000000, 0x00000000 }, |
{ 0x08600031, 0x21801ca1, 0x00000800, 0x0a784000 }, |
{ 0x00000001, 0x25740061, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x25750231, 0x00000199, 0x00000000 }, |
{ 0x00000001, 0x25760231, 0x0000019a, 0x00000000 }, |
{ 0x00000005, 0x24002d29, 0x00000180, 0x00030003 }, |
{ 0x00000001, 0x25740231, 0x00000400, 0x00000000 }, |
{ 0x00000040, 0x24880c21, 0x00000488, 0x00000002 }, |
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 }, |
{ 0x00000001, 0x28200021, 0x00000180, 0x00000000 }, |
{ 0x00000001, 0x28240021, 0x00000198, 0x00000000 }, |
{ 0x00000001, 0x28280021, 0x00000188, 0x00000000 }, |
{ 0x00000001, 0x282c0021, 0x00000488, 0x00000000 }, |
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0003 }, |
{ 0x00000040, 0x24880c21, 0x00000488, 0x00000001 }, |
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d01a0, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d01c0, 0x00000000 }, |
{ 0x00600001, 0x28600021, 0x008d01e0, 0x00000000 }, |
{ 0x00600001, 0x28800021, 0x008d0200, 0x00000000 }, |
{ 0x0a800031, 0x20001cac, 0x00000800, 0x0a0a0403 }, |
{ 0x00000040, 0x24880c21, 0x00000488, 0x00000008 }, |
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0240, 0x00000000 }, |
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0203 }, |
{ 0x00600001, 0x28600021, 0x008d01a0, 0x00000000 }, |
{ 0x00600001, 0x28800021, 0x008d01c0, 0x00000000 }, |
{ 0x00600001, 0x28a00021, 0x008d01e0, 0x00000000 }, |
{ 0x00600001, 0x28c00021, 0x008d0200, 0x00000000 }, |
{ 0x00000001, 0x244c0061, 0x00000000, 0x00243000 }, |
{ 0x00600001, 0x28000021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d0560, 0x00000000 }, |
{ 0x0d600031, 0x21801ca1, 0x00000800, 0x0e786000 }, |
{ 0x00000040, 0x24880c21, 0x00000488, 0x00000002 }, |
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 }, |
{ 0x00000001, 0x28200021, 0x00000180, 0x00000000 }, |
{ 0x00000001, 0x28240021, 0x00000198, 0x00000000 }, |
{ 0x00000001, 0x28280021, 0x00000188, 0x00000000 }, |
{ 0x00000001, 0x282c0021, 0x00000574, 0x00000000 }, |
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0003 }, |
{ 0x00000040, 0x24880c21, 0x00000488, 0x00000001 }, |
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d01a0, 0x00000000 }, |
{ 0x00600001, 0x28400021, 0x008d01c0, 0x00000000 }, |
{ 0x00600001, 0x28600021, 0x008d01e0, 0x00000000 }, |
{ 0x00600001, 0x28800021, 0x008d0200, 0x00000000 }, |
{ 0x0a800031, 0x20001cac, 0x00000800, 0x0a0a0403 }, |
{ 0x00000040, 0x24880c21, 0x00000488, 0x00000008 }, |
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0240, 0x00000000 }, |
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0203 }, |
{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 }, |
{ 0x07800031, 0x24001ca8, 0x00000e00, 0x82000010 }, |
/drivers/video/i965/shaders/vme/intra_frame.g6b |
---|
0,0 → 1,47 |
{ 0x00800001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00200041, 0x24002e25, 0x004500a0, 0x00100010 }, |
{ 0x00000040, 0x24003ca5, 0x00000400, 0xfff8fff8 }, |
{ 0x00000040, 0x24043ca5, 0x00000404, 0xffffffff }, |
{ 0x00000001, 0x240800e1, 0x00000000, 0x0000001f }, |
{ 0x00000001, 0x24140231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d0400, 0x00000000 }, |
{ 0x04600031, 0x22401cd1, 0x00000000, 0x02188004 }, |
{ 0x00200041, 0x24002e25, 0x004500a0, 0x00100010 }, |
{ 0x00000040, 0x24003ca5, 0x00000400, 0xfffcfffc }, |
{ 0x00000001, 0x240800e1, 0x00000000, 0x000f0003 }, |
{ 0x00000001, 0x24140231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d0400, 0x00000000 }, |
{ 0x04600031, 0x22801cd1, 0x00000000, 0x02288004 }, |
{ 0x00200041, 0x24082e29, 0x004500a0, 0x00100010 }, |
{ 0x00000001, 0x24140231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d0400, 0x00000000 }, |
{ 0x00000001, 0x243c00f1, 0x00000000, 0x00000006 }, |
{ 0x02000010, 0x20002e28, 0x000000a0, 0x00000000 }, |
{ 0x00010040, 0x243d1e31, 0x0000043d, 0x00000060 }, |
{ 0x02000010, 0x20002e28, 0x000000a1, 0x00000000 }, |
{ 0x00010040, 0x243d1e31, 0x0000043d, 0x00000010 }, |
{ 0x02000041, 0x20004628, 0x000000a0, 0x000000a1 }, |
{ 0x00010040, 0x243d1e31, 0x0000043d, 0x00000004 }, |
{ 0x00000040, 0x24402e2d, 0x000000a0, 0x00010001 }, |
{ 0x00000040, 0x2440352d, 0x000000a2, 0x00004440 }, |
{ 0x02000041, 0x200045a0, 0x00000440, 0x000000a1 }, |
{ 0x00010040, 0x243d1e31, 0x0000043d, 0x00000008 }, |
{ 0x00600001, 0x20200022, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x20400062, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x20400022, 0x008d0240, 0x00000000 }, |
{ 0x00600001, 0x206000e2, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x20600232, 0x00cf0283, 0x00000000 }, |
{ 0x00000001, 0x20700062, 0x00000000, 0x11111111 }, |
{ 0x08600031, 0x21801cdd, 0x00000000, 0x08184000 }, |
{ 0x00000041, 0x24684521, 0x000000a2, 0x000000a1 }, |
{ 0x00000040, 0x24684421, 0x00000468, 0x000000a0 }, |
{ 0x00000001, 0x24740231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x20000022, 0x008d0460, 0x00000000 }, |
{ 0x00000001, 0x20200022, 0x00000180, 0x00000000 }, |
{ 0x00000001, 0x20240022, 0x00000190, 0x00000000 }, |
{ 0x00000001, 0x20280022, 0x00000194, 0x00000000 }, |
{ 0x00000001, 0x202c0022, 0x00000198, 0x00000000 }, |
{ 0x05800031, 0x22001cdd, 0x00000000, 0x041b0003 }, |
{ 0x00600001, 0x20000022, 0x008d0000, 0x00000000 }, |
{ 0x07800031, 0x24001cc8, 0x00000000, 0x82000010 }, |
/drivers/video/i965/shaders/vme/intra_frame.g7b |
---|
0,0 → 1,47 |
{ 0x00800001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00200041, 0x24002e25, 0x004500a0, 0x00100010 }, |
{ 0x00000040, 0x24003ca5, 0x00000400, 0xfff8fff8 }, |
{ 0x00000040, 0x24043ca5, 0x00000404, 0xffffffff }, |
{ 0x00000001, 0x240800e1, 0x00000000, 0x0000001f }, |
{ 0x00000001, 0x24140231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0400, 0x00000000 }, |
{ 0x04600031, 0x22401cb1, 0x00000800, 0x02190004 }, |
{ 0x00200041, 0x24002e25, 0x004500a0, 0x00100010 }, |
{ 0x00000040, 0x24003ca5, 0x00000400, 0xfffcfffc }, |
{ 0x00000001, 0x240800e1, 0x00000000, 0x000f0003 }, |
{ 0x00000001, 0x24140231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0400, 0x00000000 }, |
{ 0x04600031, 0x22801cb1, 0x00000800, 0x02290004 }, |
{ 0x00200041, 0x24082e29, 0x004500a0, 0x00100010 }, |
{ 0x00000001, 0x24140231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0400, 0x00000000 }, |
{ 0x00000001, 0x243c00f1, 0x00000000, 0x00000006 }, |
{ 0x02000010, 0x20002e28, 0x000000a0, 0x00000000 }, |
{ 0x00010040, 0x243d1e31, 0x0000043d, 0x00000060 }, |
{ 0x02000010, 0x20002e28, 0x000000a1, 0x00000000 }, |
{ 0x00010040, 0x243d1e31, 0x0000043d, 0x00000010 }, |
{ 0x02000041, 0x20004628, 0x000000a0, 0x000000a1 }, |
{ 0x00010040, 0x243d1e31, 0x0000043d, 0x00000004 }, |
{ 0x00000040, 0x24402e2d, 0x000000a0, 0x00010001 }, |
{ 0x00000040, 0x2440352d, 0x000000a2, 0x00004440 }, |
{ 0x02000041, 0x200045a0, 0x00000440, 0x000000a1 }, |
{ 0x00010040, 0x243d1e31, 0x0000043d, 0x00000008 }, |
{ 0x00600001, 0x28200021, 0x008d0420, 0x00000000 }, |
{ 0x00600001, 0x28400061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28600021, 0x008d0240, 0x00000000 }, |
{ 0x00600001, 0x288000e1, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x28800231, 0x00cf0283, 0x00000000 }, |
{ 0x00000001, 0x28900061, 0x00000000, 0x11111111 }, |
{ 0x08600031, 0x21801cbd, 0x00000800, 0x0a184001 }, |
{ 0x00000041, 0x24684521, 0x000000a2, 0x000000a1 }, |
{ 0x00000040, 0x24684421, 0x00000468, 0x000000a0 }, |
{ 0x00000001, 0x24740231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0460, 0x00000000 }, |
{ 0x00000001, 0x28200021, 0x00000180, 0x00000000 }, |
{ 0x00000001, 0x28240021, 0x00000190, 0x00000000 }, |
{ 0x00000001, 0x28280021, 0x00000194, 0x00000000 }, |
{ 0x00000001, 0x282c0021, 0x00000198, 0x00000000 }, |
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0000 }, |
{ 0x00600001, 0x28000021, 0x008d0000, 0x00000000 }, |
{ 0x07800031, 0x24001ca8, 0x00000800, 0x82000010 }, |
/drivers/video/i965/shaders/vme/intra_frame_haswell.g75b |
---|
0,0 → 1,57 |
{ 0x00800001, 0x24000061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x24400061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x24800061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x24c00061, 0x00000000, 0x00000000 }, |
{ 0x00200009, 0x24002e25, 0x004500a0, 0x00040004 }, |
{ 0x00000040, 0x24003ca5, 0x00000400, 0xfff8fff8 }, |
{ 0x00000040, 0x24043ca5, 0x00000404, 0xffffffff }, |
{ 0x00000001, 0x240800e1, 0x00000000, 0x0000001f }, |
{ 0x00000001, 0x24140231, 0x00000014, 0x00000000 }, |
{ 0x00200009, 0x24202e25, 0x004500a0, 0x00040004 }, |
{ 0x00000040, 0x24203ca5, 0x00000420, 0xfffcfffc }, |
{ 0x00000001, 0x242800e1, 0x00000000, 0x000f0003 }, |
{ 0x00000001, 0x24340231, 0x00000014, 0x00000000 }, |
{ 0x00200009, 0x24482e29, 0x004500a0, 0x00040004 }, |
{ 0x00000001, 0x24540231, 0x00000014, 0x00000000 }, |
{ 0x00000041, 0x24884521, 0x000000a2, 0x000000a1 }, |
{ 0x00000040, 0x24884421, 0x00000488, 0x000000a0 }, |
{ 0x00000041, 0x24880c21, 0x00000488, 0x00000002 }, |
{ 0x00000001, 0x24940231, 0x00000014, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0400, 0x00000000 }, |
{ 0x04600031, 0x23801cb1, 0x00000800, 0x02190004 }, |
{ 0x00600001, 0x28000021, 0x008d0420, 0x00000000 }, |
{ 0x04600031, 0x23a01cb1, 0x00000800, 0x02290004 }, |
{ 0x00600001, 0x28400021, 0x008d0020, 0x00000000 }, |
{ 0x00600001, 0x28600061, 0x00000000, 0x00000000 }, |
{ 0x00000001, 0x23800061, 0x00000000, 0x00000000 }, |
{ 0x00000005, 0x23840c21, 0x00000384, 0xff000000 }, |
{ 0x00600001, 0x28800021, 0x008d0380, 0x00000000 }, |
{ 0x00600001, 0x28a00061, 0x00000000, 0x00000000 }, |
{ 0x00800001, 0x28a00231, 0x00cf03a3, 0x00000000 }, |
{ 0x00000001, 0x28b00061, 0x00000000, 0x11111111 }, |
{ 0x00000001, 0x28bc0061, 0x00000000, 0x00010101 }, |
{ 0x00600001, 0x28c00061, 0x00000000, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0440, 0x00000000 }, |
{ 0x00000001, 0x24000169, 0x00000000, 0x00010001 }, |
{ 0x00000001, 0x28850231, 0x00000400, 0x00000000 }, |
{ 0x00000001, 0x247c0169, 0x00000000, 0x00000000 }, |
{ 0x01000005, 0x20002e28, 0x000000a4, 0x00010001 }, |
{ 0x00010001, 0x247c00f1, 0x00000000, 0x00000002 }, |
{ 0x00000001, 0x247d0231, 0x000000a5, 0x00000000 }, |
{ 0x00000001, 0x24000169, 0x00000000, 0x00200020 }, |
{ 0x00000001, 0x247e0231, 0x00000400, 0x00000000 }, |
{ 0x00600001, 0x28000021, 0x008d0440, 0x00000000 }, |
{ 0x00600001, 0x28200021, 0x008d0460, 0x00000000 }, |
{ 0x0d600031, 0x21801ca1, 0x00000800, 0x0e782000 }, |
{ 0x00600001, 0x28000021, 0x008d0480, 0x00000000 }, |
{ 0x00000001, 0x28200021, 0x00000180, 0x00000000 }, |
{ 0x00000001, 0x28240021, 0x00000190, 0x00000000 }, |
{ 0x00000001, 0x28280021, 0x00000194, 0x00000000 }, |
{ 0x00000001, 0x282c0021, 0x00000198, 0x00000000 }, |
{ 0x00000001, 0x28300129, 0x0000018c, 0x00000000 }, |
{ 0x00000001, 0x28340021, 0x00000188, 0x00000000 }, |
{ 0x00000001, 0x28380021, 0x0000019c, 0x00000000 }, |
{ 0x00000001, 0x283c0021, 0x00000488, 0x00000000 }, |
{ 0x0a800031, 0x20001cac, 0x00000800, 0x040a0203 }, |
{ 0x00600001, 0x2e000021, 0x008d0000, 0x00000000 }, |
{ 0x07800031, 0x24001ca8, 0x00000e00, 0x82000010 }, |
/drivers/video/i965/sysdeps.h |
---|
0,0 → 1,39 |
/* |
* Copyright (C) 2012 Intel Corporation. All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
*/ |
#ifndef SYSDEPS_H |
#define SYSDEPS_H |
#ifdef HAVE_CONFIG_H |
# include "config.h" |
#endif |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdbool.h> |
#include <string.h> |
#include <stdint.h> |
#include <assert.h> |
#endif /* SYSDEPS_H */ |
/drivers/video/i965/va_backend_compat.h |
---|
0,0 → 1,48 |
/* |
* Copyright (C) 2012 Intel Corporation. All Rights Reserved. |
* |
* Permission is hereby granted, free of charge, to any person obtaining a |
* copy of this software and associated documentation files (the |
* "Software"), to deal in the Software without restriction, including |
* without limitation the rights to use, copy, modify, merge, publish, |
* distribute, sub license, and/or sell copies of the Software, and to |
* permit persons to whom the Software is furnished to do so, subject to |
* the following conditions: |
* |
* The above copyright notice and this permission notice (including the |
* next paragraph) shall be included in all copies or substantial portions |
* of the Software. |
* |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
* IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR |
* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
*/ |
#ifndef VA_BACKEND_COMPAT_H |
#define VA_BACKEND_COMPAT_H |
#include <va/va_backend.h> |
#if VA_CHECK_VERSION(0,33,0) |
# include <va/va_drmcommon.h> |
# define VA_CHECK_DRM_AUTH_TYPE(ctx, type) \ |
(((struct drm_state *)(ctx)->drm_state)->auth_type == (type)) |
#else |
# include <va/va_dricommon.h> |
# define VA_CHECK_DRM_AUTH_TYPE(ctx, type) \ |
(((struct dri_state *)(ctx)->dri_state)->driConnectedFlag == (type)) |
# define drm_state dri_state |
# define VA_DRM_AUTH_DRI1 VA_DRI1 |
# define VA_DRM_AUTH_DRI2 VA_DRI2 |
# define VA_DRM_AUTH_CUSTOM VA_DUMMY |
#endif |
#endif /* VA_BACKEND_COMPAT_H */ |