Hi,
I was going through some code in old stock browser, where they use SurfaceTexture buffers and render using ganesh.
Also they set up an eglSurface/device for the tiles directly, and map it to the Canvas for rendering.
Has there been any experiment on this front ?
Do you foresee any performance improvement with this ? Will it be possible with our current design ?
I think we would avoid the intermediate texture usage and cached tiles for gpu raster with this ? But, that would again take a hit for static pages.
How about the BindImage which we do in zero-copy now, would we save the binding cost here?
Please let us know your thoughts on this.
Thanks,
Sohan
Well, Ganesh involves uploading textures for things like decoded images and various Skia caches. It's a different workload than the software path, much less uploads overall but in potentially bigger chunks that might cause janks when they do happen. We'll evaluate how best to handle uploads when that bubbles up as one of the major remaining perf issues with Ganesh; I'm not sure a priori what upload approach will be best though.
On Friday, January 23, 2015 at 8:43:59 AM UTC+2, sangh...@gmail.com wrote:Hi Alexandre
Having a small queue of buffers used for upload, as the stock browser did, is a better fit, but that would create other pain points around queue management and we couldn't easily use it for Chrome because synchronous SurfaceTexture usage is not a public API.
=> i think this concept seem to be one-copy in current Chromium. if you think there is pain points in one-copy, what is reason to implement it in Chrome now ?
i wonder what is Chrome's final fallback path of GPU Raster ? Will you use pixelbuffer or one-copy for GPU Raster's fallback ?
2015년 1월 24일 토요일 오전 2시 12분 56초 UTC+9, David Reveman 님의 말:
> On Fri Jan 23 2015 at 4:54:57 AM Dongseong Hwang <dongseo...@intel.com> wrote:
>
>
>
> On Friday, January 23, 2015 at 8:43:59 AM UTC+2, sangh...@gmail.com wrote:Hi Alexandre
>
> Having a small queue of buffers used for upload, as the stock browser did, is a better fit, but that would create other pain points around queue management and we couldn't easily use it for Chrome because synchronous SurfaceTexture usage is not a public API.
>
>
>
> => i think this concept seem to be one-copy in current Chromium. if you think there is pain points in one-copy, what is reason to implement it in Chrome now ?
>
>
>
> i wonder what is Chrome's final fallback path of GPU Raster ? Will you use pixelbuffer or one-copy for GPU Raster's fallback ?
>
>
> I'm working on making one-copy using standard shared memory the default mechanism for initializing tile textures with software rasterized content. Pixelbuffer mechanism can hopefully be removed soon.
=> What would be benefit of one-copy+sharedmemroy compared to Pixelbuffer ?
In terms of memory, one-copy seem to use more memory because of additional staging resource pool.
And i am not sure on-copy-sharedmemory would use AsyncUpload or not. it it does not usee AsyncUpload, it would be worse than Pixelbuffer performance.
Hi David,Do you get any solution share memory between GPU and CPU memory for software rasterization ? I am able to render the bitmap in SW( using some costume algorithm) but got performance hit in uploading the texture into GPU memory . Is there any way to move handle the memory handle/address to GPU without uploading ?