[PATCH] Fallback in mask picture for now

Do it later after finish wm kernel program.

Signed-off-by: Keith Packard <keithp@neko.keithp.com>
This commit is contained in:
Wang Zhenyu 2006-09-28 11:15:33 +08:00 committed by Keith Packard
parent df23624eeb
commit 848368d5d0
1 changed files with 5 additions and 56 deletions

View File

@ -417,6 +417,11 @@ ErrorF("i965 prepareComposite\n");
// i965_surf_setup(pScrn, pSrcPicture, pMaskPicture, pDstPicture,
// pSrc, pMask, pDst);
// then setup blend, and shader program
/* FIXME: fallback in pMask for now, would be enable after finish
wm kernel program */
if (pMask)
I830FALLBACK("No mask support yet.\n");
I965GetDestFormat(pDstPicture, &dst_format);
src_offset = exaGetPixmapOffset(pSrc);
@ -995,68 +1000,12 @@ ErrorF("i965 prepareComposite\n");
(BRW_VFCOMPONENT_STORE_1_FLT << VE1_VFCOMPONENT_3_SHIFT) |
(8 << VE1_DESTINATION_ELEMENT_OFFSET_SHIFT));
//XXX: is this has alignment issue? and thread access problem?
}
ADVANCE_LP_RING();
}
{
/* cc states */
/* dest buffer */
/* urbs */
/* binding tables */
/* clipping */
/* color blend (color calculator, dataport shared function)
COLOR_CALC_STATE/SURFACE_STATE(rendertarget's color blend enable
bit)
Errata!!!: brw-a/b, rendertarget 'local' color blending always
enabled! only control by global enable bit.
surface format for blend, "Surface format table in Sampling Engine"
XXX: if surface format not support, we should fallback.
*/
/*
render target should be defined in SURFACE_STATE
o render target SURFTYPE_BUFFER? 2D? Keith has 2D set.
o depth buffer SURFTYPE_NULL?
color blend:
o Errata!!: mush issue PIPE_CONTROL with Write Cache Flush
enable set, before transite to read-write color buffer.
o disable pre/post-blending clamping
o enable color buffer blending enable in COLOR_CALC_STATE,(vol2, 3d rasterization 3.8)
enable color blending enable in SURFACE_STATE.(shared,
sampling engine 1.7)
disable depth test
o (we don't use BLENDFACT_SRC_ALPHA_SATURATE, so don't care
the Errata for independent alpha blending, just use color
blending factor for all) disable independent alpha blending
in COLOR_CALC_STATE
o set src/dst blend factor in COLOR_CALC_STATE
*/
}
/* shader program
o use sampler shared function for texture data
o submit result to dataport for later color blending */
{
/* PS program:
o declare sampler and variables??
o 'send' cmd to Sampling Engine to load 'src' picture
o if (!pMask) then 'send' 'src' texture value to DataPort
target render cache
o else
- 'send' cmd to SE to load 'mask' picture
- if no alpha, force to 1 (move 1 to W element of mask)
- if (mask->componentAlpha) then mul 'src' & 'mask', 'send'
output to DataPort render cache
- else mul 'src' & 'mask''s W element(alpha), 'send' output
to Dataport render cache
*/
}
#ifdef I830DEBUG
ErrorF("try to sync to show any errors...");
I830Sync(pScrn);