Commit 008aec0
[VK] Fix EnabledDeviceExtensions redefinition and silent extension drop
Two local variables both named `EnabledDeviceExtensions` were declared in
the same enclosing scope of `VulkanDevice::create`: one added by #1177
(mesh shader) and one added inside
`#ifdef VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME` by #1195
(InterlockedOr). Any platform whose Vulkan SDK defines that macro rejects
the file. CI surfaced it first on the macOS runner (Vulkan 1.4.335 +
clang) because that job ran ahead of the Windows jobs and short-circuited
the matrix, but Windows is equally affected: Windows VK CI uses Vulkan
SDK 1.4.350.0, and a local Windows + MSVC + Vulkan SDK 1.4.341.1 build
reproduces the failure as `error C2371: 'EnabledDeviceExtensions':
redefinition`.
Beyond the build break, the inner block also overwrote
`DeviceInfo.enabledExtensionCount` and `ppEnabledExtensionNames` that the
mesh-shader block had populated, silently dropping `VK_EXT_mesh_shader`
whenever both extensions were available. Neither bug existed in either
PR in isolation; both are post-merge artifacts.
Append the AtomicInt64 extension to the single `EnabledDeviceExtensions`
vector and assign the `DeviceInfo` extension fields once, after both
blocks.
Assisted-by: Claude Opus 4.7 (claude-opus-4.7-high)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>1 parent a2e657a commit 008aec0
1 file changed
Lines changed: 6 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1315 | 1315 | | |
1316 | 1316 | | |
1317 | 1317 | | |
1318 | | - | |
1319 | | - | |
1320 | | - | |
1321 | | - | |
1322 | | - | |
1323 | | - | |
1324 | 1318 | | |
1325 | | - | |
1326 | 1319 | | |
1327 | 1320 | | |
1328 | 1321 | | |
1329 | 1322 | | |
1330 | | - | |
1331 | | - | |
1332 | 1323 | | |
1333 | 1324 | | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
1334 | 1331 | | |
1335 | 1332 | | |
1336 | 1333 | | |
| |||
0 commit comments