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

No 3D support for newer Intel graphics drivers on Linux



    • Bug
    • Resolution: Fixed
    • P3
    • jfx15
    • jfx11, 8, jfx14
    • javafx
    • None
    • Intel NUC with Ubuntu 20.04 LS.

    • x86
    • linux_ubuntu



        I recently bought a new Intel NUC in order to be able to run Linux for building JavaFX apps.

        When I run the application it tells me that the conditional feature 3D is not supported. However, if I run it with forceGPU true, it seems to work perfectly. The output of prism verbose is the following:

        Prism pipeline init order: es2 sw
        Using Double Precision Marlin Rasterizer
        Using dirty region optimizations
        Not using texture mask for primitives
        Not forcing power of 2 sizes for textures
        Using hardware CLAMP_TO_ZERO mode
        Opting in for HiDPI pixel scaling
        Prism pipeline name = com.sun.prism.es2.ES2Pipeline
        Loading ES2 native library ... prism_es2
        GLFactory using com.sun.prism.es2.X11GLFactory
        (X) Got class = class com.sun.prism.es2.ES2Pipeline
        Initialized prism pipeline: com.sun.prism.es2.ES2Pipeline
        Maximum supported texture size: 16384
        Maximum texture size clamped to 4096
        Non power of two texture support = true
        Maximum number of vertex attributes = 16
        Maximum number of uniform vertex components = 16384
        Maximum number of uniform fragment components = 16384
        Maximum number of varying components = 128
        Maximum number of texture units usable in a vertex shader = 32
        Maximum number of texture units usable in a fragment shader = 32
        Graphics Vendor: Intel
               Renderer: Mesa Intel(R) UHD Graphics (CML GT2)
                Version: 4.6 (Compatibility Profile) Mesa 20.0.4
         vsync: true vpipe: true
        ES2ResourceFactory: Prism - createStockShader: FillPgram_Color.frag
        ES2ResourceFactory: Prism - createStockShader: Solid_TextureFirstPassLCD.frag
        ES2ResourceFactory: Prism - createStockShader: Solid_TextureSecondPassLCD.frag
        ES2ResourceFactory: Prism - createStockShader: Solid_TextureRGB.frag
        new alphas with length = 4096
        ES2ResourceFactory: Prism - createStockShader: Texture_Color.frag
        new alphas with length = 8192
        ES2ResourceFactory: Prism - createStockShader: FillPgram_LinearGradient_PAD.frag
        ES2ResourceFactory: Prism - createStockShader: Mask_TextureSuper.frag
        PPSRenderer: scenario.effect - createShader: LinearConvolveShadow_4
        ES2ResourceFactory: Prism - createStockShader: DrawPgram_Color.frag
        ES2ResourceFactory: Prism - createStockShader: Texture_LinearGradient_PAD.frag
        PPSRenderer: scenario.effect - createShader: LinearConvolveShadow_20
        new alphas with length = 212992

        The reason is that the vendor id changed from "Intel Open Source Technology Center" to just "Intel". So it would just be necessary to add "Intel" to the list of supported graphics vendors in the X11GLFactory class in order to get back the 3D support.


          Issue Links



                mpaus Michael Paus
                mpaus Michael Paus
                0 Vote for this issue
                3 Start watching this issue