New issue
Advanced search Search tips

Issue 738513 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Bug

Blocked on:
issue angleproject:1897
issue 740153

Blocking:
issue 602688



Sign in to add a comment

Set up new program cache class that works with the passthrough command buffer

Project Member Reported by jmad...@chromium.org, Jun 30 2017

Issue description

The passthrough command buffer will use an internal program binary cache in ANGLE. We'll need a new program cache implementation that controls the ANGLE cache via an EGL/GL extension. Also we'll need to set up the relay between ANGLE and the disk cache via the extension and via the platform callbacks.

 

Comment 1 by geoff...@gmail.com, Jul 1 2017

Cc: -geoff...@gmail.com
I assume you CC'd the wrong person!
Cc: geoffl...@chromium.org
Whoops.
Project Member

Comment 3 by bugdroid1@chromium.org, Jul 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1dbe2a1ce1db78656361eed26c66de0880382438

commit 1dbe2a1ce1db78656361eed26c66de0880382438
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jul 05 17:49:36 2017

Move program memory pressure handler to channel manager.

This will make it a bit cleaner when integrating with new cache
back-ends, like for the passthrough command buffer. Introduce a new
API for the cache, "Trim", which cuts cache entries to a size limit
and returns the number of bytes of memory freed.

BUG= 738513 
R=piman@chromium.org

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I40c62254e391ffd6575937ba21350ed0f387ac43
Reviewed-on: https://chromium-review.googlesource.com/557933
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484304}
[modify] https://crrev.com/1dbe2a1ce1db78656361eed26c66de0880382438/gpu/command_buffer/service/memory_program_cache.cc
[modify] https://crrev.com/1dbe2a1ce1db78656361eed26c66de0880382438/gpu/command_buffer/service/memory_program_cache.h
[modify] https://crrev.com/1dbe2a1ce1db78656361eed26c66de0880382438/gpu/command_buffer/service/mocks.h
[modify] https://crrev.com/1dbe2a1ce1db78656361eed26c66de0880382438/gpu/command_buffer/service/program_cache.h
[modify] https://crrev.com/1dbe2a1ce1db78656361eed26c66de0880382438/gpu/command_buffer/service/program_cache_unittest.cc
[modify] https://crrev.com/1dbe2a1ce1db78656361eed26c66de0880382438/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/1dbe2a1ce1db78656361eed26c66de0880382438/gpu/ipc/service/gpu_channel_manager.h

Blockedon: 740153
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0e72ffcbe71a6c4604735dff8ed284154d89eb9b

commit 0e72ffcbe71a6c4604735dff8ed284154d89eb9b
Author: Jamie Madill <jmadill@chromium.org>
Date: Tue Jul 11 19:17:16 2017

Add Program Cache control EGL functions.

This adds the extension entry points to the command buffer.
Implementation for the program caching will come after.

BUG= 738513 

Change-Id: I45e01b3a265fbe9ef8108e2be5bf84b984779859
Reviewed-on: https://chromium-review.googlesource.com/565033
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485690}
[modify] https://crrev.com/0e72ffcbe71a6c4604735dff8ed284154d89eb9b/ui/gl/generate_bindings.py
[modify] https://crrev.com/0e72ffcbe71a6c4604735dff8ed284154d89eb9b/ui/gl/gl_bindings_api_autogen_egl.h
[modify] https://crrev.com/0e72ffcbe71a6c4604735dff8ed284154d89eb9b/ui/gl/gl_bindings_autogen_egl.cc
[modify] https://crrev.com/0e72ffcbe71a6c4604735dff8ed284154d89eb9b/ui/gl/gl_bindings_autogen_egl.h

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4b5b28f0b91b2ccc52c675f9e15caf7472619e92

commit 4b5b28f0b91b2ccc52c675f9e15caf7472619e92
Author: Jamie Madill <jmadill@chromium.org>
Date: Wed Jul 12 18:19:04 2017

gpu: Pass key around on disk program load.

This will facilitate integration with the ANGLE-controlled program
cache that we will use with the passthrough command buffer.

Refactoring change only.

BUG= 738513 
R=piman@chromium.org

Change-Id: I10f0ccd05680496885467fd22ce9d1e1a486741f
Reviewed-on: https://chromium-review.googlesource.com/563610
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486028}
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/components/viz/host/server_gpu_memory_buffer_manager_unittest.cc
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/gpu/command_buffer/service/memory_program_cache.cc
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/gpu/command_buffer/service/memory_program_cache.h
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/gpu/command_buffer/service/memory_program_cache_unittest.cc
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/gpu/command_buffer/service/mocks.h
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/gpu/command_buffer/service/program_cache.h
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/gpu/command_buffer/service/program_cache_unittest.cc
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/gpu/ipc/service/gpu_channel_manager.h
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/services/ui/gpu/gpu_service.cc
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/services/ui/gpu/gpu_service.h
[modify] https://crrev.com/4b5b28f0b91b2ccc52c675f9e15caf7472619e92/services/ui/gpu/interfaces/gpu_service.mojom

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c00fbc6170a5726fee8021bde0bb0b0fe7bad793

commit c00fbc6170a5726fee8021bde0bb0b0fe7bad793
Author: Jamie Madill <jmadill@chromium.org>
Date: Mon Jul 24 16:05:48 2017

gpu: Implement passthrough decoder program cache.

This hooks up ANGLE to talk to the disk cache, and instruments the
necessary controls over the cache to handle sizing and memory
pressure.

Uses an unretained callback to avoid the layering violation of
calling from ui/gl into the command buffer.

BUG= 738513 

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I9cb3ad9cbdd756d7b31248e788bb7f9e93aae90a
Reviewed-on: https://chromium-review.googlesource.com/568671
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488984}
[modify] https://crrev.com/c00fbc6170a5726fee8021bde0bb0b0fe7bad793/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/c00fbc6170a5726fee8021bde0bb0b0fe7bad793/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[add] https://crrev.com/c00fbc6170a5726fee8021bde0bb0b0fe7bad793/gpu/command_buffer/service/passthrough_program_cache.cc
[add] https://crrev.com/c00fbc6170a5726fee8021bde0bb0b0fe7bad793/gpu/command_buffer/service/passthrough_program_cache.h
[modify] https://crrev.com/c00fbc6170a5726fee8021bde0bb0b0fe7bad793/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/c00fbc6170a5726fee8021bde0bb0b0fe7bad793/ui/gl/angle_platform_impl.cc
[modify] https://crrev.com/c00fbc6170a5726fee8021bde0bb0b0fe7bad793/ui/gl/angle_platform_impl.h
[modify] https://crrev.com/c00fbc6170a5726fee8021bde0bb0b0fe7bad793/ui/gl/gl_surface_egl.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jul 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c7a60e6088f7446f0ee7315cd4859ef448d64e5

commit 3c7a60e6088f7446f0ee7315cd4859ef448d64e5
Author: Eric Stevenson <estevenson@chromium.org>
Date: Mon Jul 24 17:47:57 2017

Revert "gpu: Implement passthrough decoder program cache."

This reverts commit c00fbc6170a5726fee8021bde0bb0b0fe7bad793.

Reason for revert: Adds static initializers to MonochromePublic.apk

Original change's description:
> gpu: Implement passthrough decoder program cache.
> 
> This hooks up ANGLE to talk to the disk cache, and instruments the
> necessary controls over the cache to handle sizing and memory
> pressure.
> 
> Uses an unretained callback to avoid the layering violation of
> calling from ui/gl into the command buffer.
> 
> BUG= 738513 
> 
> Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
> Change-Id: I9cb3ad9cbdd756d7b31248e788bb7f9e93aae90a
> Reviewed-on: https://chromium-review.googlesource.com/568671
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Commit-Queue: Jamie Madill <jmadill@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#488984}

TBR=jmadill@chromium.org,piman@chromium.org

Change-Id: I3f54629a40d8366e9a80513f205a83ffa8572200
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  738513 ,  746430 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/583667
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Commit-Queue: Eric Stevenson <estevenson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489021}
[modify] https://crrev.com/3c7a60e6088f7446f0ee7315cd4859ef448d64e5/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/3c7a60e6088f7446f0ee7315cd4859ef448d64e5/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[delete] https://crrev.com/d4a941c61b23cf4a59c7e23655249155aea2d6e7/gpu/command_buffer/service/passthrough_program_cache.cc
[delete] https://crrev.com/d4a941c61b23cf4a59c7e23655249155aea2d6e7/gpu/command_buffer/service/passthrough_program_cache.h
[modify] https://crrev.com/3c7a60e6088f7446f0ee7315cd4859ef448d64e5/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/3c7a60e6088f7446f0ee7315cd4859ef448d64e5/ui/gl/angle_platform_impl.cc
[modify] https://crrev.com/3c7a60e6088f7446f0ee7315cd4859ef448d64e5/ui/gl/angle_platform_impl.h
[modify] https://crrev.com/3c7a60e6088f7446f0ee7315cd4859ef448d64e5/ui/gl/gl_surface_egl.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jul 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d47d48ec9b029b9526b93becef714d552e4726b

commit 2d47d48ec9b029b9526b93becef714d552e4726b
Author: Jamie Madill <jmadill@chromium.org>
Date: Fri Jul 28 15:23:24 2017

Re-land "gpu: Implement passthrough decoder program cache."

Re-land removes a problematic static initializer.

This hooks up ANGLE to talk to the disk cache, and instruments the
necessary controls over the cache to handle sizing and memory
pressure.

Uses an unretained callback to avoid the layering violation of
calling from ui/gl into the command buffer.

BUG= 738513 

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ia32b13f3b2c380016e5a18cfd2ce747295dc3b61
Reviewed-on: https://chromium-review.googlesource.com/583434
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490398}
[modify] https://crrev.com/2d47d48ec9b029b9526b93becef714d552e4726b/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/2d47d48ec9b029b9526b93becef714d552e4726b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[add] https://crrev.com/2d47d48ec9b029b9526b93becef714d552e4726b/gpu/command_buffer/service/passthrough_program_cache.cc
[add] https://crrev.com/2d47d48ec9b029b9526b93becef714d552e4726b/gpu/command_buffer/service/passthrough_program_cache.h
[modify] https://crrev.com/2d47d48ec9b029b9526b93becef714d552e4726b/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/2d47d48ec9b029b9526b93becef714d552e4726b/ui/gl/angle_platform_impl.cc
[modify] https://crrev.com/2d47d48ec9b029b9526b93becef714d552e4726b/ui/gl/angle_platform_impl.h
[modify] https://crrev.com/2d47d48ec9b029b9526b93becef714d552e4726b/ui/gl/gl_surface_egl.cc

Status: Fixed (was: Started)

Sign in to add a comment