{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":637937460,"defaultBranch":"main","name":"DirectXShaderCompiler","ownerLogin":"s-perron","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2023-05-08T18:24:15.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/31666470?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1718293655.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"bd4f4769c12f21b61647df8f6b211bdd7179943d","ref":"refs/heads/i6171","pushedAt":"2024-06-13T15:47:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Add warning when vk::offset is not correctly aligned\n\nWe will start issues a warning when `vk::offset` is not correctly\naligned to make it easier for users to understand why their spir-v will\nnot validate. Note that we do not treat this as an error because we want\nto allow someone to have the flexibility to do other things. For\nexample, they could be targeting an API that does not follow any of\nthe existing rules, which is why they are using `vk::offset`.\n\nFixes #6171","shortMessageHtmlLink":"Add warning when vk::offset is not correctly aligned"}},{"before":"1e6dd57a8b51229299222d9f53b9deb7ff2d7e4c","after":"8373870b65713f68d45f4de549737b43a511a85e","ref":"refs/heads/i6678","pushedAt":"2024-06-12T14:23:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Rename functions","shortMessageHtmlLink":"Rename functions"}},{"before":"5139c82bcce6b87277c8a0b624bbafa3d84de386","after":"1e6dd57a8b51229299222d9f53b9deb7ff2d7e4c","ref":"refs/heads/i6678","pushedAt":"2024-06-11T19:01:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"add tests","shortMessageHtmlLink":"add tests"}},{"before":"5390ac340dbb8d97abbdfa60d0ebf88e87317a0c","after":"5139c82bcce6b87277c8a0b624bbafa3d84de386","ref":"refs/heads/i6678","pushedAt":"2024-06-11T18:17:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Make the location map run per entry point\n\nThe code that addes the input and output decoration in the entry points\ninputs and outputs assumes that there is a single entry point in the\nmodule. When using the `lib` profile that is not true.\n\nThis commit modifies the code so that it groups the stage variables by\nentry point, and runs the current code on each group separetly.\n\nI hesistate to make this change because it will change the locations for\ncode that currently works, and will force users to update their\napplications accordingly. Or they could modify their shaders\nto use explicit locations attributes. Neither is great.\n\nFixes #6678\nFixes #5213","shortMessageHtmlLink":"Make the location map run per entry point"}},{"before":"ac8df743716c5be034a6177a94cd620b859b1c19","after":"5390ac340dbb8d97abbdfa60d0ebf88e87317a0c","ref":"refs/heads/i6678","pushedAt":"2024-06-10T19:19:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Make the location map run per entry point\n\nThe code that addes the input and output decoration in the entry points\ninputs and outputs assumes that there is a single entry point in the\nmodule. When using the `lib` profile that is not true.\n\nThis commit modifies the code so that it groups the stage variables by\nentry point, and runs the current code on each group separetly.\n\nI hesistate to make this change because it will change the locations for\ncode that currently works, and will force users to update their\napplications accordingly. Or they could modify their shaders\nto use explicit locations attributes. Neither is great.\n\nFixes #6678\nFixes #5213","shortMessageHtmlLink":"Make the location map run per entry point"}},{"before":"dcfe8737b93afae5b21186006b125c4929c14d8f","after":null,"ref":"refs/heads/i6636","pushedAt":"2024-06-10T18:14:29.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"}},{"before":null,"after":"ac8df743716c5be034a6177a94cd620b859b1c19","ref":"refs/heads/i6678","pushedAt":"2024-06-10T17:59:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Allow vars in different stages to have the same location.","shortMessageHtmlLink":"Allow vars in different stages to have the same location."}},{"before":null,"after":"1d196655b615fdb15afcd457c1466d9094947b02","ref":"refs/heads/i6612","pushedAt":"2024-06-10T13:49:25.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Fix crash in scalarrepl-param-hlsl when dynamically indexing a GEP of a constant indexed GEP (#6670)\n\nWhen processing global values to determine when to flatten vectors, this\r\npass was only checking the immdiate users of the value for non-dynamic\r\nindexing of the vector. But this would fail in the case of a dynamic\r\nindexed GEP of a constant indexed GEP (e.g. h[0][a]) because the first\r\nlevel GEP was constant indexed, but not the second. We fix this by\r\nchecking the full User tree of the value in `hasDynamicVectorIndexing`.","shortMessageHtmlLink":"Fix crash in scalarrepl-param-hlsl when dynamically indexing a GEP of…"}},{"before":"348baaa2b041355e49f26b97b31e760fcc5d0d90","after":"281fde73c6d2015347f6e43c8498f1025145ed48","ref":"refs/heads/update_deps","pushedAt":"2024-06-07T13:06:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Update SPRIV-Tools and SPIRV-Headers\n\nUpdate the deps and tests accordingly.","shortMessageHtmlLink":"Update SPRIV-Tools and SPIRV-Headers"}},{"before":"978d36221daecfb745fde05a78bd134a389cb934","after":"348baaa2b041355e49f26b97b31e760fcc5d0d90","ref":"refs/heads/update_deps","pushedAt":"2024-06-06T14:00:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Update SPRIV-Tools and SPIRV-Headers\n\nUpdate the deps and tests accordingly","shortMessageHtmlLink":"Update SPRIV-Tools and SPIRV-Headers"}},{"before":null,"after":"978d36221daecfb745fde05a78bd134a389cb934","ref":"refs/heads/update_deps","pushedAt":"2024-06-06T13:59:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"fix compile error for newer VS toolchain (#6648)\n\nThis is to fix compile error like\r\n\r\n```\r\n../../third_party/dxc/utils/TableGen/AsmWriterEmitter.cpp(974): error C2666: '`anonymous-namespace'::IAPrinter::operator ==': overloaded functions have similar conversions\r\n../../third_party/dxc/utils/TableGen/AsmWriterEmitter.cpp(739): note: could be 'bool `anonymous-namespace'::IAPrinter::operator ==(const `anonymous-namespace'::IAPrinter &)'\r\n../../third_party/dxc/utils/TableGen/AsmWriterEmitter.cpp(739): note: or 'bool `anonymous-namespace'::IAPrinter::operator ==(const `anonymous-namespace'::IAPrinter &)' [synthesized expression 'y == x']\r\n../../third_party/dxc/utils/TableGen/AsmWriterEmitter.cpp(974): note: while trying to match the argument list '(`anonymous-namespace'::IAPrinter, `anonymous-namespace'::IAPrinter)'\r\n```\r\nin dawn project which is updating to newer VS toolchain.\r\n\r\nThis imports fix from\r\nhttps://github.com/llvm/llvm-project/commit/4ab57cd9abb9535149e62c18461b56b94b09285a.\r\n\r\nmore context is in https://issues.chromium.org/issues/341890053#comment2","shortMessageHtmlLink":"fix compile error for newer VS toolchain (microsoft#6648)"}},{"before":"0ab9d60f96d00be93456de5dbe0811928d4c8b4f","after":"dcfe8737b93afae5b21186006b125c4929c14d8f","ref":"refs/heads/i6636","pushedAt":"2024-05-27T18:20:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Add option to set the max id\n\nVulkan implementation can have different limits on the maximum value\nused as an id in a SPIR-V binary. SPIRV-Tools generall assumes this\nlimit is 0x3FFFFF because all implementations must support at least that\nvalue for an id. Since many implementations can support larger values,\nthe tools allows an option that will set a different limit. This commit\nadd an option to DXC to do the same.\n\nFixes #6636","shortMessageHtmlLink":"Add option to set the max id"}},{"before":null,"after":"0ab9d60f96d00be93456de5dbe0811928d4c8b4f","ref":"refs/heads/i6636","pushedAt":"2024-05-27T18:20:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Add option to set the max id\n\nVulkan implementation can have different limits on the maximum value\nused as an id in a SPIR-V binary. SPIRV-Tools generall assumes this\nlimit is 0x3FFFFF because all implementations must support at least that\nvalue for an id. Since many implementations can support larger values,\nthe tools allows an option that will set a different limit. This commit\nadd an option to DXC to do the same.\n\nFixes #6636","shortMessageHtmlLink":"Add option to set the max id"}},{"before":"81125465466492ee6d3aaf716209af8d5e32a099","after":null,"ref":"refs/heads/i2882","pushedAt":"2024-05-22T16:45:04.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"}},{"before":null,"after":"81125465466492ee6d3aaf716209af8d5e32a099","ref":"refs/heads/i2882","pushedAt":"2024-05-17T19:33:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Fix aligment for empty structs\n\nWe have a special case to that the the size and alignment for an empty\nstruct is `{1,0}`. However that is not correct. See\nhttps://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-alignment-requirements.\n\n> An empty structure has a base alignment equal to the size of the smallest\nscalar type permitted by the capabilities declared in the SPIR-V module. (e.g.,\nfor a 1 byte aligned empty struct in the StorageBuffer storage class,\nStorageBuffer8BitAccess or UniformAndStorageBuffer8BitAccess must be declared\nin the SPIR-V module.\n\nI'm not 100% sure how DXC handle this minimum alignment, but I figured I\nwould inialize the alignment to 1. If there are not members, then it\nwill remain 1, and I would let the rest of the logic happen. No special\ncase.\n\nFixes #2882","shortMessageHtmlLink":"Fix aligment for empty structs"}},{"before":"e27f560143ab2768023d366a2709dfd11b7b5d06","after":"83e08288a0bd6e5877f14537ec66552158138c0d","ref":"refs/heads/i5688","pushedAt":"2024-02-14T14:29:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Add assert","shortMessageHtmlLink":"Add assert"}},{"before":"1413cc763d5e39cb8d465889f607fcbe89cabec7","after":"e27f560143ab2768023d366a2709dfd11b7b5d06","ref":"refs/heads/i5688","pushedAt":"2024-02-13T19:07:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Move to AstTypeProbe.h","shortMessageHtmlLink":"Move to AstTypeProbe.h"}},{"before":null,"after":"1413cc763d5e39cb8d465889f607fcbe89cabec7","ref":"refs/heads/i5688","pushedAt":"2024-02-13T18:50:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"[SPIRV] Handle bit fields with initializer lists\n\nThe spir-v backend currently treats each bitfield as a separate member\nin the spir-v type when processing an initializer list. This commit\nchanges that so that it matches the behaviour of the DXIL backend.\n\nIn particular, if `{bf1, bf2}` is used to initialize a struct with two\nbitfield, then `bf1` and bf2` will be merged into a single field when\nconstructing the struct.\n\nFixes #5688","shortMessageHtmlLink":"[SPIRV] Handle bit fields with initializer lists"}},{"before":null,"after":"3385fd14f7a6e09290861d113e2a0ab5298ce3a5","ref":"refs/heads/i6042","pushedAt":"2024-02-13T15:56:30.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"[SPIRV] Cast SV_CULLPRIMITIVE to uint\n\nWhen SV_CULLPRIMITIVE is the output of a mesh shader, its type is\nchanged to uint because a Vulkan interface variable cannot be a bool.\nHowever, we do not change the access to the variable to match.\n\nThis change will modify stores to the variable to be stores of a uint\ninstead of a bool.\n\nFixes #4602","shortMessageHtmlLink":"[SPIRV] Cast SV_CULLPRIMITIVE to uint"}},{"before":"dc972505451366fc9d9d8c6f4e869c27947f2abb","after":null,"ref":"refs/heads/i6188","pushedAt":"2024-02-12T19:19:53.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"}},{"before":"8d823e6b3baf047a77c9ff2772513e323e456d93","after":"dc972505451366fc9d9d8c6f4e869c27947f2abb","ref":"refs/heads/i6188","pushedAt":"2024-02-12T17:04:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"Update tools/clang/test/CodeGenSPIRV/cast.flat-conversion.literal-initializer.hlsl\n\nCo-authored-by: Natalie Chouinard ","shortMessageHtmlLink":"Update tools/clang/test/CodeGenSPIRV/cast.flat-conversion.literal-ini…"}},{"before":"c7823d74925f784e1a196e683d0748c899ac5377","after":null,"ref":"refs/heads/hai_var_idx","pushedAt":"2024-02-12T15:13:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"}},{"before":"4f60650e393b8e0ab91b86b0fa9fa1b56de9a27c","after":"8d823e6b3baf047a77c9ff2772513e323e456d93","ref":"refs/heads/i6188","pushedAt":"2024-02-12T14:54:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"[SPIRV] Using 64-bit int literals in flat conversion\n\nDuring flat convertion, we have to pick the bit width for literals\nbecause they could be used in multiple places as different sizes, and\nthat breaks the literal visitor. We currently use 32-bit types because\nthat is the most common use case, and we don't want to unnecessarily\nadd a capability.\n\nHowever, if we pick a 64-bit width, we should be able to fold all of\nthe operations on literals. If they are only used as 32-bit value, then\nultimatlly fold them to 32-bit constants and remove the 64-bit\ncapabilities.\n\nThis commit updates the spir-v submodule to pull in the 64-bit interger\nfolding changes, and then starts to use 64-bit integer literal in flat conversion.\n\nNote that the problem still exists for floating point values. Spirv-opt\ndoes not fold OpFConvert yet, we still treat the literals like a float.\n\nFixes #6188\n\nmend","shortMessageHtmlLink":"[SPIRV] Using 64-bit int literals in flat conversion"}},{"before":null,"after":"4f60650e393b8e0ab91b86b0fa9fa1b56de9a27c","ref":"refs/heads/i6188","pushedAt":"2024-02-09T21:03:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"[SPIRV] Using 64-bit literals in flat conversion\n\nDuring flat convertion, we have to pick the bit width for literals\nbecause they could be used in multiple places as different sizes, and\nthat breaks the literal visitor. We currently use 32-bit types because\nthat is the most common use case, and we don't want to unnecessarily\nadd a capability.\n\nHowever, if we pick a 64-bit width, we should be able to fold all of\nthe operations on literals. If they are only used as 32-bit value, then\nultimatlly fold them to 32-bit constants and remove the 64-bit\ncapabilities.\n\nThis commit updates the spir-v submodule to pull in the 64-bit folding\nchanges, and then starts to use 64-bit literal in flat conversion.\n\nFixes #6188","shortMessageHtmlLink":"[SPIRV] Using 64-bit literals in flat conversion"}},{"before":"5d482cb7e5922256426cd2cb48e7e2d038d35f89","after":"c7823d74925f784e1a196e683d0748c899ac5377","ref":"refs/heads/hai_var_idx","pushedAt":"2024-02-09T14:35:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"[SPIRV] Do not ignore RValue cast for vertex id in GetAttributeAtVertex\n\nWe are able to pass a variable as the index to GetAttributeAtVertex, but\nonly if it is signed. If the value is unsigned, no cast is needed, and\nthe current code will skip the LValueToRValue cast. This causes the\nload to be skipped generating invalid code.","shortMessageHtmlLink":"[SPIRV] Do not ignore RValue cast for vertex id in GetAttributeAtVertex"}},{"before":null,"after":"5d482cb7e5922256426cd2cb48e7e2d038d35f89","ref":"refs/heads/hai_var_idx","pushedAt":"2024-02-09T14:22:01.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"[SPIRV] Add test for uint variable to GetAttributeAtVertex\n\nWe are able to pass a variable as the index to GetAttributeAtVertex, but\nonly if it is signed. It should work with an unsigned index as well.\n\nThis commit will get that working.","shortMessageHtmlLink":"[SPIRV] Add test for uint variable to GetAttributeAtVertex"}},{"before":"05856a5a4db71dd8580b443dbbbaae44c2a09fed","after":null,"ref":"refs/heads/hai_var_idx","pushedAt":"2024-02-09T14:11:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"}},{"before":"12e37b24f7ab78063deb7898df1ce3f372ff97e5","after":null,"ref":"refs/heads/i6110","pushedAt":"2024-02-08T21:13:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"}},{"before":"c1167e31417699f91fa13a299c8b54cdc9520bcc","after":"05856a5a4db71dd8580b443dbbbaae44c2a09fed","ref":"refs/heads/hai_var_idx","pushedAt":"2024-02-08T21:04:25.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"[SPIRV] Allows variable vertex index for GetAttributeAtVertex\n\nThe SPIR-V path currently fails when a variable is passed at the index\nto GetAttributeAtVertex. Not only should we not crash, but the variable\ndoes not seem to be a problem for the SPIR-V validator. So we can simply\ngenerate an access chain with a variable idx.","shortMessageHtmlLink":"[SPIRV] Allows variable vertex index for GetAttributeAtVertex"}},{"before":null,"after":"c1167e31417699f91fa13a299c8b54cdc9520bcc","ref":"refs/heads/hai_var_idx","pushedAt":"2024-02-08T21:02:15.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"s-perron","name":"Steven Perron","path":"/s-perron","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/31666470?s=80&v=4"},"commit":{"message":"[SPIRV] Allows variable vertex index for GetAttributeAtVertex\n\nThe SPIR-V path currently fails when a variable is passed at the index\nto GetAttributeAtVertex. Not only should we not crash, but the variable\ndoes not seem to be a problem for the SPIR-V validator. So we can simply\ngenerate an access chain with a variable idx.","shortMessageHtmlLink":"[SPIRV] Allows variable vertex index for GetAttributeAtVertex"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEZJptfgA","startCursor":null,"endCursor":null}},"title":"Activity · s-perron/DirectXShaderCompiler"}