Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8248985 | 8u271 | Kevin Rushforth | P3 | Resolved | Fixed | b01 |
JDK-8252337 | jfx11.0.9 | Michael Paus | P3 | Resolved | Fixed |
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
succeeded.
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.
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
succeeded.
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.
- backported by
-
JDK-8248985 No 3D support for newer Intel graphics drivers on Linux
- Resolved
-
JDK-8252337 No 3D support for newer Intel graphics drivers on Linux
- Resolved
- relates to
-
JDK-8276172 ES2 pipeline errors with Nvidia OpenGL
- Closed