g3dvl: Fix field coded block copy.
This commit is contained in:
parent
56c22687e1
commit
3122f2bebe
|
@ -108,17 +108,7 @@ static inline int vlGrabFieldCodedBlock(short *src, short *dst, unsigned int dst
|
||||||
{
|
{
|
||||||
unsigned int y;
|
unsigned int y;
|
||||||
|
|
||||||
for (y = 0; y < VL_BLOCK_HEIGHT / 2; ++y)
|
for (y = 0; y < VL_BLOCK_HEIGHT; ++y)
|
||||||
memcpy
|
|
||||||
(
|
|
||||||
dst + y * dst_pitch * 2,
|
|
||||||
src + y * VL_BLOCK_WIDTH,
|
|
||||||
VL_BLOCK_WIDTH * 2
|
|
||||||
);
|
|
||||||
|
|
||||||
dst += VL_BLOCK_HEIGHT * dst_pitch;
|
|
||||||
|
|
||||||
for (; y < VL_BLOCK_HEIGHT; ++y)
|
|
||||||
memcpy
|
memcpy
|
||||||
(
|
(
|
||||||
dst + y * dst_pitch * 2,
|
dst + y * dst_pitch * 2,
|
||||||
|
@ -1181,7 +1171,7 @@ static int vlCreateVertexShaderFieldPMB
|
||||||
ti += tgsi_build_full_declaration(&decl, &tokens[ti], header, max_tokens - ti);
|
ti += tgsi_build_full_declaration(&decl, &tokens[ti], header, max_tokens - ti);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* decl c0 ; Texcoord denorm coefficients */
|
/* decl c0 ; Render target dimensions */
|
||||||
decl = vl_decl_constants(TGSI_SEMANTIC_GENERIC, 0, 0, 0);
|
decl = vl_decl_constants(TGSI_SEMANTIC_GENERIC, 0, 0, 0);
|
||||||
ti += tgsi_build_full_declaration(&decl, &tokens[ti], header, max_tokens - ti);
|
ti += tgsi_build_full_declaration(&decl, &tokens[ti], header, max_tokens - ti);
|
||||||
|
|
||||||
|
@ -1661,8 +1651,8 @@ static int vlCreateVertexShaderFieldBMB
|
||||||
ti += tgsi_build_full_declaration(&decl, &tokens[ti], header, max_tokens - ti);
|
ti += tgsi_build_full_declaration(&decl, &tokens[ti], header, max_tokens - ti);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* decl c0 ; Denorm coefficients */
|
/* decl c0 ; Render target dimensions */
|
||||||
decl = vl_decl_constants(TGSI_SEMANTIC_GENERIC, 0, 0, 6);
|
decl = vl_decl_constants(TGSI_SEMANTIC_GENERIC, 0, 0, 0);
|
||||||
ti += tgsi_build_full_declaration(&decl, &tokens[ti], header, max_tokens - ti);
|
ti += tgsi_build_full_declaration(&decl, &tokens[ti], header, max_tokens - ti);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -40,12 +40,12 @@ static enum vlPictureType PictureToVL(int xvmc_pic)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static enum vlMotionType MotionToVL(int xvmc_motion_type)
|
static enum vlMotionType MotionToVL(int xvmc_motion_type, int xvmc_dct_type)
|
||||||
{
|
{
|
||||||
switch (xvmc_motion_type)
|
switch (xvmc_motion_type)
|
||||||
{
|
{
|
||||||
case XVMC_PREDICTION_FRAME:
|
case XVMC_PREDICTION_FRAME:
|
||||||
return vlMotionTypeFrame;
|
return xvmc_dct_type == XVMC_DCT_TYPE_FIELD ? vlMotionType16x8 : vlMotionTypeFrame;
|
||||||
case XVMC_PREDICTION_FIELD:
|
case XVMC_PREDICTION_FIELD:
|
||||||
return vlMotionTypeField;
|
return vlMotionTypeField;
|
||||||
case XVMC_PREDICTION_DUAL_PRIME:
|
case XVMC_PREDICTION_DUAL_PRIME:
|
||||||
|
@ -171,8 +171,8 @@ Status XvMCRenderSurface
|
||||||
batch.macroblocks[i].mby = macroblocks->macro_blocks[j].y;
|
batch.macroblocks[i].mby = macroblocks->macro_blocks[j].y;
|
||||||
batch.macroblocks[i].mb_type = TypeToVL(macroblocks->macro_blocks[j].macroblock_type);
|
batch.macroblocks[i].mb_type = TypeToVL(macroblocks->macro_blocks[j].macroblock_type);
|
||||||
if (batch.macroblocks[i].mb_type != vlMacroBlockTypeIntra)
|
if (batch.macroblocks[i].mb_type != vlMacroBlockTypeIntra)
|
||||||
batch.macroblocks[i].mo_type = MotionToVL(macroblocks->macro_blocks[j].motion_type);
|
batch.macroblocks[i].mo_type = MotionToVL(macroblocks->macro_blocks[j].motion_type, macroblocks->macro_blocks[j].dct_type);
|
||||||
batch.macroblocks[i].dct_type = macroblocks->macro_blocks[j].dct_type & XVMC_DCT_TYPE_FIELD ? vlDCTTypeFieldCoded : vlDCTTypeFrameCoded;
|
batch.macroblocks[i].dct_type = macroblocks->macro_blocks[j].dct_type == XVMC_DCT_TYPE_FIELD ? vlDCTTypeFieldCoded : vlDCTTypeFrameCoded;
|
||||||
|
|
||||||
for (k = 0; k < 2; ++k)
|
for (k = 0; k < 2; ++k)
|
||||||
for (l = 0; l < 2; ++l)
|
for (l = 0; l < 2; ++l)
|
||||||
|
|
Loading…
Reference in New Issue