On 11 February 2016 at 22:03, Stefan Dösinger stefandoesinger@gmail.com wrote:
sprintf(register_name, "(%s + %u >= 0 &&
%s + %u < %u ? %s_c[%s + %u] : vec4(0.0))",
Did you do any testing on the performance impact of this? This seems like something where it's convenient to sacrifice performance everywhere for a corner case, but later on we wonder why games are unplayably slow. Keep in mind that currently it's pretty difficult to be GPU limited. With the CSMT patches you'll have a higher chance of being GPU limited, but there's no guarantee of course.
dx10+ GPUs don't return 0.0 reliably on Windows here. My Geforce GPUs returned the int constants at c[-32] to c[-48].
Yeah, I'm not all that convinced this is how we want to fix this, or that this is necessarily something that needs fixing on our end. I could perhaps be convinced to have a registry setting along the lines of StrictDrawOrdering though.