JEP 265: Marlin Graphics RendererJEP 265: Marlin Graphics RendererOwnerLaurent BourgèsTypeFeatureScopeJDKStatusClosed / DeliveredRelease9Componentclient-libs / 2dDiscussiongraphics dash rasterizer dash dev at openjdk dot java dot netEffortSDurationSReviewed byJim Graham, Philip Race, Victor DyakovEndorsed byKevin RushforthCreated2015/07/17 12:30Updated2017/02/27 20:29Issue8131760Summary
Update Java 2D to use the Marlin Renderer as the default graphics
rasterizer.
Success Metrics
The Marlin Renderer must consistently perform at least as well as Pisces,
the current graphics rasterizer, with equal or better quality and
accuracy.  It must significantly outperform Pisces on most benchmarks.
It should demonstrate multi-threaded scalability that outperforms Pisces.
The development version is already meeting these goals.  Additional goals
are to equal or outperform the closed-source Ductus rasterizer on
single-threaded performance, and match it in quality and accuracy.
Marlin already has demonstrated better scalability for the MT case than
Ductus.
Motivation
The JDK currently uses a graphics rasterizer called Pisces.  It is used
for anti-aliased rendering (other than fonts), and so its performance is
crucial for many graphics intensive applications, yet its performance is
much poorer than that of the closed-source Ductus rasterizer shipped by
Oracle.  As a result, Marlin is already being used by some applications
as a replacement for Pisces, by placing it on the bootstrap class path.
A higher-performing rasterizer is therefore important for adoption.
Description
The graphics rasterizer is an implementation library used by Java 2D.  It
implements an internal interface for communicating with the AWT and Java
2D subsystems, but does not have any externally visible API for Java
developers.  Marlin is all Java code (thus far) and is a fork of the
Pisces rasterizer.  Although it was separately hosted for a long time it
is now being developed through the continuation of the
OpenJDK graphics-rasterizer project
which was originally focused on Pisces. Marlin is already largely
complete and has been field tested as well as having passed Oracle's
internal testing.  It will be incrementally further developed and then
integrated into the JDK as a replacement for Pisces and, at Oracle's
option, perhaps Ductus as well.
Testing
This does not require any new test development, since there is no API.
However we anticipate developing additional test scenarios for the
existing J2DBench or other test suites to examine MT performance if we
identify gaps there.  Test execution will be the existing functional and
compliance tests as well as existing performance tests such as
J2DBench
The current version of Marlin has already passed all functional,
regression, and compliance (JCK) tests in JDK 9, run by courtesy of the
Oracle SQE group.
InstallingContributingSponsoringDevelopers' GuideVulnerabilitiesJDK GA/EA BuildsMailing listsWiki
                      · IRCBylaws · CensusLegalWorkshopJEP ProcessSource codeMercurialGitHubToolsGitjtreg harnessGroups(overview)AdoptionBuildClient LibrariesCompatibility & Specification ReviewCompilerConformanceCore LibrariesGoverning BoardHotSpotIDE Tooling & SupportInternationalizationJMXMembersNetworkingPortersQualitySecurityServiceabilityVulnerabilityWebProjects(overview,
      archive)AmberBabylonCRaCCaciocavalloClosuresCode ToolsCoinCommon VM InterfaceCompiler GrammarDetroitDevelopers' GuideDevice I/ODukeGalahadGraalIcedTeaJDK 7JDK 8JDK 8 UpdatesJDK 9JDK
      (…,
       21,
       22,
       23)JDK UpdatesJavaDoc.NextJigsawKonaKullaLambdaLanaiLeydenLilliputLocale EnhancementLoomMemory Model UpdateMetropolisMission ControlMulti-Language VMNashornNew I/OOpenJFXPanamaPenrosePort: AArch32Port: AArch64Port: BSDPort: HaikuPort: Mac OS XPort: MIPSPort: MobilePort: PowerPC/AIXPort: RISC-VPort: s390xPortolaSCTPShenandoahSkaraSumatraTiered AttributionTsanType AnnotationsValhallaVeronaVisualVMWakefieldZeroZGC

        © 2024 Oracle Corporation and/or its affiliates
        Terms of Use
        ·
        
            License: GPLv2
        · Privacy
        · Trademarks
