)]}' { "commit": "027b66ef5ceb5fb2a18d1ac05c582ff75b0385d0", "tree": "d4d3b0de84c06144e56a38d3fbf29690156f344d", "parents": [ "e8c231eb45293fc501c3d27db6f4fe70d0f77ee4" ], "author": { "name": "danginsburg", "email": "dginsburg@upsamplesoftware.com", "time": "Thu May 21 12:00:50 2020 -0400" }, "committer": { "name": "danginsburg", "email": "dginsburg@upsamplesoftware.com", "time": "Thu May 21 12:00:50 2020 -0400" }, "message": "Add support for VK_GOOGLE_display_timing. Some notes:\n* vkGetRefreshCycleDurationGOOGLE is implemented for iOS using UIScreen maximumFramesPerSecond. I did not implement it for macOS (just hard-coded to 60). It looks like doing it will require using CGDisplayModeGetRefreshRate\n* vkGetPastPresentationTimingGOOGLE fills in the actualPresentationTime, but Metal does not provide the earlierPresentTime or the presentMargin as far as I can tell so earliestPresentTime is set to actualPresentTime and presentMargin is zero.\n* Tested mostly on iOS - confirmed with Metal System Trace that desiredPresentTime works properly aligning the presentation correctly with vsync.\n", "tree_diff": [ { "type": "modify", "old_id": "0fc5ad7b58cc79ee9f975677d4932dc457135e1e", "old_mode": 33188, "old_path": "MoltenVK/MoltenVK/GPUObjects/MVKImage.h", "new_id": "d655ab523ed0851567f81a0cf5e7af87db66f8de", "new_mode": 33188, "new_path": "MoltenVK/MoltenVK/GPUObjects/MVKImage.h" }, { "type": "modify", "old_id": "68663fa55c41e4cce1d1b189495f1d86d9768b2d", "old_mode": 33188, "old_path": "MoltenVK/MoltenVK/GPUObjects/MVKImage.mm", "new_id": "a0c834ca182af34d5979a16a2b46911960b018c1", "new_mode": 33188, "new_path": "MoltenVK/MoltenVK/GPUObjects/MVKImage.mm" }, { "type": "modify", "old_id": "ee566c4f94dadce37fdfc7f6bfe6863fdce7aa05", "old_mode": 33188, "old_path": "MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm", "new_id": "728a12b8a5fc590af3ab60ba5e263ccf983d61ac", "new_mode": 33188, "new_path": "MoltenVK/MoltenVK/GPUObjects/MVKInstance.mm" }, { "type": "modify", "old_id": "c705a9df85a282f1d46639a23a98fc737e1ff371", "old_mode": 33188, "old_path": "MoltenVK/MoltenVK/GPUObjects/MVKQueue.h", "new_id": "1fe9421d06872379638169f810d0764e380a87f3", "new_mode": 33188, "new_path": "MoltenVK/MoltenVK/GPUObjects/MVKQueue.h" }, { "type": "modify", "old_id": "b6f01835a09fa21d3cf6fecb7d516067444acda5", "old_mode": 33188, "old_path": "MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm", "new_id": "ec2a1579280013ce03770329576c7fab38a35345", "new_mode": 33188, "new_path": "MoltenVK/MoltenVK/GPUObjects/MVKQueue.mm" }, { "type": "modify", "old_id": "ba55a6dea62a599807dcb693d53a357a09fcb377", "old_mode": 33188, "old_path": "MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h", "new_id": "2fec78f670afe5384b0b4545fd0c40066bd76810", "new_mode": 33188, "new_path": "MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.h" }, { "type": "modify", "old_id": "c73d16d5cd4167945e00b2db41411698f6a396c9", "old_mode": 33188, "old_path": "MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm", "new_id": "4f9e175958719b20ecae2691004b73e3a154fc84", "new_mode": 33188, "new_path": "MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm" }, { "type": "modify", "old_id": "f1b4580ab0e46216aa551e253e6a44ddb7671690", "old_mode": 33188, "old_path": "MoltenVK/MoltenVK/Layers/MVKExtensions.def", "new_id": "33ce097bda2e19b8e9d7949388f9e0822a26c4b6", "new_mode": 33188, "new_path": "MoltenVK/MoltenVK/Layers/MVKExtensions.def" }, { "type": "modify", "old_id": "8514843e4d298ba3bcef8e8649bb38f5d97cb76c", "old_mode": 33188, "old_path": "MoltenVK/MoltenVK/Vulkan/vulkan.mm", "new_id": "90e6f03ed5567d0c191c600c2f0889af2189cd55", "new_mode": 33188, "new_path": "MoltenVK/MoltenVK/Vulkan/vulkan.mm" } ] }