{"action":"created","comment":{"url":"https://api.github.com/repos/google/nxt-standalone/pulls/comments/125518552","pull_request_review_id":47914570,"id":125518552,"diff_hunk":"@@ -0,0 +1,133 @@\n+// Copyright 2017 The NXT Authors","path":"src/backend/d3d12/TextureD3D12.cpp","position":null,"original_position":1,"commit_id":"7732e3b41286780c806af6135e9f7bd9d7b5579b","original_commit_id":"41854941dfc2c6ecce075f66fee21b74e0cc4d02","user":{"login":"austinEng","id":2154796,"avatar_url":"https://avatars0.githubusercontent.com/u/2154796?v=3","gravatar_id":"","url":"https://api.github.com/users/austinEng","html_url":"https://github.com/austinEng","followers_url":"https://api.github.com/users/austinEng/followers","following_url":"https://api.github.com/users/austinEng/following{/other_user}","gists_url":"https://api.github.com/users/austinEng/gists{/gist_id}","starred_url":"https://api.github.com/users/austinEng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/austinEng/subscriptions","organizations_url":"https://api.github.com/users/austinEng/orgs","repos_url":"https://api.github.com/users/austinEng/repos","events_url":"https://api.github.com/users/austinEng/events{/privacy}","received_events_url":"https://api.github.com/users/austinEng/received_events","type":"User","site_admin":false},"body":"Yea, I had a reduced version here because the binding model PR wasn't merged yet. Updated.","created_at":"2017-07-04T18:33:53Z","updated_at":"2017-07-04T18:33:53Z","html_url":"https://github.com/google/nxt-standalone/pull/59#discussion_r125518552","pull_request_url":"https://api.github.com/repos/google/nxt-standalone/pulls/59","_links":{"self":{"href":"https://api.github.com/repos/google/nxt-standalone/pulls/comments/125518552"},"html":{"href":"https://github.com/google/nxt-standalone/pull/59#discussion_r125518552"},"pull_request":{"href":"https://api.github.com/repos/google/nxt-standalone/pulls/59"}}},"pull_request":{"url":"https://api.github.com/repos/google/nxt-standalone/pulls/59","id":128451208,"html_url":"https://github.com/google/nxt-standalone/pull/59","diff_url":"https://github.com/google/nxt-standalone/pull/59.diff","patch_url":"https://github.com/google/nxt-standalone/pull/59.patch","issue_url":"https://api.github.com/repos/google/nxt-standalone/issues/59","number":59,"state":"open","locked":false,"title":"D3D12: Add MapReadAsync and Resource Copies","user":{"login":"austinEng","id":2154796,"avatar_url":"https://avatars0.githubusercontent.com/u/2154796?v=3","gravatar_id":"","url":"https://api.github.com/users/austinEng","html_url":"https://github.com/austinEng","followers_url":"https://api.github.com/users/austinEng/followers","following_url":"https://api.github.com/users/austinEng/following{/other_user}","gists_url":"https://api.github.com/users/austinEng/gists{/gist_id}","starred_url":"https://api.github.com/users/austinEng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/austinEng/subscriptions","organizations_url":"https://api.github.com/users/austinEng/orgs","repos_url":"https://api.github.com/users/austinEng/repos","events_url":"https://api.github.com/users/austinEng/events{/privacy}","received_events_url":"https://api.github.com/users/austinEng/received_events","type":"User","site_admin":false},"body":"This introduces Buffer->Buffer copies, Buffer->Texture copies, Texture->Buffer copies, and MapReadAsync to the D3D12 backend which will help bring us closer to automated testing.\r\n\r\nCurrently texture operations only work if the rows are 256-byte aligned, but this constraint is not enforced anywhere, so using textures of non-aligned sizes will cause errors.\r\n\r\nUse of MapReadAsync in the tests has an extra buffer copy. In the tests, adding a buffer assertion creates a MapRead buffer and schedules a copy. In the D3D12 backend, this is created on a heap of type D3D12_HEAP_TYPE_DEFAULT which cannot be mapped. MapReadAsyncImpl creates a copy of the resource on a heap of type D3D12_HEAP_TYPE_READBACK and then maps that resource.\r\n\r\nA small test which does a Buffer->Texture and then Texture->Buffer copy has been added and is currently working on the D3D12 backend. I have not tested this on Metal.\r\n\r\nDevice::TickImpl now also executes any pending commands and increments the Serial in order for the MapReadAsync requests to work.","created_at":"2017-06-30T21:10:11Z","updated_at":"2017-07-04T18:33:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c73dee2e62f34a2f93f7d569f30f5ddaf70030b6","assignee":null,"assignees":[],"requested_reviewers":[{"login":"kainino0x","id":606355,"avatar_url":"https://avatars2.githubusercontent.com/u/606355?v=3","gravatar_id":"","url":"https://api.github.com/users/kainino0x","html_url":"https://github.com/kainino0x","followers_url":"https://api.github.com/users/kainino0x/followers","following_url":"https://api.github.com/users/kainino0x/following{/other_user}","gists_url":"https://api.github.com/users/kainino0x/gists{/gist_id}","starred_url":"https://api.github.com/users/kainino0x/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kainino0x/subscriptions","organizations_url":"https://api.github.com/users/kainino0x/orgs","repos_url":"https://api.github.com/users/kainino0x/repos","events_url":"https://api.github.com/users/kainino0x/events{/privacy}","received_events_url":"https://api.github.com/users/kainino0x/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/google/nxt-standalone/pulls/59/commits","review_comments_url":"https://api.github.com/repos/google/nxt-standalone/pulls/59/comments","review_comment_url":"https://api.github.com/repos/google/nxt-standalone/pulls/comments{/number}","comments_url":"https://api.github.com/repos/google/nxt-standalone/issues/59/comments","statuses_url":"https://api.github.com/repos/google/nxt-standalone/statuses/7732e3b41286780c806af6135e9f7bd9d7b5579b","head":{"label":"austinEng:resource-copies","ref":"resource-copies","sha":"7732e3b41286780c806af6135e9f7bd9d7b5579b","user":{"login":"austinEng","id":2154796,"avatar_url":"https://avatars0.githubusercontent.com/u/2154796?v=3","gravatar_id":"","url":"https://api.github.com/users/austinEng","html_url":"https://github.com/austinEng","followers_url":"https://api.github.com/users/austinEng/followers","following_url":"https://api.github.com/users/austinEng/following{/other_user}","gists_url":"https://api.github.com/users/austinEng/gists{/gist_id}","starred_url":"https://api.github.com/users/austinEng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/austinEng/subscriptions","organizations_url":"https://api.github.com/users/austinEng/orgs","repos_url":"https://api.github.com/users/austinEng/repos","events_url":"https://api.github.com/users/austinEng/events{/privacy}","received_events_url":"https://api.github.com/users/austinEng/received_events","type":"User","site_admin":false},"repo":{"id":92305329,"name":"nxt-standalone","full_name":"austinEng/nxt-standalone","owner":{"login":"austinEng","id":2154796,"avatar_url":"https://avatars0.githubusercontent.com/u/2154796?v=3","gravatar_id":"","url":"https://api.github.com/users/austinEng","html_url":"https://github.com/austinEng","followers_url":"https://api.github.com/users/austinEng/followers","following_url":"https://api.github.com/users/austinEng/following{/other_user}","gists_url":"https://api.github.com/users/austinEng/gists{/gist_id}","starred_url":"https://api.github.com/users/austinEng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/austinEng/subscriptions","organizations_url":"https://api.github.com/users/austinEng/orgs","repos_url":"https://api.github.com/users/austinEng/repos","events_url":"https://api.github.com/users/austinEng/events{/privacy}","received_events_url":"https://api.github.com/users/austinEng/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/austinEng/nxt-standalone","description":"ANGLE-like library for Chromium's next-generation Web graphics API prototype.","fork":true,"url":"https://api.github.com/repos/austinEng/nxt-standalone","forks_url":"https://api.github.com/repos/austinEng/nxt-standalone/forks","keys_url":"https://api.github.com/repos/austinEng/nxt-standalone/keys{/key_id}","collaborators_url":"https://api.github.com/repos/austinEng/nxt-standalone/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/austinEng/nxt-standalone/teams","hooks_url":"https://api.github.com/repos/austinEng/nxt-standalone/hooks","issue_events_url":"https://api.github.com/repos/austinEng/nxt-standalone/issues/events{/number}","events_url":"https://api.github.com/repos/austinEng/nxt-standalone/events","assignees_url":"https://api.github.com/repos/austinEng/nxt-standalone/assignees{/user}","branches_url":"https://api.github.com/repos/austinEng/nxt-standalone/branches{/branch}","tags_url":"https://api.github.com/repos/austinEng/nxt-standalone/tags","blobs_url":"https://api.github.com/repos/austinEng/nxt-standalone/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/austinEng/nxt-standalone/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/austinEng/nxt-standalone/git/refs{/sha}","trees_url":"https://api.github.com/repos/austinEng/nxt-standalone/git/trees{/sha}","statuses_url":"https://api.github.com/repos/austinEng/nxt-standalone/statuses/{sha}","languages_url":"https://api.github.com/repos/austinEng/nxt-standalone/languages","stargazers_url":"https://api.github.com/repos/austinEng/nxt-standalone/stargazers","contributors_url":"https://api.github.com/repos/austinEng/nxt-standalone/contributors","subscribers_url":"https://api.github.com/repos/austinEng/nxt-standalone/subscribers","subscription_url":"https://api.github.com/repos/austinEng/nxt-standalone/subscription","commits_url":"https://api.github.com/repos/austinEng/nxt-standalone/commits{/sha}","git_commits_url":"https://api.github.com/repos/austinEng/nxt-standalone/git/commits{/sha}","comments_url":"https://api.github.com/repos/austinEng/nxt-standalone/comments{/number}","issue_comment_url":"https://api.github.com/repos/austinEng/nxt-standalone/issues/comments{/number}","contents_url":"https://api.github.com/repos/austinEng/nxt-standalone/contents/{+path}","compare_url":"https://api.github.com/repos/austinEng/nxt-standalone/compare/{base}...{head}","merges_url":"https://api.github.com/repos/austinEng/nxt-standalone/merges","archive_url":"https://api.github.com/repos/austinEng/nxt-standalone/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/austinEng/nxt-standalone/downloads","issues_url":"https://api.github.com/repos/austinEng/nxt-standalone/issues{/number}","pulls_url":"https://api.github.com/repos/austinEng/nxt-standalone/pulls{/number}","milestones_url":"https://api.github.com/repos/austinEng/nxt-standalone/milestones{/number}","notifications_url":"https://api.github.com/repos/austinEng/nxt-standalone/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/austinEng/nxt-standalone/labels{/name}","releases_url":"https://api.github.com/repos/austinEng/nxt-standalone/releases{/id}","deployments_url":"https://api.github.com/repos/austinEng/nxt-standalone/deployments","created_at":"2017-05-24T15:03:55Z","updated_at":"2017-05-24T15:03:57Z","pushed_at":"2017-07-04T18:31:25Z","git_url":"git://github.com/austinEng/nxt-standalone.git","ssh_url":"git@github.com:austinEng/nxt-standalone.git","clone_url":"https://github.com/austinEng/nxt-standalone.git","svn_url":"https://github.com/austinEng/nxt-standalone","homepage":"","size":714,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"google:master","ref":"master","sha":"cd1369178313266f8622e767707404d80e929561","user":{"login":"google","id":1342004,"avatar_url":"https://avatars2.githubusercontent.com/u/1342004?v=3","gravatar_id":"","url":"https://api.github.com/users/google","html_url":"https://github.com/google","followers_url":"https://api.github.com/users/google/followers","following_url":"https://api.github.com/users/google/following{/other_user}","gists_url":"https://api.github.com/users/google/gists{/gist_id}","starred_url":"https://api.github.com/users/google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google/subscriptions","organizations_url":"https://api.github.com/users/google/orgs","repos_url":"https://api.github.com/users/google/repos","events_url":"https://api.github.com/users/google/events{/privacy}","received_events_url":"https://api.github.com/users/google/received_events","type":"Organization","site_admin":false},"repo":{"id":88893060,"name":"nxt-standalone","full_name":"google/nxt-standalone","owner":{"login":"google","id":1342004,"avatar_url":"https://avatars2.githubusercontent.com/u/1342004?v=3","gravatar_id":"","url":"https://api.github.com/users/google","html_url":"https://github.com/google","followers_url":"https://api.github.com/users/google/followers","following_url":"https://api.github.com/users/google/following{/other_user}","gists_url":"https://api.github.com/users/google/gists{/gist_id}","starred_url":"https://api.github.com/users/google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google/subscriptions","organizations_url":"https://api.github.com/users/google/orgs","repos_url":"https://api.github.com/users/google/repos","events_url":"https://api.github.com/users/google/events{/privacy}","received_events_url":"https://api.github.com/users/google/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/google/nxt-standalone","description":"ANGLE-like library for Chromium's next-generation Web graphics API prototype.","fork":false,"url":"https://api.github.com/repos/google/nxt-standalone","forks_url":"https://api.github.com/repos/google/nxt-standalone/forks","keys_url":"https://api.github.com/repos/google/nxt-standalone/keys{/key_id}","collaborators_url":"https://api.github.com/repos/google/nxt-standalone/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/google/nxt-standalone/teams","hooks_url":"https://api.github.com/repos/google/nxt-standalone/hooks","issue_events_url":"https://api.github.com/repos/google/nxt-standalone/issues/events{/number}","events_url":"https://api.github.com/repos/google/nxt-standalone/events","assignees_url":"https://api.github.com/repos/google/nxt-standalone/assignees{/user}","branches_url":"https://api.github.com/repos/google/nxt-standalone/branches{/branch}","tags_url":"https://api.github.com/repos/google/nxt-standalone/tags","blobs_url":"https://api.github.com/repos/google/nxt-standalone/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/google/nxt-standalone/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/google/nxt-standalone/git/refs{/sha}","trees_url":"https://api.github.com/repos/google/nxt-standalone/git/trees{/sha}","statuses_url":"https://api.github.com/repos/google/nxt-standalone/statuses/{sha}","languages_url":"https://api.github.com/repos/google/nxt-standalone/languages","stargazers_url":"https://api.github.com/repos/google/nxt-standalone/stargazers","contributors_url":"https://api.github.com/repos/google/nxt-standalone/contributors","subscribers_url":"https://api.github.com/repos/google/nxt-standalone/subscribers","subscription_url":"https://api.github.com/repos/google/nxt-standalone/subscription","commits_url":"https://api.github.com/repos/google/nxt-standalone/commits{/sha}","git_commits_url":"https://api.github.com/repos/google/nxt-standalone/git/commits{/sha}","comments_url":"https://api.github.com/repos/google/nxt-standalone/comments{/number}","issue_comment_url":"https://api.github.com/repos/google/nxt-standalone/issues/comments{/number}","contents_url":"https://api.github.com/repos/google/nxt-standalone/contents/{+path}","compare_url":"https://api.github.com/repos/google/nxt-standalone/compare/{base}...{head}","merges_url":"https://api.github.com/repos/google/nxt-standalone/merges","archive_url":"https://api.github.com/repos/google/nxt-standalone/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/google/nxt-standalone/downloads","issues_url":"https://api.github.com/repos/google/nxt-standalone/issues{/number}","pulls_url":"https://api.github.com/repos/google/nxt-standalone/pulls{/number}","milestones_url":"https://api.github.com/repos/google/nxt-standalone/milestones{/number}","notifications_url":"https://api.github.com/repos/google/nxt-standalone/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/google/nxt-standalone/labels{/name}","releases_url":"https://api.github.com/repos/google/nxt-standalone/releases{/id}","deployments_url":"https://api.github.com/repos/google/nxt-standalone/deployments","created_at":"2017-04-20T17:33:32Z","updated_at":"2017-07-01T17:18:18Z","pushed_at":"2017-07-04T18:31:28Z","git_url":"git://github.com/google/nxt-standalone.git","ssh_url":"git@github.com:google/nxt-standalone.git","clone_url":"https://github.com/google/nxt-standalone.git","svn_url":"https://github.com/google/nxt-standalone","homepage":"","size":659,"stargazers_count":38,"watchers_count":38,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":9,"mirror_url":null,"open_issues_count":19,"forks":9,"open_issues":19,"watchers":38,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/google/nxt-standalone/pulls/59"},"html":{"href":"https://github.com/google/nxt-standalone/pull/59"},"issue":{"href":"https://api.github.com/repos/google/nxt-standalone/issues/59"},"comments":{"href":"https://api.github.com/repos/google/nxt-standalone/issues/59/comments"},"review_comments":{"href":"https://api.github.com/repos/google/nxt-standalone/pulls/59/comments"},"review_comment":{"href":"https://api.github.com/repos/google/nxt-standalone/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/google/nxt-standalone/pulls/59/commits"},"statuses":{"href":"https://api.github.com/repos/google/nxt-standalone/statuses/7732e3b41286780c806af6135e9f7bd9d7b5579b"}}}}
{"actor":{"display_login":"austinEng"}}