Skip to content

Benchmarks. Support GPU on Windows#5216

Merged
Igor Demin (igordmn) merged 1 commit into
masterfrom
igor.demin/gpu-support
Jul 2, 2025
Merged

Benchmarks. Support GPU on Windows#5216
Igor Demin (igordmn) merged 1 commit into
masterfrom
igor.demin/gpu-support

Conversation

@igordmn

@igordmn Igor Demin (igordmn) commented Jan 27, 2025

Copy link
Copy Markdown
Collaborator

@@ -1,4 +1,4 @@
compose.version=1.7.1

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We shouldn't merge until we build compose with JetBrains/skiko#1016.

The PR only works with custom Skiko right now:

// in skiko
checkout igor.demin/DirectXOffscreenContext
./gradlew publishToMavenLocal -deploy.version=722.0.0

// in benchmarks in build.gradle
    val desktopMain by getting {  
            dependencies {
                ...
                implementation("org.jetbrains.skiko:skiko:722.0.0-SNAPSHOT")  
                implementation("org.jetbrains.skiko:skiko-awt-runtime-macos-arm64:722.0.0-SNAPSHOT")  

@igordmn Igor Demin (igordmn) Feb 7, 2025

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed.

Though, after migrating to new Compose, we can't no longer test pre 1.8.0+dev2047 version without manually commenting the not-compiling DirectXOffscreenContext/DirectXOffscreenContext.

Is it fine, or should we wait merging?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it is better to make the dependency reflective for now?

However this way, we cannot compare with the old version anyway. I would add an option to choose between null/GPU/software rendering in addition, with backward compatible defaults.

I would probably also wait GPU renderers for non-Windows desktop targets to have common code here.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add an option

Because we need to include/exclude compilation of new classes, we have to use a Gradle property to include/exclude additional sourceset/module. It works, but complicates the build and structure. A simpler solution is to wait merging.

What, if we wait for 1.8.0 Stable? We always could back in time, and checkout v1.8.0 tag for old versions testing.

I would probably also wait GPU renderers for non-Windows desktop targets to have common code here.

Let's discuss again at the 1.8.0’s release. I would prefer merging it even if only Windows supported at that moment, as it seems merging only it doesn't have downsides?

@igordmn Igor Demin (igordmn) changed the title Support GPU on Windows Benchmarks. Support GPU on Windows Jan 27, 2025
Comment thread benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/MeasureComposable.kt Outdated
Comment thread benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/Benchmarks.kt Outdated
Comment thread benchmarks/multiplatform/benchmarks/src/commonMain/kotlin/MeasureComposable.kt Outdated
@igordmn

Copy link
Copy Markdown
Collaborator Author

Nikita Lipsky (@pjBooms), can we merge it now?

@igordmn Igor Demin (igordmn) merged commit 89c3137 into master Jul 2, 2025
2 checks passed
@igordmn Igor Demin (igordmn) deleted the igor.demin/gpu-support branch July 2, 2025 08:41
henryqwe pushed a commit to henryqwe/compose-multiplatform that referenced this pull request Oct 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants