summaryrefslogtreecommitdiff
path: root/libs/hwui/renderthread/VulkanManager.cpp
AgeCommit message (Collapse)Author
2018-11-29In VulkanManager enable ycbcr feature on VkDevice.Greg Daniel
Test: manual build and test Change-Id: I820670ee7566e1dd5c86cfa473725b91e4eb6154
2018-11-13Handle ANativeWindow resize with Vulkan swapchainStan Iliev
Recreate VulkanSurface, if ANativeWindow has been resized. This new code is hit when wallpaper is resized from 64x64 to real size. Bug: 119111018 Test: Wallpaper is shawn correctly with Vulkan rendering Change-Id: I5e43310e5ee8597a7f326d51b1773e2cf68b603a
2018-10-26Remove SyncFeatures usage from VulkanManagerStan Iliev
SyncFeatures is implemented by quering available EGL extensions. For Vulkan we assume these features are present. SyncFeatures is crashing for Vulkan, because EGL is not initialized. Test: TextureViewCameraTest#testTextureViewActivity is passing Bug: 116117654 Change-Id: I57e6ce1c0f00c1b073d0a2ab2695d9fbecfd2b33
2018-10-04Cleanup of barriers used in swapching aquiring and presenting.Greg Daniel
Test: manual building and running on pixel 2 Change-Id: I72cc95ad7d11634e8d0627737d699a611e8d1d5f
2018-10-02Minor clean up/fixes of VulkanManager api version checks.Greg Daniel
Test: manual build and run Change-Id: I04b0ed0b6c344cc8aac662b1a2a277d1aea0cd2c
2018-09-26Add support for wide gamut render targets in VulkanStan Iliev
Support rendering into FP16 render targets. Enforce correct color space for both ARGB and F16 color formats. Test: About 30 additional CTS tests pass with Vulkan Bug: 116117654 Change-Id: I61941a2d79a0e69837d20816c90d3e936fd7acb0
2018-09-24Implemenet fenceWait and createReleaseFence in VulkanManager.Greg Daniel
Test: Manual building and testing on walleye device. Change-Id: I9f5fa259d6457805b546d2b6b11ce4b0800621eb
2018-09-20Fix crash when EGLSurface is no longer valid.Derek Sollenberger
The EGLSurface stored in the pipeline can become obsolete if the EglManager/RenderThread has to destroy the context. This CL enables the RenderThread to notify all active pipelines that their surface is invalid. Bug: 115290937 Test: hwui_unit_tests Change-Id: Ib3054822273bc35406630b7442229a81b39a2c91
2018-09-18Refactor DeviceInfo in HWUIDerek Sollenberger
Remove the need for both Vulkan and EGL managers to initialize it. Also remove unused code paths. Test: hwui_unit_tests Change-Id: I33ad881468eddbf91ec63207f0d82bed8d97f5ad
2018-09-05Reland "TextureView Vulkan support and optimized OpenGL draw"Stan Iliev
Fix an issue with incorrect texture matrix, when there is 90/270 rotation. This happened, because after refactoring SkImage has buffer width/height, instead of layer width/height. This reverts commit a683eb3945320f592f58705c3c31b3c044f4bd72. Bug: 113673613 Test: Ran TextureView CTS and lensblur in camera app Change-Id: If3bcf9cd5195de09fd67a753708568a8e3ca3a9a
2018-09-04Add cache validation to ensure the validityYichi Chen
Create cache identity from GL_VERSION and store in ShaderCache. In the next time ShaderCache is restored from disk, compare the cache identity to ensure its validity. If GL_VERSION changes in between, flush out entire FileBlobCache and start from an empty one. Bug: b/71800782 Test: Wrote a new unit test to save and restore ShaderCache Test: hwui_unit_tests Change-Id: Ie573dc4f18733eee090725be30445d879765231b
2018-08-30Merge "Revert "TextureView Vulkan support and optimized OpenGL draw""Stan Iliev
2018-08-30Revert "TextureView Vulkan support and optimized OpenGL draw"John Reck
This reverts commit c8e22a653297837da9a80b0ba65f6854c8986c96. Reason for revert: broke camera, b/113555199 Bug: 113555199 Change-Id: Iae9b462694d5de0cd99427afead63b567fb4d71d
2018-08-29Merge "TextureView Vulkan support and optimized OpenGL draw"TreeHugger Robot
2018-08-29TextureView Vulkan support and optimized OpenGL drawStan Iliev
Render TextureView as hardware bitmaps, instead of GL textures. Cache SkImage for each observed GraphicBuffer, which is faster even for GL. Implement C++ SurfaceTexture, which allows Java SurfaceTexture to be used with Vulkan HWUI render thread and application GL. threads. Delete GLLayer and VkLayer classes and texture code from old HWUI pipeline. Test: Ran skiagl and skiavk pipeline with a TextureView app. Test: TextureView CTS tests pass for GL pipeline. Test: Ran Android NDK Native codec sample app. Change-Id: Idc94f864ce2d34fd6ceff4be4fc7d3327e99879c
2018-08-20Update VulkanManager to use new skia Vulkan context api.Greg Daniel
Test: manual build and run on phone. Change-Id: Ib21f4091cf11de5655323337e86a35cb7b845b15
2018-07-13No longer create a GrVkInterface in the VulkanManger.Greg Daniel
Test: manual Change-Id: I5debded1f42cab60bacd3b9b9d2f10ada088c86a
2018-06-21Manually create and manage vulkan instance and device.Greg Daniel
Previously we were using a helper in Skia but that is being deleted and we must manage it ourselves in android. Test: manual building and running. Change-Id: Ia3455507d7b07a4a2f29fd5453408dd37d9d570b
2018-04-12Update to use new skia getBackendRenderTarget calls.Greg Daniel
Test: manual building and running. Change-Id: I0c38f4b9817c8e855ecc8f08cb2b297c5fbfc01a
2018-04-09Update skia api for querying maxRenderTargetSizeGreg Daniel
Test: manual building and testing Change-Id: I9a97de98d73f25f1c22d275c057c692f5dd3b5dc
2018-03-21Convert Skia calls to use SkColorType/BackendFormats instead of GrPixelConfig.Greg Daniel
Test: manual testing Change-Id: I645bcea55f49292309cf0bb5de21891bb5b62dda
2018-02-23Update call to null out GrVkAlloc in VulkanManagerGreg Daniel
Test: manual testing Change-Id: Ia0af7526cad2dc4614afc73c31bf07e25890c677
2017-12-11Update GrContext creation calls to use sk_spGreg Daniel
Test: manual testing Change-Id: I68d8706ffa7bc7c6622ea0b8c45d7297a131f6bf
2017-11-10Initialize pointer members in VulkanManager to nullGreg Daniel
Test: manual local testing Change-Id: If81db17858354844b96677137cf67449dd91854b
2017-11-08Implement SkSL cacheStan Iliev
Implement SkSL cache by reusing code and logic from egl_cache_t. Test: Improves startup times for gmail by 15ms and 10ms for calc app. Bug: 66740665 Change-Id: I9ba479c649ba97a2c29a48d40579ba001264c957
2017-11-03Format the world (or just HWUI)John Reck
Test: No code changes, just ran through clang-format Change-Id: Id23aa4ec7eebc0446fe3a30260f33e7fd455bb8c
2017-07-12Update to use GrBackendTexture/RT instead of DescriptorsGreg Daniel
Test: manual testing Change-Id: Ide727a39e2c49f226c8d432608e0072214249451
2017-04-25Use new GrVkBackendContext::Create apiGreg Daniel
Test: manual testing Change-Id: Ia8daebd2e028082a8b3d58f29057648746398735
2017-02-03Have Skia Vulkan backend support wait-for-gpu flag on testsGreg Daniel
So trying to mimic what the EglManager does in the fence call. Technically there are two logical queues I could wait on for the device, the graphics queue and the present queue. Waiting on the device waits for both these queues to finish. It wasn't obvious to me if the EGL was waiting for just graphics work or both queues, so I went for both (by waiting on device). However, so far every device we've seen in Vulkan has the present and graphics queue combined on the physical device so waiting for one or both should really be different. Test: Manual ran macrobench in skiavk and more realistic values compared to not waiting for gpu. Change-Id: I17cde70c677a9ad1b6bf9bc9ca4fd5f8f3b807e3
2017-01-12Use FatVector instead of SkAutoMalloc in VulkanManager.Ben Wagner
Skia is looking to make SkAutoMalloc private and will be moving it. Using FatVector instead will make this code both less dependent on Skia internals and more performant. Test: refactoring CL. Existing unit tests still pass. Change-Id: If9de10059775b75e1ab89078eacede2e20e91299
2017-01-10Add support for dummy draws for Vulkan webview and texture views.Greg Daniel
Test: manual testing Change-Id: Iaec8c3a34367673c281665ff6c6e97d1ce532265
2016-12-09Make buffer age work in VulkanGreg Daniel
Test: manual testing in skiavk mode Change-Id: I5b9d8af7d9cecf2f022ef104ec33a5b7477e9e0c
2016-11-09Handle vulkan windowing directly in SkiaVulkanPipelineDerek Sollenberger
Test: manual testing in skiavk mode Change-Id: I2fab80bae2787bfdacbc70d0402e98450e59406d