{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":75787966,"defaultBranch":"main","name":"DirectXShaderCompiler","ownerLogin":"microsoft","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-12-07T01:42:19.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/6154722?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1722454309.0","currentOid":""},"activityList":{"items":[{"before":"91b348912ba1da524f8230647c514acdcfb9f3c7","after":"cc6c6656d5cececcdf912609ad931c73fb59557b","ref":"refs/heads/main","pushedAt":"2024-08-02T13:51:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"python3kgae","name":"Xiang Li","path":"/python3kgae","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22380486?s=80&v=4"},"commit":{"message":"[DOC] update release note for remove WaveMatrix. (#6842)\n\nAdd remove WaveMatrix in release note.","shortMessageHtmlLink":"[DOC] update release note for remove WaveMatrix. (#6842)"}},{"before":"71d6766881784096b52a714c5168d007d2d2a068","after":"91b348912ba1da524f8230647c514acdcfb9f3c7","ref":"refs/heads/main","pushedAt":"2024-08-01T19:37:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"amaiorano","name":"Antonio Maiorano","path":"/amaiorano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6893883?s=80&v=4"},"commit":{"message":"Add llvm assertions trap and no strings (#6838)\n\nAdd option LLVM_ASSERTIONS_NO_STRINGS\r\n \r\nWhen defined, drop the stringized expression, __FILE__, and __FUNCTION__\r\n strings passed to llvm_assert. This dramatically reduces the binary\r\n size, which is useful when enabling assertions in a non-debug build.\r\n\r\n Add option LLVM_ASSERTIONS_TRAP\r\n \r\nWhen enabled, this forces asserts to always trap. Currently, on Windows\r\n asserts calls RaiseException, while they trap on non-Windows. This\r\n option makes the assertion behaviour consistent across platforms.","shortMessageHtmlLink":"Add llvm assertions trap and no strings (#6838)"}},{"before":"5ecee0b599465fee96a1d51e3802be5d00f771c1","after":"71d6766881784096b52a714c5168d007d2d2a068","ref":"refs/heads/main","pushedAt":"2024-08-01T19:05:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"damyanp","name":"Damyan Pepper","path":"/damyanp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8118402?s=80&v=4"},"commit":{"message":"Fix the SAL of IDxcResult::GetOutput (#4487)\n\nThe ppOutputName parameter can be nullptr and can return nullptr. Change\r\nits SAL to _COM_Outptr_opt_result_maybenull_.\r\n\r\nRelated to #4149 .","shortMessageHtmlLink":"Fix the SAL of IDxcResult::GetOutput (#4487)"}},{"before":"8b33431849d48071ddad025b0f841f0d8345aff2","after":"5ecee0b599465fee96a1d51e3802be5d00f771c1","ref":"refs/heads/main","pushedAt":"2024-08-01T18:50:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"damyanp","name":"Damyan Pepper","path":"/damyanp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8118402?s=80&v=4"},"commit":{"message":"[NFC] Remove implicit `this` capture in lambdas (#6761)\n\nWhen declaring a lambda with a value-capture default [=, ...], the this\r\npointer is implicitly captured by value as well. This results in\r\npotentially-unintuitive behavior and has been deprecated in C++20. It\r\nproduces a warning in newer versions of clang\r\n(https://reviews.llvm.org/D142639).\r\n\r\nThis PR makes the implicit captures explicit, preventing the warning. It\r\ndoes not change the compiled code at all, since it's just removing some\r\nsyntactic sugar.","shortMessageHtmlLink":"[NFC] Remove implicit this capture in lambdas (#6761)"}},{"before":"d32426164252447121a29194083c0bdfcdf5167b","after":"8b33431849d48071ddad025b0f841f0d8345aff2","ref":"refs/heads/main","pushedAt":"2024-08-01T17:52:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"python3kgae","name":"Xiang Li","path":"/python3kgae","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22380486?s=80&v=4"},"commit":{"message":"Remove WaveMatrix (#6807)\n\nRemove WaveMatrix from main branch.\r\nThe DXIL operations are changed to Reserved to avoid affect DXIL\r\noperation ID.","shortMessageHtmlLink":"Remove WaveMatrix (#6807)"}},{"before":"4fabd7a318a4b1c413344c50f0dc4f898f2b2056","after":"d32426164252447121a29194083c0bdfcdf5167b","ref":"refs/heads/main","pushedAt":"2024-08-01T15:41:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"amaiorano","name":"Antonio Maiorano","path":"/amaiorano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6893883?s=80&v=4"},"commit":{"message":"Reassociation: fix counting of constant multiplicative factors (#6830)\n\nIn the middle of rewriting expressions like (A*B + A*C + D) to pull\r\ncommon factor A out, the algorithm finds that there's actually only one\r\nA. This is unexpected, and it fires an assertion.\r\n\r\nThis can occur when A is a constant, and constant -A also appears in the\r\nterms somewhere else.\r\n\r\nThere is no harm in this situation, however, because the algorithm then\r\ncreates an addition-tree, but with a single element, and that's still\r\ncorrect.\r\n\r\nThis bookkeeping issue was fixed later in LLVM, at\r\nhttps://github.com/llvm/llvm-project/commit/95abfa35d6c0b8a769399262496a3f692177ef12\r\n\r\nUnfortunately the associated test doesn't translate cleanly to DXC-era\r\nLLVM. I've added test case reduced from our original case.\r\n\r\nFixed: #6829","shortMessageHtmlLink":"Reassociation: fix counting of constant multiplicative factors (#6830)"}},{"before":"01fa18a57b40ccbcd78ae9e5f3a35366e7cc7037","after":"4fabd7a318a4b1c413344c50f0dc4f898f2b2056","ref":"refs/heads/main","pushedAt":"2024-07-31T23:55:37.000Z","pushType":"pr_merge","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":"[SPIRV] Implement Gis option for spir-v (#6840)\n\nFixes #3331","shortMessageHtmlLink":"[SPIRV] Implement Gis option for spir-v (#6840)"}},{"before":"bb373fb88e9e2acdb6fe2db0d7278d40d7a72074","after":"01fa18a57b40ccbcd78ae9e5f3a35366e7cc7037","ref":"refs/heads/main","pushedAt":"2024-07-31T20:53:48.000Z","pushType":"pr_merge","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":"[SPRIV] Allow vk-invert-y for MS shaders (#6839)\n\nFixes #3154","shortMessageHtmlLink":"[SPRIV] Allow vk-invert-y for MS shaders (#6839)"}},{"before":"ef043e90f3f3c5b2db899380591b5091b05f002e","after":"bb373fb88e9e2acdb6fe2db0d7278d40d7a72074","ref":"refs/heads/main","pushedAt":"2024-07-31T12:40:01.000Z","pushType":"pr_merge","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":"[spirv] Avoid adding spec and push constants to global ubo (#6832)\n\nThe code the decides which global variables to include in the implicit\nglobal cbuffer does not check for spec constant or push constant. They\nend up being incorrectly include in it, causing problems.\n\nThe solution is to add those to the type of variable that should be\nskipped.\n\nFixes #4542","shortMessageHtmlLink":"[spirv] Avoid adding spec and push constants to global ubo (#6832)"}},{"before":"37cd83fd531997e897a519d66d99a9e005ed8cb3","after":"416fab6b5c4ba956a320d9131102304da995edfc","ref":"refs/heads/release-1.8.2407","pushedAt":"2024-07-31T02:03:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"python3kgae","name":"Xiang Li","path":"/python3kgae","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22380486?s=80&v=4"},"commit":{"message":"Fix warning when use implicit launch type. (#6837) (#6841)\n\nBy default, the launch type should be set to ‘Broadcast’ when diagnosing\r\nbarriers. However, the current behavior sets the default launch type to\r\n‘Invalid,’ resulting in warnings when the launch type is not explicitly\r\nspecified as an attribute.\r\n\r\nTo address this issue, we’ll adjust the default setting to ‘Broadcast’\r\nand thereby resolve the problem.\r\n\r\nFixes #6836\r\n\r\n---------\r\n\r\nCo-authored-by: Damyan Pepper \r\n(cherry picked from commit ef043e90f3f3c5b2db899380591b5091b05f002e)","shortMessageHtmlLink":"Fix warning when use implicit launch type. (#6837) (#6841)"}},{"before":"b6f7ff81e9cea7b82a6412b6d2521dfdacc09517","after":"ef043e90f3f3c5b2db899380591b5091b05f002e","ref":"refs/heads/main","pushedAt":"2024-07-31T00:16:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"python3kgae","name":"Xiang Li","path":"/python3kgae","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22380486?s=80&v=4"},"commit":{"message":"Fix warning when use implicit launch type. (#6837)\n\nBy default, the launch type should be set to ‘Broadcast’ when diagnosing\r\nbarriers. However, the current behavior sets the default launch type to\r\n‘Invalid,’ resulting in warnings when the launch type is not explicitly\r\nspecified as an attribute.\r\n\r\nTo address this issue, we’ll adjust the default setting to ‘Broadcast’\r\nand thereby resolve the problem.\r\n\r\nFixes #6836\r\n\r\n---------\r\n\r\nCo-authored-by: Damyan Pepper ","shortMessageHtmlLink":"Fix warning when use implicit launch type. (#6837)"}},{"before":"9ef04817ef947bc839aed5b57ef1445844796e0c","after":"b6f7ff81e9cea7b82a6412b6d2521dfdacc09517","ref":"refs/heads/main","pushedAt":"2024-07-29T20:42:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"amaiorano","name":"Antonio Maiorano","path":"/amaiorano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6893883?s=80&v=4"},"commit":{"message":"Use llvm_assert/assert.h on all platforms, not just Windows (#6815)\n\nThis makes it possible to define how assert works on all platforms. The\r\nheader was already being included by String.cpp, and was already\r\ndesigned to work for non-Windows platforms.\r\n\r\nAlso modify the non-Windows llvm_assert to emit the assertion message to\r\nstderr and trap. We cannot call standard assert as we are overriding it\r\nvia include dirs, so there's no way to include the standard one and call\r\nit.","shortMessageHtmlLink":"Use llvm_assert/assert.h on all platforms, not just Windows (#6815)"}},{"before":"aa048b81edad40f0c7696ad8a9b05b7c36029450","after":"9ef04817ef947bc839aed5b57ef1445844796e0c","ref":"refs/heads/main","pushedAt":"2024-07-26T22:44:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dneto0","name":"David Neto","path":"/dneto0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13054574?s=80&v=4"},"commit":{"message":"Avoid OOB index when fixing constant array-initialization (#6825)\n\nIf the index on a constant store into an array is negative or out of\r\nbounds, that's an error, but shouldn't make the compiler index a vector\r\nout of bounds.\r\n\r\nFixed: #6824","shortMessageHtmlLink":"Avoid OOB index when fixing constant array-initialization (#6825)"}},{"before":"716e74100aee1379a91ca0bef150e83e635fb41b","after":"aa048b81edad40f0c7696ad8a9b05b7c36029450","ref":"refs/heads/main","pushedAt":"2024-07-26T22:43:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dneto0","name":"David Neto","path":"/dneto0","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13054574?s=80&v=4"},"commit":{"message":"Fix escape in Python string in lit.cfg (#6826)\n\nChange Python regexp ' clang\\+\\+ ' to ' clang\\\\+\\\\+' We're trying to\r\nmatch fixed strings like ` clang++ `, but `\\+` is not a valid Python\r\nescape sequence. Use `\\\\+` so the regexp machinery sees `\\+`","shortMessageHtmlLink":"Fix escape in Python string in lit.cfg (#6826)"}},{"before":"bc91bc57c45d2a6c581036020ef6e0f769c0adc6","after":"716e74100aee1379a91ca0bef150e83e635fb41b","ref":"refs/heads/main","pushedAt":"2024-07-26T21:46:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"python3kgae","name":"Xiang Li","path":"/python3kgae","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22380486?s=80&v=4"},"commit":{"message":"[NFC] create static lib for validator. (#6811)\n\nA static lib dxcvalidator is added.\r\nThe validators in dxcompiler and dxrfallbackcompiler links dxcvalidator.\r\n\r\nFixes #6790\r\n\r\n---------\r\n\r\nCo-authored-by: github-actions[bot] ","shortMessageHtmlLink":"[NFC] create static lib for validator. (#6811)"}},{"before":"ef4f44de20c7817ee2daf379b22b2cf35ca0ee24","after":"bc91bc57c45d2a6c581036020ef6e0f769c0adc6","ref":"refs/heads/main","pushedAt":"2024-07-26T21:23:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"damyanp","name":"Damyan Pepper","path":"/damyanp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8118402?s=80&v=4"},"commit":{"message":"Reserve some RDAT/DXIL enum values used by the mesh node preview (#6818)\n\nLet's ensure we don't accidentally stomp on these. If we do choose to\r\nbreak them, it should be intentional, not accidental.","shortMessageHtmlLink":"Reserve some RDAT/DXIL enum values used by the mesh node preview (#6818)"}},{"before":"0777bff09272bbf666e933e039060c17e4b374ca","after":"ef4f44de20c7817ee2daf379b22b2cf35ca0ee24","ref":"refs/heads/main","pushedAt":"2024-07-26T17:38:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"amaiorano","name":"Antonio Maiorano","path":"/amaiorano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6893883?s=80&v=4"},"commit":{"message":"Fix MSAN use-after-free in SmallVectorImpl dtor (#6819)\n\nHit when compiled with `-fsanitize-memory-use-after-dtor`. This was\r\nfixed upstream here:\r\n\r\nhttps://github.com/llvm/llvm-project/commit/527352b6ac01100f8a2d36ca895b663482202f00\r\nThis applies the same patch.","shortMessageHtmlLink":"Fix MSAN use-after-free in SmallVectorImpl dtor (#6819)"}},{"before":"af9a0ba8a5ccc1b147c9b4d51402d7a72f58ad17","after":"37cd83fd531997e897a519d66d99a9e005ed8cb3","ref":"refs/heads/release-1.8.2407","pushedAt":"2024-07-25T18:57:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"python3kgae","name":"Xiang Li","path":"/python3kgae","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22380486?s=80&v=4"},"commit":{"message":"[Doc] Release note update for 1.8.2407. (#6821) (#6822)\n\nAdd note for loop structurizer fixes.\r\nFix the ReleaseNotes.md path.\r\n\r\n(cherry picked from commit 0777bff09272bbf666e933e039060c17e4b374ca)","shortMessageHtmlLink":"[Doc] Release note update for 1.8.2407. (#6821) (#6822)"}},{"before":"83e4cd4084491e904ec05c66bd8a94d64a74cfbf","after":"0777bff09272bbf666e933e039060c17e4b374ca","ref":"refs/heads/main","pushedAt":"2024-07-25T17:31:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"python3kgae","name":"Xiang Li","path":"/python3kgae","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22380486?s=80&v=4"},"commit":{"message":"[Doc] Release note update for 1.8.2407. (#6821)\n\nAdd note for loop structurizer fixes.\r\nFix the ReleaseNotes.md path.","shortMessageHtmlLink":"[Doc] Release note update for 1.8.2407. (#6821)"}},{"before":"e0fbce714da4746477639d82185ae76f6df4f472","after":"83e4cd4084491e904ec05c66bd8a94d64a74cfbf","ref":"refs/heads/main","pushedAt":"2024-07-25T16:19:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dmpots","name":"David Peixotto","path":"/dmpots","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/244998?s=80&v=4"},"commit":{"message":"Fix crash in constant initializer lowering for global variable. (#6820)\n\nIn #6814, we modified the compiler to avoid generating bad code in some\r\ncases for array initializers. However, this caused a crash in the case\r\nwhere the initializer does not use a GEP expression for addressing\r\nbecause the `GV` will be null.\r\n\r\nI considered setting `GV` to the value in the `store` pointer operand,\r\nbut it looked like `GV` was also checked elsewhere for null and did not\r\nwant to modify the behavior of the code in other places.\r\n\r\nThe fix is to check if we found a global variable before validating the\r\narray case.","shortMessageHtmlLink":"Fix crash in constant initializer lowering for global variable. (#6820)"}},{"before":"4a5253d0035538faca2c2e7ed27457fc0df4ab77","after":"e0fbce714da4746477639d82185ae76f6df4f472","ref":"refs/heads/main","pushedAt":"2024-07-24T09:13:00.000Z","pushType":"pr_merge","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":"[SPIRV] Generate DebugTypeMatrix (#6757)\n\nWhen the OpenCL.DebugInfo.100 debug info was implemented, there was no\r\nDebugTypeMatrix. Now that NonSemantic.Shader.DebugInfo.100 has been\r\nmerged, we should use DebugTypeMatrix. This PR corrects that oversight.","shortMessageHtmlLink":"[SPIRV] Generate DebugTypeMatrix (#6757)"}},{"before":"4a3a5dad437cc2f2400cdbdf1ccc9aaadffef0e2","after":"4a5253d0035538faca2c2e7ed27457fc0df4ab77","ref":"refs/heads/main","pushedAt":"2024-07-23T20:46:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"amaiorano","name":"Antonio Maiorano","path":"/amaiorano","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/6893883?s=80&v=4"},"commit":{"message":"Fix assertion when compiling array of struct init (#6814)\n\nIn CGHLSLMSFinishCodeGen's BuildImmInit, when initializing an array, if\r\nthe init value type doesn't match the array element type, we must bail\r\nand instead, have it inject a call to the global ctor. Without this,\r\nbuilds with asserts enabled would assert later with \"Wrong type in array\r\nelement initializer\". In non-assert builds, this invalid IR would be\r\nremoved, and valid code emitted.\r\n\r\nSee https://github.com/microsoft/DirectXShaderCompiler/issues/5294","shortMessageHtmlLink":"Fix assertion when compiling array of struct init (#6814)"}},{"before":"136bc0ca572a2ff541c1284669b1824e4e6dd68b","after":"af9a0ba8a5ccc1b147c9b4d51402d7a72f58ad17","ref":"refs/heads/release-1.8.2407","pushedAt":"2024-07-22T19:24:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"python3kgae","name":"Xiang Li","path":"/python3kgae","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22380486?s=80&v=4"},"commit":{"message":"Fix CB vector to scalar array translation generating invalid IR (#6777) (#6800)\n\nIn the special code to handle the memcpy pattern where a constant buffer\r\ncontains a vector array that initializes a local (or static global)\r\nscalar array for use by the shader, an invalid assumption was made that\r\nif the memcpy dest was global, that the src is global as well.\r\n\r\nThis was not the case, and when expecting to generate constant\r\nexpressions to index the src, these generated orphaned instructions\r\ninstead, leading to invalid IR.\r\n\r\nThis fixes the issue by leveraging ReplaceConstantWithInst, and setting\r\nthe insertion point for the Builder. Now, replacement *could* fail, if\r\nsrc instructions don't dominate replacement uses, so bool for replaced\r\nall is returned from replaceScalarArrayWithVectorArray.\r\n\r\nAnother issue was that it would replace the dest for the original memcpy\r\nwith src along the way. Now, if we don't replace all uses, this turns\r\nthe memcpy into a no-op and any remaining uses are no longer coming from\r\nsrc, but an undef dest instead. This was also fixed to skip this\r\nreplacement, then clean up this use if all other uses have been\r\nsuccessfully replaced.\r\n\r\nFixes #6510\r\n\r\n(cherry picked from commit 5cfefc7d0b2d4d5af93d5668dcd5c11a003ac666)\r\n\r\nCo-authored-by: Tex Riddell ","shortMessageHtmlLink":"Fix CB vector to scalar array translation generating invalid IR (#6777)…"}},{"before":"3508cdc01a2a738344e46281e85449dc236e530d","after":"4a3a5dad437cc2f2400cdbdf1ccc9aaadffef0e2","ref":"refs/heads/main","pushedAt":"2024-07-22T16:08:13.000Z","pushType":"pr_merge","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":"[SPIR-V] Add support for D3D12 descriptor heaps (#6650)\n\nThis commit adds support for Sampler/Resource descriptor heaps in DXC.\r\nSupport for those heaps on the SPIR-V side requires no other extension\r\nthan SPV_EXT_descriptor_indexing.\r\nOn the Vulkan side, the VK_EXT_mutable_descriptor_type will be required\r\nas multiple descriptor types must be allowed on the same binding.\r\n\r\nWhen loading a type from a heap, DXC generates a new OpRuntimeArray of\r\nthe correct type, and binds it to `set=0,\r\nbinding=`.\r\nThis means multiple OpRuntimeArrays will share the same binding. This is\r\nwhy VK_EXT_mutable_descriptor_type is required.\r\n\r\nThis implementation uses at most 3 bindings:\r\n - N OpRuntimeArray as binding A for the ResourceDescriptorHeap\r\n - N OpRuntimeArray as binding B for the SamplerDescriptorHeap\r\n- 1 OpRuntimeArray %counter_type for the ResourceDescriptorHeap\r\ncounters.\r\n\r\nThe bindings are only allocated if used. If only the\r\nSamplerDescriptorHeap is used, a single binding is required.\r\n\r\nThe binding allocation logic is:\r\n 1. allocate bindings for every resources, excluding heaps.\r\n2. If ResourceDescriptorHeap is used, find the first unused binding in\r\nset=0 and use it.\r\n 3. Same for the SamplerDescriptorHeap\r\n 4. Same for the counters.\r\n\r\nUAV counters are not always created, only if used.\r\nWhen used, they are stored in an OpRuntimeArray. The index of a counter\r\nin that array\r\nis equal to the index of the associated resource in its own\r\nOpRuntimeArray.\r\n\r\n```hlsl\r\n RWStructuredBuffer a = ResourceDescriptorHeap[2];\r\n a.IncrementCounter();\r\n // buffer in descriptorSet 0, binding 0, OpRuntimeArray[index=2]\r\n // counter in descriptorSet 0, binding 1, OpRuntimeArray[index=2]\r\n```\r\n\r\nAs-is, this PR doesn't allow resource heaps to alias regular resources,\r\nor to overlap.\r\nA follow-up PR will add 3 flags to override each binding/set pairs:\r\n - 'fvk-bind-resource-heap '\r\n - 'fvk-bind-sampler-heap '\r\n - 'fvk-bind-counter-heap '\r\n\r\n---------\r\n\r\nSigned-off-by: Nathan Gauër ","shortMessageHtmlLink":"[SPIR-V] Add support for D3D12 descriptor heaps (#6650)"}},{"before":"e0c83a8cf247a8d6859a99522be4ca3d0ca2e73a","after":"3508cdc01a2a738344e46281e85449dc236e530d","ref":"refs/heads/main","pushedAt":"2024-07-20T01:25:04.000Z","pushType":"pr_merge","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":"[SPIR-V] Lower templated enums correctly. (#6768)\n\nTemplated enums lowering was not supported. This commit fixes those\ncases.\n\nFixes #6753\n\nSigned-off-by: Nathan Gauër ","shortMessageHtmlLink":"[SPIR-V] Lower templated enums correctly. (#6768)"}},{"before":"4f46fbc1ec7f2dfc59961f32ab6313e11f0aa2b3","after":"e0c83a8cf247a8d6859a99522be4ca3d0ca2e73a","ref":"refs/heads/main","pushedAt":"2024-07-20T01:23:42.000Z","pushType":"pr_merge","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":"[SPIR-V] Fix crash when using entrypoint prototype (#6760)\n\nWhen the prototype of an entrypoint was defined, the codegen crashed\nbecause it failed to filter this partial declaration when adding\nfunctions to the work-queue.\n\nFixes #6750\n\nSigned-off-by: Nathan Gauër ","shortMessageHtmlLink":"[SPIR-V] Fix crash when using entrypoint prototype (#6760)"}},{"before":"84c0a095576c63d8103ffffc56bb165b3cf9ddf3","after":"4f46fbc1ec7f2dfc59961f32ab6313e11f0aa2b3","ref":"refs/heads/main","pushedAt":"2024-07-19T23:35:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"llvm-beanz","name":"Chris B","path":"/llvm-beanz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/15788759?s=80&v=4"},"commit":{"message":"[Action] Use pull_request_target (#6803)\n\nWe should use the pull_request_target option here so that the PR runs\r\nfrom the pipeline in the target rather than the PR source branch. This\r\nallows the action to run with reduced security implications.","shortMessageHtmlLink":"[Action] Use pull_request_target (#6803)"}},{"before":"c4e9976904d3b275ee0738eac20ae4f25f0a1a2f","after":"84c0a095576c63d8103ffffc56bb165b3cf9ddf3","ref":"refs/heads/main","pushedAt":"2024-07-19T21:02:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gracezhang72","name":null,"path":"/gracezhang72","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/153316699?s=80&v=4"},"commit":{"message":"Fix debug info offsets for vectors with 16-bit types (#6775)\n\nThis fixes a bug where the offsets for elements in vectors with 16-bit\r\ntypes doesn't take into account alignment bits and PIX wouldn't display\r\nvector element values correctly in the shader debugger. Eg. if\r\n`-enable-16bit-types` wasn't set, the offsets for a min16float4 would be\r\n0, 16, 32, 48 instead of 0, 32, 64, 96.\r\n\r\nAlso removed the assert in PopulateAllocaMap_StructType that was\r\nchecking whether the calculated aligned offset matches the packed offset\r\n(from SortedMembers) because it was false for members with sizes smaller\r\nthan the alignment size.","shortMessageHtmlLink":"Fix debug info offsets for vectors with 16-bit types (#6775)"}},{"before":"5cb6faaf1b283f5c68ee667c3b087abdb768f94c","after":"c4e9976904d3b275ee0738eac20ae4f25f0a1a2f","ref":"refs/heads/main","pushedAt":"2024-07-19T20:37:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pow2clk","name":"Greg Roth","path":"/pow2clk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/38554235?s=80&v=4"},"commit":{"message":"Add upcoming release section to release notes (#6802)\n\nThis is the section where the next release notes will be inserted. It's\r\njust a placeholder instruction for now.\r\n\r\nFixes #6697","shortMessageHtmlLink":"Add upcoming release section to release notes (#6802)"}},{"before":"c01b4f4c96bea2dfe43cc0a3288826e838c98f90","after":"5cb6faaf1b283f5c68ee667c3b087abdb768f94c","ref":"refs/heads/main","pushedAt":"2024-07-19T18:59:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"damyanp","name":"Damyan Pepper","path":"/damyanp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/8118402?s=80&v=4"},"commit":{"message":"[NFC] Fix incorrect use of UNREFERENCED_PARAMETER macro (#6806)\n\nIn CalcResTypeSize function, UNREFERENCED_PARAMETER macro is used with a\r\nparameter which is referenced in return statement. That macro was added\r\nin\r\n 6ee4074a4b43fa23bf5ad27e4f6cafc6b835e437 but it was not removed when\r\n\"DxilModule &M\" was referenced in\r\n86073a3b0b45fe41b8ffe6c8a33c9b7c913e6b8c\r\n \r\nThis fixes the following compiler error with clang 18.1.8 with mingw-w64\r\ntoolchain.\r\n \r\nDxilContainerReflection.cpp:1512:3: error: object of type 'DxilModule'\r\ncannot be assigned because its copy assignment operator is implicitly\r\ndeleted\r\n 1512 | UNREFERENCED_PARAMETER(M);\r\n | ^\r\n winnt.h:1387:40: note: expanded from macro 'UNREFERENCED_PARAMETER'\r\n 1387 | #define UNREFERENCED_PARAMETER(P) {(P) = (P);}\r\n | ^","shortMessageHtmlLink":"[NFC] Fix incorrect use of UNREFERENCED_PARAMETER macro (#6806)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEkDkq1gA","startCursor":null,"endCursor":null}},"title":"Activity · microsoft/DirectXShaderCompiler"}