Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8263247

Intermittent Metal API Validation error in setFragmentTexture when switching graphics devices

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: P3 P3
    • 17
    • 17
    • client-libs
    • 2d

      I get the following assertion failure very infrequently when switching between the integrated graphics card and the discrete graphics card on a 16" MacBook Pro:

      export METAL_DEVICE_WRAPPER_TYPE=1
      export MTL_SHADER_VALIDATION=1
      export J2D_TRACE_LEVEL=5

      export JAVA_HOME=/Users/kcr/dev/java/lanai-clean/build/macosx-x64/images/jdk
      export PATH=$JAVA_HOME/bin:$PATH
      java -version
      java version "17-internal" 2021-09-14 LTS
      Java(TM) SE Runtime Environment (build 17-internal+0-LTS-2021-03-09-1228537.kcr...)
      Java HotSpot(TM) 64-Bit Server VM (build 17-internal+0-LTS-2021-03-09-1228537.kcr..., mixed mode, sharing)
      _JAVA_OPTIONS="-Dsun.java2d.metal=True" "/Applications/NetBeans/Apache NetBeans 12.0.app/Contents/Resources/NetBeans/netbeans/bin/netbeans" --jdkhome $JAVA_HOME
      Picked up _JAVA_OPTIONS: -Dsun.java2d.metal=True
      2021-03-09 05:09:57.189 java[13130:816467] Metal API Validation Enabled
      2021-03-09 05:09:57.395 system_profiler[13132:816541] Metal API Validation Enabled
      [I] MTLGraphicsConfig_isMetalFrameworkAvailable : 1
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 2077748985
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 69734662
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 724848347
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 2077748985
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 69734662
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 2077748985
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 69734662
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 2077748985
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 69734662
      [E] MTLSD_InitMTLWindow: view is invalid
      [E] MTLContext_SetSurfaces: could not init MTL window
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 2077748985
      [I] MTLGraphicsConfigUtil_tryLoadMTLLibrary
      [I] MTLGraphicsConfig_getMTLConfigInfo
      Metal pipeline enabled on screen 69734662
      [E] MTLSD_InitMTLWindow: view is invalid
      [E] MTLContext_SetSurfaces: could not init MTL window
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLSD_InitMTLWindow: view is invalid
      [E] MTLContext_SetSurfaces: could not init MTL window
      [E] MTLSD_InitMTLWindow: view is invalid
      [E] MTLContext_SetSurfaces: could not init MTL window
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillParallelogram: current dest is null
      [E] MTLRenderer_FillSpans: dest is null
      [E] MTLSD_InitMTLWindow: view is invalid
      [E] MTLContext_SetSurfaces: could not init MTL window
      [E] MTLSD_InitMTLWindow: view is invalid
      [E] MTLContext_SetSurfaces: could not init MTL window
      [E] MTLRenderer_FillSpans: dest is null
      [E] MTLSD_InitMTLWindow: view is invalid
      [E] MTLContext_SetSurfaces: could not init MTL window
      [E] MTLRenderer_FillParallelogram: current dest is null
      -[MTLDebugRenderCommandEncoder setFragmentTexture:atIndex:]:1774: failed assertion `texture is associated with a different device'
      13130 Abort trap: 6

      This is with a local build of the latest lanai repo as of right now, including the most recent fix for JDK-8262882 (I note that it happens with earlier builds as well, so is not a regression).

            aghaisas Ajit Ghaisas
            kcr Kevin Rushforth
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: