Re: RFR: 8196079: Remove obsolete Pisces rasterizer
On Sat, 18 Jul 2020 14:57:08 GMT, Kevin Rushforth wrote: > This removes the obsolete OpenPiscesRasterizer (Java-based) and > NativePiscesRasterizer implementations. The Marlin > rasterizer was added in FX 9 and was made the default in FX 10. Marlin both > outperforms Pisces and is more robust. > There is no reason to keep the Pisces rasterizer(s) any more. Note that the > SW pipeline still has a Pisces-based > renderer for the actual rendering of primitives. This is separate from the > rasterizer and is not affected by this > proposed fix. I have tested this on Mac, Windows, and Linux. Loiks good to me. - Marked as reviewed by lbourges (Reviewer). PR: https://git.openjdk.java.net/jfx/pull/268
Re: RFR: 8196079: Remove obsolete Pisces rasterizer
On Sun, 19 Jul 2020 09:35:15 GMT, Laurent Bourgès wrote: >> I think you are conflating the rasterization step with the rendering step. >> In Prism the rasterization mainly includes >> clipping the shape and generating the mask data for the filled and/or >> stroked shape (the latter possibly being a wide >> and/or dashed stroke). The rasterized shape is then sent to the Prism >> GraphicsPipeline for drawing into the render >> target. This latter step is either done using shaders + D3D or OpenGL, or >> via the SW pipeline (or the J2D pipeline for >> printing). In the case of the SW pipeline, the renderer is based on code >> that was originally derived from Pisces, but >> it is distinct from the rasterization step that OpenPisces used to perform >> and Marlin now does perform. Take a look at >> the [SW >> pipeline](https://github.com/openjdk/jfx/tree/master/modules/javafx.graphics/src/main/java/com/sun/prism/sw) >> classes, the [Java >> PiscesRendering](https://github.com/openjdk/jfx/tree/master/modules/javafx.graphics/src/main/java/com/sun/pisces) >> classes, and the >> [prism-sw](https://github.com/openjdk/jfx/tree/master/modules/javafx.graphics/src/main/native-prism-sw) >> native code. > > @kevinrushforth I asked skara JBS to associate my github account with my > openjdk role... > I will approve your PR once I have proper credentials. > > Good job, 10k LOC removed. > > I wonder if I should also deprecate the Float-precision Marlin renderer to > remove 10k lines too. > The Double-precision Marlin renderer was enabled as the default renderer > since JDK10, so it is doing the job properly, > no reason to have 2 variants anymore and it will ease the maintenance. > Laurent That's a good question about removing the single-precision float Marlin rasterizer. For desktop platforms, I see no reason to keep it. Perhaps Johan could weigh in as to whether their might be value in keeping it for some embedded platforms. - PR: https://git.openjdk.java.net/jfx/pull/268
Re: RFR: 8196079: Remove obsolete Pisces rasterizer
On Sat, 18 Jul 2020 22:07:59 GMT, Kevin Rushforth wrote: >> That's the case, michael. >> In SWContext, the Marlin renderer is called to rasterize any shape. >> >> See >> https://github.com/openjdk/jfx/pull/268/files#diff-28f93b00dc9cba7197f0a6c2fef022ed > > I think you are conflating the rasterization step with the rendering step. In > Prism the rasterization mainly includes > clipping the shape and generating the mask data for the filled and/or stroked > shape (the latter possibly being a wide > and/or dashed stroke). The rasterized shape is then sent to the Prism > GraphicsPipeline for drawing into the render > target. This latter step is either done using shaders + D3D or OpenGL, or via > the SW pipeline (or the J2D pipeline for > printing). In the case of the SW pipeline, the renderer is based on code that > was originally derived from Pisces, but > it is distinct from the rasterization step that OpenPisces used to perform > and Marlin now does perform. Take a look at > the [SW > pipeline](https://github.com/openjdk/jfx/tree/master/modules/javafx.graphics/src/main/java/com/sun/prism/sw) > classes, the [Java > PiscesRendering](https://github.com/openjdk/jfx/tree/master/modules/javafx.graphics/src/main/java/com/sun/pisces) > classes, and the > [prism-sw](https://github.com/openjdk/jfx/tree/master/modules/javafx.graphics/src/main/native-prism-sw) > native code. @kevinrushforth I asked skara JBS to associate my github account with my openjdk role... I will approve your PR once I have proper credentials. Good job, 10k LOC removed. I wonder if I should also deprecate the Float-precision Marlin renderer to remove 10k lines too. The Double-precision Marlin renderer was enabled as the default renderer since JDK10, so it is doing the job properly, no reason to have 2 variants anymore and it will ease the maintenance. Laurent - PR: https://git.openjdk.java.net/jfx/pull/268
Re: RFR: 8196079: Remove obsolete Pisces rasterizer
On Sat, 18 Jul 2020 16:11:38 GMT, Phil Race wrote: >> This removes the obsolete OpenPiscesRasterizer (Java-based) and >> NativePiscesRasterizer implementations. The Marlin >> rasterizer was added in FX 9 and was made the default in FX 10. Marlin both >> outperforms Pisces and is more robust. >> There is no reason to keep the Pisces rasterizer(s) any more. Note that the >> SW pipeline still has a Pisces-based >> renderer for the actual rendering of primitives. This is separate from the >> rasterizer and is not affected by this >> proposed fix. I have tested this on Mac, Windows, and Linux. > > Marked as reviewed by prr (Reviewer). That's the case, michael. In SWContext, the Marlin renderer is called to rasterize any shape. See https://github.com/openjdk/jfx/pull/268/files#diff-28f93b00dc9cba7197f0a6c2fef022ed - PR: https://git.openjdk.java.net/jfx/pull/268
Re: RFR: 8196079: Remove obsolete Pisces rasterizer
On Sat, 18 Jul 2020 16:11:38 GMT, Phil Race wrote: >> This removes the obsolete OpenPiscesRasterizer (Java-based) and >> NativePiscesRasterizer implementations. The Marlin >> rasterizer was added in FX 9 and was made the default in FX 10. Marlin both >> outperforms Pisces and is more robust. >> There is no reason to keep the Pisces rasterizer(s) any more. Note that the >> SW pipeline still has a Pisces-based >> renderer for the actual rendering of primitives. This is separate from the >> rasterizer and is not affected by this >> proposed fix. I have tested this on Mac, Windows, and Linux. > > Marked as reviewed by prr (Reviewer). I think you are conflating the rasterization step with the rendering step. In Prism the rasterization mainly includes clipping the shape and generating the mask data for the filled and/or stroked shape (the latter possibly being a wide and/or dashed stroke). The rasterized shape is then sent to the Prism GraphicsPipeline for drawing into the render target. This latter step is either done using shaders + D3D or OpenGL, or via the SW pipeline (or the J2D pipeline for printing). In the case of the SW pipeline, the renderer is based on code that was originally derived from Pisces, but it is distinct from the rasterization step that OpenPisces used to perform and Marlin now does perform. Take a look at the [SW pipeline](https://github.com/openjdk/jfx/tree/master/modules/javafx.graphics/src/main/java/com/sun/prism/sw) classes, the [Java PiscesRendering](https://github.com/openjdk/jfx/tree/master/modules/javafx.graphics/src/main/java/com/sun/pisces) classes, and the [prism-sw](https://github.com/openjdk/jfx/tree/master/modules/javafx.graphics/src/main/native-prism-sw) native code. - PR: https://git.openjdk.java.net/jfx/pull/268
Re: RFR: 8196079: Remove obsolete Pisces rasterizer
Am 18.07.20 um 17:57 schrieb Kevin Rushforth: On 7/18/2020 8:50 AM, Michael Paus wrote: Am 18.07.20 um 17:10 schrieb Kevin Rushforth: Note that the SW pipeline still has a Pisces-based renderer for the actual rendering of primitives. This is separate from the rasterizer and is not affected by this proposed fix. Just out of curiosity - why is this still needed? Wouldn't it be nice to remove Pisces completely? We still fall back to the SW pipeline for a few cases, such as virtual environments without HW graphics support (Windows Remote Desktop, VMWare, VirtualBox), systems with insufficient graphics HW or drivers (mainly on Linux, but also on some Windows servers). I think you misunderstood my question. Of course I know that JavaFX has a SW pipeline which is used under certain conditions. My question was why this SW pipeline still uses Pisces. The Marlin renderer has replaced Pisces in all other areas, as far as I know. Why not also in the SW pipeline. In how far are the requirements of the SW pipeline different from the ones in AWT for example? Michael
Re: RFR: 8196079: Remove obsolete Pisces rasterizer
On Sat, 18 Jul 2020 14:57:08 GMT, Kevin Rushforth wrote: > This removes the obsolete OpenPiscesRasterizer (Java-based) and > NativePiscesRasterizer implementations. The Marlin > rasterizer was added in FX 9 and was made the default in FX 10. Marlin both > outperforms Pisces and is more robust. > There is no reason to keep the Pisces rasterizer(s) any more. Note that the > SW pipeline still has a Pisces-based > renderer for the actual rendering of primitives. This is separate from the > rasterizer and is not affected by this > proposed fix. I have tested this on Mac, Windows, and Linux. Marked as reviewed by prr (Reviewer). - PR: https://git.openjdk.java.net/jfx/pull/268
Re: RFR: 8196079: Remove obsolete Pisces rasterizer
On 7/18/2020 8:50 AM, Michael Paus wrote: Am 18.07.20 um 17:10 schrieb Kevin Rushforth: Note that the SW pipeline still has a Pisces-based renderer for the actual rendering of primitives. This is separate from the rasterizer and is not affected by this proposed fix. Just out of curiosity - why is this still needed? Wouldn't it be nice to remove Pisces completely? We still fall back to the SW pipeline for a few cases, such as virtual environments without HW graphics support (Windows Remote Desktop, VMWare, VirtualBox), systems with insufficient graphics HW or drivers (mainly on Linux, but also on some Windows servers). -- Kevin
Re: RFR: 8196079: Remove obsolete Pisces rasterizer
Am 18.07.20 um 17:10 schrieb Kevin Rushforth: Note that the SW pipeline still has a Pisces-based renderer for the actual rendering of primitives. This is separate from the rasterizer and is not affected by this proposed fix. Just out of curiosity - why is this still needed? Wouldn't it be nice to remove Pisces completely? Michael