On Wed, 11 Feb 2026 11:36:45 GMT, Ambarish Rapte <[email protected]> wrote:

> On a given platform, the build generates prism and decora shader files for 
> all platforms. 
> Ideally it should generate only the platform specific shader files.
> 
> Fix:
> Generate only platform specific hardware shaders.
> sw pipeline shaders must be generated for all platforms.
> 
> But the hardware shaders, should be as:
> 1. Mac platform : metal and es2 shaders
> 2. Win platform: d3d shaders and if IS_INCLUDE_ES2 is true then es2 shaders 
> as well
> 3. Linux : only es2 shaders
> 
> Verification:
> Verified that the shaders are generated as expected. 
> headul tests pass, apps launch correctly.

On Linux I noticed there is still a remnant "hlsl" directory created by Gradle:


lk@lk-VirtualBox ~/d/c/jfx-review (opt-shader-creation)> tree 
modules/javafx.graphics/build/hlsl                                              
                                                                                
                                    15:34:16
modules/javafx.graphics/build/hlsl
├── Decora
└── Prism

3 directories, 0 files


This is _after_ I used `gradle clean; git clean -xdf` and then rebuilt the 
project on clean repo.

I think the main culprit for it is the `initShaderDirs` task which was hiding 
in `build.gradle` at line 2783:

task initShaderDirs() {
        doLast {
            // Create empty hlsl dirs on all platforms for IDE support
            file("$project.buildDir/hlsl/Decora").mkdirs()
            file("$project.buildDir/hlsl/Prism").mkdirs()
            file("$project.buildDir/gensrc/jsl-prism").mkdirs()
            file("$project.buildDir/gensrc/jsl-decora").mkdirs()
        }
    }


The directories are empty (as they should be) but since we're cleaning up I 
think it would be worth to also tackle these.

-------------

PR Review: https://git.openjdk.org/jfx/pull/2071#pullrequestreview-3797690992

Reply via email to