Clang enables -Wenum-conversion by default anyway, we add it to CFLAGS to enable them on GCC.
When explicitly enabled, Clang also enables additional warnings. Some of those warnings, like
-Wenum-enum-conversion, are too strict to be practical with win32, so avoid enabling them.
Fixes warnings with LLVM git.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5275
--
v2: win32u: Enumerate monitors from their device keys.
win32u: Get rid of the monitor flags.
win32u: Get rid of the adapter display_device.
win32u: Get rid of the monitor state_flags.
win32u: Get rid of the monitor display_device.
win32u: Split writing monitor to registry to a separate helper.
win32u: Add an adapter struct to the device manager context.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5262
On Mon Mar 11 06:06:25 2024 +0000, Giovanni Mascellani wrote:
> Test `test_hull_shader_punned_array()` currently emits this validation error:
> ```
> VUID-RuntimeSpirv-OpEntryPoint-08743(ERROR / SPEC): msgNum: -1986897773
> - Validation Error: [ VUID-RuntimeSpirv-OpEntryPoint-08743 ] Object 0:
> handle = 0x270000000027, type = VK_OBJECT_TYPE_SHADER_MODULE; Object 1:
> handle = 0x280000000028, type = VK_OBJECT_TYPE_SHADER_MODULE; |
> MessageID = 0x89925893 | vkCreateGraphicsPipelines(): pCreateInfos[0]
> (SPIR-V Interface) VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT declared
> input at Location 2 Component 3 but it is not an Output declared in
> VK_SHADER_STAGE_VERTEX_BIT. The Vulkan spec states: Any user-defined
> variables shared between the OpEntryPoint of two shader stages, and
> declared with Input as its Storage Class for the subsequent shader
> stage, must have all Location slots and Component words declared in the
> preceding shader stage's OpEntryPoint with Output as the Storage Class (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.ht…)
> ```
> It might or might not be related to this MR, I haven't debugged yet.
I see no validation failure on my machine, but I do see the issue. The VS declares `o2.xyz` and the HS accesses it as part of a punned array of four rows of `.xyzw`. There's no way to tell the requirement in the VS, and we can't handle the array access in the HS without declaring row 2 as `.xyzw`.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/537#note_64172