<div>Hi,</div><div><br></div><div>I am working for developing pixman with OpenCL (only compositing function), and made it working, but performance is very very very slow.. </div><div><br></div><div>Main reason for slow performance is basically doing compositing line by line..</div>



<div>1) i think launching kernel per scan-line is too much overhead, </div><div>2) i think copying memory in scaline ways is also overhead.. (from host to device) [general recommendation in gpgpu computing is copy all the data once do the the task..]</div>



<div>3) also kernel are not optimized much (kernels are just combine function which are there in pixman_composite_32.c)</div><div><br></div><div>after that i changed to launch the kernel for whole rectangle (width*height), basically remove the height for loop in general_composite_rect.. .</div>
<div>(i.e. get all the src, dest, mask data for widht &amp; height (whole rectangular area),  do the compositing)</div><div><br></div><div>now performance is much better than my last attempt.. (still not very promising though)</div>
<div><br></div><div>how can i handle case where store var is not null i.e fetc dest, composite line &amp; store dest?</div>


<div><br></div><div><br></div><div>Thanks &amp; Regards,</div><div>Pachauri</div>