{"action":"created","issue":{"url":"https://api.github.com/repos/KhronosGroup/GLSL/issues/19","repository_url":"https://api.github.com/repos/KhronosGroup/GLSL","labels_url":"https://api.github.com/repos/KhronosGroup/GLSL/issues/19/labels{/name}","comments_url":"https://api.github.com/repos/KhronosGroup/GLSL/issues/19/comments","events_url":"https://api.github.com/repos/KhronosGroup/GLSL/issues/19/events","html_url":"https://github.com/KhronosGroup/GLSL/issues/19","id":337250136,"node_id":"MDU6SXNzdWUzMzcyNTAxMzY=","number":19,"title":"Why is `gl_SubgroupSize` not a constant?","user":{"login":"krOoze","id":3791331,"node_id":"MDQ6VXNlcjM3OTEzMzE=","avatar_url":"https://avatars1.githubusercontent.com/u/3791331?v=4","gravatar_id":"","url":"https://api.github.com/users/krOoze","html_url":"https://github.com/krOoze","followers_url":"https://api.github.com/users/krOoze/followers","following_url":"https://api.github.com/users/krOoze/following{/other_user}","gists_url":"https://api.github.com/users/krOoze/gists{/gist_id}","starred_url":"https://api.github.com/users/krOoze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/krOoze/subscriptions","organizations_url":"https://api.github.com/users/krOoze/orgs","repos_url":"https://api.github.com/users/krOoze/repos","events_url":"https://api.github.com/users/krOoze/events{/privacy}","received_events_url":"https://api.github.com/users/krOoze/received_events","type":"User","site_admin":false},"labels":[{"id":948387396,"node_id":"MDU6TGFiZWw5NDgzODczOTY=","url":"https://api.github.com/repos/KhronosGroup/GLSL/labels/Vulkan","name":"Vulkan","color":"27858c","default":false}],"state":"open","locked":false,"assignee":{"login":"johnkslang","id":5607714,"node_id":"MDQ6VXNlcjU2MDc3MTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/5607714?v=4","gravatar_id":"","url":"https://api.github.com/users/johnkslang","html_url":"https://github.com/johnkslang","followers_url":"https://api.github.com/users/johnkslang/followers","following_url":"https://api.github.com/users/johnkslang/following{/other_user}","gists_url":"https://api.github.com/users/johnkslang/gists{/gist_id}","starred_url":"https://api.github.com/users/johnkslang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johnkslang/subscriptions","organizations_url":"https://api.github.com/users/johnkslang/orgs","repos_url":"https://api.github.com/users/johnkslang/repos","events_url":"https://api.github.com/users/johnkslang/events{/privacy}","received_events_url":"https://api.github.com/users/johnkslang/received_events","type":"User","site_admin":false},"assignees":[{"login":"johnkslang","id":5607714,"node_id":"MDQ6VXNlcjU2MDc3MTQ=","avatar_url":"https://avatars0.githubusercontent.com/u/5607714?v=4","gravatar_id":"","url":"https://api.github.com/users/johnkslang","html_url":"https://github.com/johnkslang","followers_url":"https://api.github.com/users/johnkslang/followers","following_url":"https://api.github.com/users/johnkslang/following{/other_user}","gists_url":"https://api.github.com/users/johnkslang/gists{/gist_id}","starred_url":"https://api.github.com/users/johnkslang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johnkslang/subscriptions","organizations_url":"https://api.github.com/users/johnkslang/orgs","repos_url":"https://api.github.com/users/johnkslang/repos","events_url":"https://api.github.com/users/johnkslang/events{/privacy}","received_events_url":"https://api.github.com/users/johnkslang/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/KhronosGroup/GLSL/milestones/1","html_url":"https://github.com/KhronosGroup/GLSL/milestone/1","labels_url":"https://api.github.com/repos/KhronosGroup/GLSL/milestones/1/labels","id":2784146,"node_id":"MDk6TWlsZXN0b25lMjc4NDE0Ng==","number":1,"title":"Needs Triage","description":"","creator":{"login":"oddhack","id":4693344,"node_id":"MDQ6VXNlcjQ2OTMzNDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/4693344?v=4","gravatar_id":"","url":"https://api.github.com/users/oddhack","html_url":"https://github.com/oddhack","followers_url":"https://api.github.com/users/oddhack/followers","following_url":"https://api.github.com/users/oddhack/following{/other_user}","gists_url":"https://api.github.com/users/oddhack/gists{/gist_id}","starred_url":"https://api.github.com/users/oddhack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/oddhack/subscriptions","organizations_url":"https://api.github.com/users/oddhack/orgs","repos_url":"https://api.github.com/users/oddhack/repos","events_url":"https://api.github.com/users/oddhack/events{/privacy}","received_events_url":"https://api.github.com/users/oddhack/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":0,"state":"open","created_at":"2017-09-21T22:42:17Z","updated_at":"2018-09-21T07:54:11Z","due_on":null,"closed_at":null},"comments":10,"created_at":"2018-06-30T23:24:47Z","updated_at":"2018-09-21T08:00:19Z","closed_at":null,"author_association":"NONE","body":"Why is `gl_SubgroupSize` not a constant?\r\nPer Vulkan spec it is PhysicalDevice property, so it feels it could be a built-in constant.\r\nCurrently it seems to be listed under built-in variables.\r\n\r\nI am also not certain why `gl_NumSubgroups` is _only_ \"uniform across the invocation group\". Why would it ever change within the workgroup?\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/KhronosGroup/GLSL/issues/comments/423448852","html_url":"https://github.com/KhronosGroup/GLSL/issues/19#issuecomment-423448852","issue_url":"https://api.github.com/repos/KhronosGroup/GLSL/issues/19","id":423448852,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMzQ0ODg1Mg==","user":{"login":"ianromanick","id":7134708,"node_id":"MDQ6VXNlcjcxMzQ3MDg=","avatar_url":"https://avatars2.githubusercontent.com/u/7134708?v=4","gravatar_id":"","url":"https://api.github.com/users/ianromanick","html_url":"https://github.com/ianromanick","followers_url":"https://api.github.com/users/ianromanick/followers","following_url":"https://api.github.com/users/ianromanick/following{/other_user}","gists_url":"https://api.github.com/users/ianromanick/gists{/gist_id}","starred_url":"https://api.github.com/users/ianromanick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ianromanick/subscriptions","organizations_url":"https://api.github.com/users/ianromanick/orgs","repos_url":"https://api.github.com/users/ianromanick/repos","events_url":"https://api.github.com/users/ianromanick/events{/privacy}","received_events_url":"https://api.github.com/users/ianromanick/received_events","type":"User","site_admin":false},"created_at":"2018-09-21T08:00:19Z","updated_at":"2018-09-21T08:00:19Z","author_association":"NONE","body":"> Why is `gl_SubgroupSize` not a constant?\r\n> Per Vulkan spec it is PhysicalDevice property, so it feels it could be a built-in constant.\r\n> Currently it seems to be listed under built-in variables.\r\n> \r\n> I am also not certain why `gl_NumSubgroups` is _only_ \"uniform across the invocation group\". Why would it ever change within the workgroup?\r\n\r\nIt was originally specified this way due to the way Intel GPUs handle SIMD groups.  SIMD groups can be 8, 16, or 32.  For vertex processing stages and compute, the SIMD group size is fixed during shader compilation.  For fragment stage, the SIMD group size will vary across the primitive, up to a limit based on register pressure, depending on how the hardware decided to dispatch the groups.\r\n\r\nI think we may have implemented these variables in a way that could allow some of these variables to be const (instead of uniform) or uniform (instead of in).  I need to double check."}}
{"actor":{"display_login":"ianromanick"}}