Here I am just printing a trace message on the rare situation where
GL_MAX_CLIP_DISTANCES is less than we need.
The maximum in Direct3D is given by D3D#_CLIP_OR_CULL_DISTANCE_COUNT which
is 8, which seems expectable here.
Alternatively we could add a clip-distance capability and only enable
it if gl_maxClipDistances is >= 8.
Another potential problem is that OpenGL expects the gl_ClipDistance[]
array to be the same size on every shader it is declared, which is a
restriction I am not sure Direct3D has with its SV_ClipDistance
components.
Co-authored-by: Anna (navi) Figueiredo Gomes <agomes@codeweavers.com>
WARP seems to be completely off for large argument values. The
difference quickly becomes of order of magnitudes, not ULPs. So
we ensure we test hyperbolic functions mostly for small arguments,
and skip WARP for large arguments.
We used to need workarounds when we used scanf() to parse float
numbers, but now we use strtof() which supports "inf" properly.
On the other hand, on some platforms it is the workaround that
now fails with a range error.
We used to need workarounds when we used scanf() to parse float
numbers, but now we use strtof() which supports "inf" properly.
On the other hand, on some platforms it is the workaround that
now fails with a range error.
This directive requires specific shader models to be tested for
compilation, bypassing the default behaviour where only one version from
each shader model set (SM1-3, SM4-5, SM6) is compiled.
Those tests are meant to check that each single sample computes the
right value during a multi-sampled rendering operation. Checking whether
the result is correct after multi-sample resolution isn't enough,
because errors at different samples belonging to the same pixel might
have cancelled out.
Instead, for each shader invocation we compute the expected result and
return the absolute value of the difference between the expected and
computed value. This way errors at different samples cannot cancel out,
but add up.
That program is only meant to be used in the specific context of the CI,
so we don't care about querying the terminal or honouring environment
variables.