On Fri, 3 Jan 2020 23:02:56 GMT, Nir Lisker <nlis...@openjdk.org> wrote:

>>> I still need to test your sample app on Mac.
>> 
>> I get the error with your sample app. It fails on Mac or Linux (Ubuntu 
>> 16.04) with the same error as I reported above.
> 
> The error was for the cases of 2 and 3 lights (I was testing 1) and should be 
> fixed now. My fault with copy-paste... that's why we use loops, but I guess 
> this is some optimization for the es2 pipeline. I wonder if it's really worth 
> it over a single shader looping over the number of lights like d3d does.

> This will need a fair bit of testing to ensure that there are no regressions 
> either in functionality or (especially) performance, in addition to tests for 
> the new functionality.

Which tests for the new functionality should I write? Up to the shader itself 
it's mostly just passing on variables, and the API is standard 
`DoubleProperty`s. I can test the dirty bits / redraw logic.

> On the performance aspect, the inner loop of the lighting calculation now has 
> an additional if test for the max range and additional arithmetic 
> calculations for the attenuation. What we will need is a test program that we 
> can run on Mac and Windows to measure the performance of rendering in a 
> fill-rate-limited case. Ideally, we would not pay much of a performance hit 
> in the default case where `ca == 1, la == 0, qa == 0`, but we first need to 
> be able to measure the drop in performance before we can say whether it is 
> acceptable.

Can you point me to a similar performance test? I didn't see a way to easily 
measure FPS.
I don't know how to avoid the `if` test for the `maxRange`, I'm open to 
suggestions. The only thing I can think of is if `maxRange` is infinite (the 
default), we will swap the shader for one that doesn't make that check. 
However, swapping shaders also costs performance.

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

PR: https://git.openjdk.java.net/jfx/pull/43

Reply via email to