diff mbox series

[meta-oe,master] vulkan-cts: add workaround for createMeshShaderMiscTestsEXT

Message ID 20240618005203.2022725-1-rs@ti.com
State Accepted
Headers show
Series [meta-oe,master] vulkan-cts: add workaround for createMeshShaderMiscTestsEXT | expand

Commit Message

Randolph Sapp June 18, 2024, 12:52 a.m. UTC
From: Randolph Sapp <rs@ti.com>

Remove the CXX flag "-O2" for GCC 13 and 14. There's a bug with ARM GCC
that breaks the iteration of "types" in the createMeshShaderMiscTestsEXT
function. This issue is not present for clang or x86_64 GCC 14.

It seems that the array is not initialized before the first iteration.
In testing this can result in a random value being used. This can
manifest in LINES type being processed twice, resulting in the following
error:

FATAL ERROR: Failed to initialize dEQP: Test case with non-unique name
'no_lines' added to group 'misc'.

Signed-off-by: Randolph Sapp <rs@ti.com>
---
 meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb | 3 +++
 1 file changed, 3 insertions(+)

Comments

Khem Raj June 18, 2024, 1:41 a.m. UTC | #1
On Mon, Jun 17, 2024 at 5:52 PM <rs@ti.com> wrote:

> From: Randolph Sapp <rs@ti.com>
>
> Remove the CXX flag "-O2" for GCC 13 and 14. There's a bug with ARM GCC
> that breaks the iteration of "types" in the createMeshShaderMiscTestsEXT
> function. This issue is not present for clang or x86_64 GCC 14.
>
> It seems that the array is not initialized before the first iteration.
> In testing this can result in a random value being used. This can
> manifest in LINES type being processed twice, resulting in the following
> error:
>
> FATAL ERROR: Failed to initialize dEQP: Test case with non-unique name
> 'no_lines' added to group 'misc'.
>
> Signed-off-by: Randolph Sapp <rs@ti.com>
> ---
>  meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> index 1008a5fd4..7492fe9aa 100644
> --- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> +++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> @@ -23,6 +23,9 @@ SRC_URI +=
> "file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.pat
>
>  TOOLCHAIN = "gcc"
>
> +# Workaround an optimization bug that breaks createMeshShaderMiscTestsEXT
> +OECMAKE_CXX_FLAGS:remove:toolchain-gcc = "-O2"


Let’s limit it to arm
And gcc using the needed overrides

>
> +
>  S = "${WORKDIR}/git"
>
>  REQUIRED_DISTRO_FEATURES = "vulkan"
> --
> 2.45.1
>
>
Denys Dmytriyenko June 18, 2024, 6:28 p.m. UTC | #2
On Mon, Jun 17, 2024 at 06:41:57PM -0700, Khem Raj wrote:
> On Mon, Jun 17, 2024 at 5:52 PM <rs@ti.com> wrote:
> 
> > From: Randolph Sapp <rs@ti.com>
> >
> > Remove the CXX flag "-O2" for GCC 13 and 14. There's a bug with ARM GCC
> > that breaks the iteration of "types" in the createMeshShaderMiscTestsEXT
> > function. This issue is not present for clang or x86_64 GCC 14.

Is there an upstream bug submitted that tracks it?


> > It seems that the array is not initialized before the first iteration.
> > In testing this can result in a random value being used. This can
> > manifest in LINES type being processed twice, resulting in the following
> > error:
> >
> > FATAL ERROR: Failed to initialize dEQP: Test case with non-unique name
> > 'no_lines' added to group 'misc'.
> >
> > Signed-off-by: Randolph Sapp <rs@ti.com>
> > ---
> >  meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb | 3 +++
> >  1 file changed, 3 insertions(+)
> >
> > diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > index 1008a5fd4..7492fe9aa 100644
> > --- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > +++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > @@ -23,6 +23,9 @@ SRC_URI +=
> > "file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.pat
> >
> >  TOOLCHAIN = "gcc"
> >
> > +# Workaround an optimization bug that breaks createMeshShaderMiscTestsEXT
> > +OECMAKE_CXX_FLAGS:remove:toolchain-gcc = "-O2"
> 
> 
> Let’s limit it to arm
> And gcc using the needed overrides
> 
> >
> > +
> >  S = "${WORKDIR}/git"
> >
> >  REQUIRED_DISTRO_FEATURES = "vulkan"
> > --
> > 2.45.1
> >
> >
Randolph Sapp June 18, 2024, 6:48 p.m. UTC | #3
On Tue Jun 18, 2024 at 1:28 PM CDT, Denys Dmytriyenko wrote:
> On Mon, Jun 17, 2024 at 06:41:57PM -0700, Khem Raj wrote:
> > On Mon, Jun 17, 2024 at 5:52 PM <rs@ti.com> wrote:
> > 
> > > From: Randolph Sapp <rs@ti.com>
> > >
> > > Remove the CXX flag "-O2" for GCC 13 and 14. There's a bug with ARM GCC
> > > that breaks the iteration of "types" in the createMeshShaderMiscTestsEXT
> > > function. This issue is not present for clang or x86_64 GCC 14.
>
> Is there an upstream bug submitted that tracks it?

Not that I know of, at least for GCC. Still trying to track down where that
should go and how to reproduce this in a way people will take it seriously.

About to have a PR in cts with two modifications to that function that also
solve the issue, though. Hoping to get more insight from them.

> > > It seems that the array is not initialized before the first iteration.
> > > In testing this can result in a random value being used. This can
> > > manifest in LINES type being processed twice, resulting in the following
> > > error:
> > >
> > > FATAL ERROR: Failed to initialize dEQP: Test case with non-unique name
> > > 'no_lines' added to group 'misc'.
> > >
> > > Signed-off-by: Randolph Sapp <rs@ti.com>
> > > ---
> > >  meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb | 3 +++
> > >  1 file changed, 3 insertions(+)
> > >
> > > diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > > b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > > index 1008a5fd4..7492fe9aa 100644
> > > --- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > > +++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > > @@ -23,6 +23,9 @@ SRC_URI +=
> > > "file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.pat
> > >
> > >  TOOLCHAIN = "gcc"
> > >
> > > +# Workaround an optimization bug that breaks createMeshShaderMiscTestsEXT
> > > +OECMAKE_CXX_FLAGS:remove:toolchain-gcc = "-O2"
> > 
> > 
> > Let’s limit it to arm
> > And gcc using the needed overrides
> > 
> > >
> > > +
> > >  S = "${WORKDIR}/git"
> > >
> > >  REQUIRED_DISTRO_FEATURES = "vulkan"
> > > --
> > > 2.45.1
> > >
> > >
Randolph Sapp June 19, 2024, 11:32 p.m. UTC | #4
On Tue Jun 18, 2024 at 1:48 PM CDT, Randolph Sapp wrote:
> On Tue Jun 18, 2024 at 1:28 PM CDT, Denys Dmytriyenko wrote:
> > On Mon, Jun 17, 2024 at 06:41:57PM -0700, Khem Raj wrote:
> > > On Mon, Jun 17, 2024 at 5:52 PM <rs@ti.com> wrote:
> > > 
> > > > From: Randolph Sapp <rs@ti.com>
> > > >
> > > > Remove the CXX flag "-O2" for GCC 13 and 14. There's a bug with ARM GCC
> > > > that breaks the iteration of "types" in the createMeshShaderMiscTestsEXT
> > > > function. This issue is not present for clang or x86_64 GCC 14.
> >
> > Is there an upstream bug submitted that tracks it?
>
> Not that I know of, at least for GCC. Still trying to track down where that
> should go and how to reproduce this in a way people will take it seriously.

Narrowing down the optimization flags that cause this while I wait for a GCC
bugzilla account...

> About to have a PR in cts with two modifications to that function that also
> solve the issue, though. Hoping to get more insight from them.

CTS PR open here if anyone wants to comment:
https://gerrit.khronos.org/c/vk-gl-cts/+/14984

> > > > It seems that the array is not initialized before the first iteration.
> > > > In testing this can result in a random value being used. This can
> > > > manifest in LINES type being processed twice, resulting in the following
> > > > error:
> > > >
> > > > FATAL ERROR: Failed to initialize dEQP: Test case with non-unique name
> > > > 'no_lines' added to group 'misc'.
> > > >
> > > > Signed-off-by: Randolph Sapp <rs@ti.com>
> > > > ---
> > > >  meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb | 3 +++
> > > >  1 file changed, 3 insertions(+)
> > > >
> > > > diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > > > b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > > > index 1008a5fd4..7492fe9aa 100644
> > > > --- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > > > +++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
> > > > @@ -23,6 +23,9 @@ SRC_URI +=
> > > > "file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.pat
> > > >
> > > >  TOOLCHAIN = "gcc"
> > > >
> > > > +# Workaround an optimization bug that breaks createMeshShaderMiscTestsEXT
> > > > +OECMAKE_CXX_FLAGS:remove:toolchain-gcc = "-O2"
> > > 
> > > 
> > > Let’s limit it to arm
> > > And gcc using the needed overrides
> > > 
> > > >
> > > > +
> > > >  S = "${WORKDIR}/git"
> > > >
> > > >  REQUIRED_DISTRO_FEATURES = "vulkan"
> > > > --
> > > > 2.45.1
> > > >
> > > >
diff mbox series

Patch

diff --git a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
index 1008a5fd4..7492fe9aa 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
+++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.7.3.bb
@@ -23,6 +23,9 @@  SRC_URI += "file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.pat
 
 TOOLCHAIN = "gcc"
 
+# Workaround an optimization bug that breaks createMeshShaderMiscTestsEXT
+OECMAKE_CXX_FLAGS:remove:toolchain-gcc = "-O2"
+
 S = "${WORKDIR}/git"
 
 REQUIRED_DISTRO_FEATURES = "vulkan"