{"action":"created","issue":{"url":"https://api.github.com/repos/LunarG/VulkanTools/issues/60","repository_url":"https://api.github.com/repos/LunarG/VulkanTools","labels_url":"https://api.github.com/repos/LunarG/VulkanTools/issues/60/labels{/name}","comments_url":"https://api.github.com/repos/LunarG/VulkanTools/issues/60/comments","events_url":"https://api.github.com/repos/LunarG/VulkanTools/issues/60/events","html_url":"https://github.com/LunarG/VulkanTools/issues/60","id":164861830,"number":60,"title":"Object tracker layer complains about `VK_NULL_HANDLE` given to `vkDestroy*`","user":{"login":"ShabbyX","id":1067408,"avatar_url":"https://avatars.githubusercontent.com/u/1067408?v=3","gravatar_id":"","url":"https://api.github.com/users/ShabbyX","html_url":"https://github.com/ShabbyX","followers_url":"https://api.github.com/users/ShabbyX/followers","following_url":"https://api.github.com/users/ShabbyX/following{/other_user}","gists_url":"https://api.github.com/users/ShabbyX/gists{/gist_id}","starred_url":"https://api.github.com/users/ShabbyX/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ShabbyX/subscriptions","organizations_url":"https://api.github.com/users/ShabbyX/orgs","repos_url":"https://api.github.com/users/ShabbyX/repos","events_url":"https://api.github.com/users/ShabbyX/events{/privacy}","received_events_url":"https://api.github.com/users/ShabbyX/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/LunarG/VulkanTools/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":{"login":"mark-lunarg","id":7252958,"avatar_url":"https://avatars.githubusercontent.com/u/7252958?v=3","gravatar_id":"","url":"https://api.github.com/users/mark-lunarg","html_url":"https://github.com/mark-lunarg","followers_url":"https://api.github.com/users/mark-lunarg/followers","following_url":"https://api.github.com/users/mark-lunarg/following{/other_user}","gists_url":"https://api.github.com/users/mark-lunarg/gists{/gist_id}","starred_url":"https://api.github.com/users/mark-lunarg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mark-lunarg/subscriptions","organizations_url":"https://api.github.com/users/mark-lunarg/orgs","repos_url":"https://api.github.com/users/mark-lunarg/repos","events_url":"https://api.github.com/users/mark-lunarg/events{/privacy}","received_events_url":"https://api.github.com/users/mark-lunarg/received_events","type":"User","site_admin":false},"assignees":[{"login":"mark-lunarg","id":7252958,"avatar_url":"https://avatars.githubusercontent.com/u/7252958?v=3","gravatar_id":"","url":"https://api.github.com/users/mark-lunarg","html_url":"https://github.com/mark-lunarg","followers_url":"https://api.github.com/users/mark-lunarg/followers","following_url":"https://api.github.com/users/mark-lunarg/following{/other_user}","gists_url":"https://api.github.com/users/mark-lunarg/gists{/gist_id}","starred_url":"https://api.github.com/users/mark-lunarg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mark-lunarg/subscriptions","organizations_url":"https://api.github.com/users/mark-lunarg/orgs","repos_url":"https://api.github.com/users/mark-lunarg/repos","events_url":"https://api.github.com/users/mark-lunarg/events{/privacy}","received_events_url":"https://api.github.com/users/mark-lunarg/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/LunarG/VulkanTools/milestones/1","html_url":"https://github.com/LunarG/VulkanTools/milestones/P1","labels_url":"https://api.github.com/repos/LunarG/VulkanTools/milestones/1/labels","id":1759005,"number":1,"title":"P1","description":null,"creator":{"login":"karl-lunarg","id":16430219,"avatar_url":"https://avatars.githubusercontent.com/u/16430219?v=3","gravatar_id":"","url":"https://api.github.com/users/karl-lunarg","html_url":"https://github.com/karl-lunarg","followers_url":"https://api.github.com/users/karl-lunarg/followers","following_url":"https://api.github.com/users/karl-lunarg/following{/other_user}","gists_url":"https://api.github.com/users/karl-lunarg/gists{/gist_id}","starred_url":"https://api.github.com/users/karl-lunarg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karl-lunarg/subscriptions","organizations_url":"https://api.github.com/users/karl-lunarg/orgs","repos_url":"https://api.github.com/users/karl-lunarg/repos","events_url":"https://api.github.com/users/karl-lunarg/events{/privacy}","received_events_url":"https://api.github.com/users/karl-lunarg/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":6,"state":"open","created_at":"2016-05-10T22:00:54Z","updated_at":"2016-07-11T17:58:15Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2016-07-11T15:13:17Z","updated_at":"2016-07-11T20:46:47Z","closed_at":null,"body":"The specification v1.0.17 for the `vkDestroyX` functions seem to allow `VK_NULL_HANDLE` to be given to these functions. For example `vkDestroyBufferView` says:\r\n\r\n> If `bufferView` is not `VK_NULL_HANDLE`, `bufferView` must be a valid `VkBufferView` handle\r\n\r\nWhich implies that `bufferView` **could** be `VK_NULL_HANDLE`. This is actually nice, similar to how C's `free(NULL)` is correct and useful.\r\n\r\nHowever, the object tracker validation layer complains that:\r\n\r\n    OBJTRACK(ERROR): object: 0x0 type: 13 location: 1456 msgCode: 4: Invalid VkBufferView Object 0x0\r\n    OBJTRACK(ERROR): object: 0x0 type: 0 location: 690 msgCode: 1: Unable to remove obj 0x0. Was it created? Has it already been destroyed?\r\n\r\nI noticed the nvidia driver (under Linux if it makes any difference) crashing when given `VK_NULL_HANDLE` in these cases as well. Perhaps this is already the established behavior, but the specifications need to be updated to disallow `VK_NULL_HANDLE`?"},"comment":{"url":"https://api.github.com/repos/LunarG/VulkanTools/issues/comments/231859627","html_url":"https://github.com/LunarG/VulkanTools/issues/60#issuecomment-231859627","issue_url":"https://api.github.com/repos/LunarG/VulkanTools/issues/60","id":231859627,"user":{"login":"courtney-g","id":851793,"avatar_url":"https://avatars.githubusercontent.com/u/851793?v=3","gravatar_id":"","url":"https://api.github.com/users/courtney-g","html_url":"https://github.com/courtney-g","followers_url":"https://api.github.com/users/courtney-g/followers","following_url":"https://api.github.com/users/courtney-g/following{/other_user}","gists_url":"https://api.github.com/users/courtney-g/gists{/gist_id}","starred_url":"https://api.github.com/users/courtney-g/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/courtney-g/subscriptions","organizations_url":"https://api.github.com/users/courtney-g/orgs","repos_url":"https://api.github.com/users/courtney-g/repos","events_url":"https://api.github.com/users/courtney-g/events{/privacy}","received_events_url":"https://api.github.com/users/courtney-g/received_events","type":"User","site_admin":false},"created_at":"2016-07-11T20:46:47Z","updated_at":"2016-07-11T20:46:47Z","body":"It is documented in the Fundamental's chapter that it is allowed to call Destroy and Free with VK_NULL_HANDLE: It is valid to pass VK_NULL_HANDLE to any vkDestroy* or vkFree* command, which will silently ignore these values.\r\n\r\nIf the NVIDIA driver is crashing when you do that it should be reported to NVIDIA as a driver bug."}}
{"actor":{"display_login":"courtney-g"}}