diff options
author | Xianzhong <b07117@freescale.com> | 2015-11-20 11:28:12 +0800 |
---|---|---|
committer | Xianzhong <b07117@freescale.com> | 2015-11-20 14:09:19 +0800 |
commit | d9be8289d1808ed1c36b047357f506271eb8606a (patch) | |
tree | 7102a7b550e6b19c48fd23c04252c98617eff0a2 | |
parent | e512a2d2450fe714e4dace553878f19e31fd24d4 (diff) |
MGS-1112 [#1999] fix float pipe mis-configration
GPU float pipe feature is not included in i.MX6, mis-configuration will lead to blending issue with,
glBlendFuncSeparate(GL_CONSTANT_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
GL_ONE, GL_ONE_MINUS_SRC_ALPHA).
Add the condition check to fix this mistake.
Date: Nov 20, 2015
Signed-off-by: Xianzhong <b07117@freescale.com>
(cherry picked from commit 1f8a159d1c834794ea1fe5f44b34ce3364a1d158)
-rw-r--r-- | drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c index 04e669a36a74..b831b7c80ca6 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c +++ b/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_context.c @@ -1129,8 +1129,13 @@ _InitializeContextBuffer( index += _State(Context, index, 0x014A0 >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE); index += _State(Context, index, 0x014A8 >> 2, 0xFFFFFFFF, 1, gcvFALSE, gcvFALSE); index += _State(Context, index, 0x014AC >> 2, 0xFFFFFFFF, 1, gcvFALSE, gcvFALSE); - index += _State(Context, index, 0x014B0 >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE); - index += _State(Context, index, 0x014B4 >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE); + + if(((((gctUINT32) (Context->hardware->identity.chipMinorFeatures1)) >> (0 ? 11:11) & ((gctUINT32) ((((1 ? 11:11) - (0 ? 11:11) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 11:11) - (0 ? 11:11) + 1)))))) == (0x1 & ((gctUINT32) ((((1 ? 11:11) - (0 ? 11:11) + 1) == 32) ? ~0 : (~(~0 << ((1 ? 11:11) - (0 ? 11:11) + 1))))))) ) + { + index += _State(Context, index, 0x014B0 >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE); + index += _State(Context, index, 0x014B4 >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE); + } + index += _State(Context, index, 0x014A4 >> 2, 0x000E400C, 1, gcvFALSE, gcvFALSE); index += _State(Context, index, 0x01580 >> 2, 0x00000000, 3, gcvFALSE, gcvFALSE); index += _State(Context, index, 0x014B8 >> 2, 0x00000000, 1, gcvFALSE, gcvFALSE); |