summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-22Merge "vulkan: Don't process semaphores in fence wait path" am: 81a46dbe31 ↵Lingfeng Yang
am: a716b5ea4e Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683773 Change-Id: I9939b910df86ed460a2c0737422a227677f35cd3
2021-04-22Merge "vulkan: Don't process semaphores in fence wait path" am: 81a46dbe31Lingfeng Yang
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683773 Change-Id: Ie4e76394ec138a15e2d465531d9aa9fdef7bdea9
2021-04-22Merge "Synchronized glBufferData" am: 9c8316146c am: 25cecebb58Kaiyi Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1684048 Change-Id: I00aab5c25bb6e8b377228837f77498bec4044db6
2021-04-22Merge "Synchronized glBufferData" am: 9c8316146cKaiyi Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1684048 Change-Id: Icaf7923549772d145e415fb8f9b1c79fba5d7741
2021-04-22Merge "vulkan: Don't process semaphores in fence wait path"Lingfeng Yang
2021-04-22Merge "Synchronized glBufferData"Kaiyi Li
2021-04-22vulkan: Don't process semaphores in fence wait pathLingfeng Yang
Bug: 186021150 Change-Id: Ifd21fff14ce7127300bb7981a1c125ed5954b5d9
2021-04-22Stream server aborts on graphics reset am: d1f7d339d3 am: 633cc6965e am: ↵Michael Yu
6ba0923052 Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1684045 Change-Id: Ib684b336e8683461428bfea267a9b2f29e682fa9
2021-04-22Stream server aborts on graphics reset am: d1f7d339d3 am: 633cc6965eMichael Yu
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1684045 Change-Id: I3b9ff1bd97cf669fe45e098e2eb374aa16da6c6d
2021-04-22Stream server aborts on graphics reset am: d1f7d339d3Michael Yu
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1684045 Change-Id: I9fbb3084bd15a9eff9c7d72bf38c4907241daf8f
2021-04-21Synchronized glBufferDataKaiyi Li
Add the ANDROID_EMU_sync_buffer_data extension to allow glBufferData wait until the host side glBufferData returns. The synchronized glBufferData is provided through the glBufferDataSyncAEMU call. Test: run the emulator with a test program calling glBufferData and glMapBufferRange on 2 threads Change-Id: I2d4a4122a662737cfdeeadc4248a6bdd3fffedf1
2021-04-21Stream server aborts on graphics resetMichael Yu
1. If EGL_EXT_create_context_robustness supported, enable losing context on graphics reset. 2. Update translator to invoke glGetGraphicsResetStatusEXT if available, else fallback to returning NO_ERROR. 3. In FrameBuffer on color buffer flush, poll graphics reset status and abort if reset. Bug: 185407409 Test: Run `dxcap -forcetdr` and verify abort logic is hit. Verify abort doesn't happen in normal use case. Change-Id: Idc3c51adaf1a8f0b6492d6f7f8fec9fc74c849fa
2021-04-21windows: allow parallel build am: 854b640eae am: 9c93c0f532 am: 5c40c80a56Lingfeng Yang
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683500 Change-Id: I96d77200c362063d59763420b28210c7d6399490
2021-04-21vk: Support waiting for VkFences in goldfish sync device. am: d30c9d4e3d am: ↵Yilong Li
08cf281967 am: 928c68185c Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683497 Change-Id: I67ab6fc8087e2ab6ea7a55af0baf0d3ee058cf4e
2021-04-21vk1.2: Add rootType argument to struct functions (host codegen). am: ↵Yilong Li
272cdac5df am: 3bb76d3c7d am: ea9c276b47 Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683496 Change-Id: I1b57111090c6878a3b04a44fa16465bb97d88a14
2021-04-21vk1.2: Add rootType argument to struct handling functions. am: 8d410af593 ↵Yilong Li
am: b67e7397c2 am: a3673b263d Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683495 Change-Id: I7d38326970377346922573d37d47bac80ceed9e4
2021-04-21SyncThread: Handle sync commands using a multi-thread pool. am: 85fc381290 ↵Yilong Li
am: b28cc09c49 am: 803ba9913b Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683494 Change-Id: Ic2fd406e06ef0ea65435f0f58837f1a36608fe99
2021-04-21vulkan: Fix on_vkCreateCommandPool am: 559ea3ae1c am: 5255918c32 am: d4789b72d6Yilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683493 Change-Id: I27f6d43ec53fdd2716dba7ba9df2804cb445b973
2021-04-21gl: Support ColorBuffers of A2B10G10R10 format. am: 7179d97be9 am: ↵Yilong Li
23af1b684f am: 027bc127ec Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683492 Change-Id: I9922a2677276927fe7e99c21130cbb17d50d1958
2021-04-21fuchsia: Support for upstream external memory extension (host) am: ↵Yilong Li
a7a442a649 am: 4f2b7ae511 am: 30b321a03d Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683491 Change-Id: I1e8a0690a1fed218e6a8dac729b59565e773e322
2021-04-21vulkan: Allow creating stimeline semaphores. am: dfb98b02da am: 612f7396f5 ↵Yilong Li
am: 790681cc6c Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683490 Change-Id: I147a4a20bf688294506d4a80d76f0e0239502c98
2021-04-21cereal: (host) Ignore unknown structs in deepcopy am: 3206ebba9f am: ↵Yilong Li
6540a399e3 am: fa62c0f663 Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683489 Change-Id: I2ecb78ee7f96d874f49b1c3cecbf3fbc6386a610
2021-04-21vulkan decoder: skip commitWrite if nothing to write am: e733a3f9e5 am: ↵Lingfeng Yang
ea7211d1e3 am: fc28a58d2d Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683488 Change-Id: I014ad1c2fcd34584e03ef37a3ca61b1c8c0761fd
2021-04-21windows: allow parallel build am: 854b640eae am: 9c93c0f532Lingfeng Yang
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683500 Change-Id: I3a2eea71fc540bb1878d4f6891db994324f24a24
2021-04-21vk: Support waiting for VkFences in goldfish sync device. am: d30c9d4e3d am: ↵Yilong Li
08cf281967 Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683497 Change-Id: I96eaff76b8e066aed07f83bfac25c587a013e001
2021-04-21vk1.2: Add rootType argument to struct functions (host codegen). am: ↵Yilong Li
272cdac5df am: 3bb76d3c7d Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683496 Change-Id: If92454f3aa41363a4d9070518414252f8428239f
2021-04-21vk1.2: Add rootType argument to struct handling functions. am: 8d410af593 ↵Yilong Li
am: b67e7397c2 Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683495 Change-Id: Ie0fb79f9843e29571de6940a9c01e8b973cef105
2021-04-21SyncThread: Handle sync commands using a multi-thread pool. am: 85fc381290 ↵Yilong Li
am: b28cc09c49 Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683494 Change-Id: Iea8afb4fa9a4ef4a705d546dd83b3d47bba9f9f6
2021-04-21vulkan: Fix on_vkCreateCommandPool am: 559ea3ae1c am: 5255918c32Yilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683493 Change-Id: I01cf725133efedf088536a398135f6c51e545326
2021-04-21gl: Support ColorBuffers of A2B10G10R10 format. am: 7179d97be9 am: 23af1b684fYilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683492 Change-Id: Id5e735b3ccceda21560e987289e396fafd4a5b44
2021-04-21fuchsia: Support for upstream external memory extension (host) am: ↵Yilong Li
a7a442a649 am: 4f2b7ae511 Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683491 Change-Id: I11e253712cfc7adea9361d3e3829b92bd72c0a43
2021-04-21vulkan: Allow creating stimeline semaphores. am: dfb98b02da am: 612f7396f5Yilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683490 Change-Id: Iddea9b6f175c78f77399653b186b42e3056d327a
2021-04-21cereal: (host) Ignore unknown structs in deepcopy am: 3206ebba9f am: 6540a399e3Yilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683489 Change-Id: I39ae44c3f4eee2cec4066f47bd05f32eb40dec7d
2021-04-21vulkan decoder: skip commitWrite if nothing to write am: e733a3f9e5 am: ↵Lingfeng Yang
ea7211d1e3 Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683488 Change-Id: Ic5c894d684271d4ad21bd79bf094223199e87396
2021-04-21windows: allow parallel build am: 854b640eaeLingfeng Yang
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683500 Change-Id: I8db28912526789de61bf13d6b45c9d4750826973
2021-04-21vk: Support waiting for VkFences in goldfish sync device. am: d30c9d4e3dYilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683497 Change-Id: Idc8ce26896dcf01bd758ca75b76473e219999328
2021-04-21vk1.2: Add rootType argument to struct functions (host codegen). am: 272cdac5dfYilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683496 Change-Id: I8f3bf54f36a047cb4d81196e2999462aed39ce58
2021-04-21vk1.2: Add rootType argument to struct handling functions. am: 8d410af593Yilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683495 Change-Id: I281de66c5ea23b7763c5b945b89e735ba3d0016c
2021-04-21SyncThread: Handle sync commands using a multi-thread pool. am: 85fc381290Yilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683494 Change-Id: Ib32890e76fb970ba2772c0f9eb150d44faa87d16
2021-04-21vulkan: Fix on_vkCreateCommandPool am: 559ea3ae1cYilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683493 Change-Id: Iac7e4722f3bc33ae42311cba11f4869ea63731fe
2021-04-21gl: Support ColorBuffers of A2B10G10R10 format. am: 7179d97be9Yilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683492 Change-Id: Ie7ffa07cd061493d572304b72369ffb32b247a75
2021-04-21fuchsia: Support for upstream external memory extension (host) am: a7a442a649Yilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683491 Change-Id: I18afeb499fc6c4d045e2f94e3e1b529e17849f61
2021-04-21vulkan: Allow creating stimeline semaphores. am: dfb98b02daYilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683490 Change-Id: I8eb41de664ac10ddc654f4a30a321d81c581aff8
2021-04-21cereal: (host) Ignore unknown structs in deepcopy am: 3206ebba9fYilong Li
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683489 Change-Id: I9a52ece07079640519e08a56f290f37ef2b28375
2021-04-21vulkan decoder: skip commitWrite if nothing to write am: e733a3f9e5Lingfeng Yang
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1683488 Change-Id: Ibc3a9c71a8bb9658d28f2129285a6ad638b30f7f
2021-04-21windows: allow parallel buildLingfeng Yang
Change-Id: I796c881356a3f71f55edae9628ac196f21f568c2
2021-04-21vk: Support waiting for VkFences in goldfish sync device.Yilong Li
Now we can wait for VkFences in goldfish sync device by sending sync device "triggerHostWait" commands. For all rcTriggerWait() commands, a |thread_ptr| field with value 1 indicates that the |eglsync_ptr| field is a VkFence instead of an EGL sync object, thus the host will post a Vulkan Fence wait task to sync thread pool. Change-Id: Ie2adcff641f598685033be538543ba988f130567
2021-04-21vk1.2: Add rootType argument to struct functions (host codegen).Yilong Li
This also adds a test to VulkanStream_unittest testing marshaling/unmarshaling structs with conflicting struct type numbers. Change-Id: If78b426aaefa58a214620b47db831d7ab606928f
2021-04-21vk1.2: Add rootType argument to struct handling functions.Yilong Li
Old Vulkan cereal registry uses 1000218000 for VK_STURCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE, while Vulkan 1.2 cereal registry (and all the third party clients) use this number for VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT. This struct type number conflict may cause problems when encoding/decoding struct chains containing such structs. However, the structs above have parent struct requirements as well: for example, VkImportColorBufferGOOGLE can only be "child" structs of VkMemoryAllocateInfo, while VkPhysicalDeviceFragmentDensityMapFeaturesEXT could be child structs of VkDeviceCreateInfo or VkPhysicalDeviceProperties2. Thus we can use this to distinguish between different structs. This adds |rootType| argument to all struct handling functions, including marshaling/unmarshaling/deepcopy/struct size/etc. |rootType| will store the type of "root" struct of a Vulkan struct chain, or "VK_STRUCTURE_TYPE_MAX_ENUM" if uninitialized. Change-Id: I7fd61470e0339fe174f041a600c7b6c51f88f789
2021-04-21SyncThread: Handle sync commands using a multi-thread pool.Yilong Li
Previously the SyncThread handles all sync commands in one single thread, which could cause a sync wait to block all sync commands. This change modifies SyncThread so that it uses a ThreadPool to handle incoming commands. TEST=FEMU workstation.x64 / core.x64, both with sync device enabled. Change-Id: I9accec2158b8bbd380a2b8172fff38b06ecb2c31