On Thursday, July 13, 2017 4:23:14 PM PDT Ian Romanick wrote: > On 07/10/2017 11:25 PM, Kenneth Graunke wrote: > > Hello, > > > > Mesa master has been hitting assert failures when running "XCOM: Enemy > > Unknown" since commit f8d69beed49c64f883bb8ffb28d4960306baf575, where we > > started asserting that the SAMPLER_STATE LOD Bias value actually fits in > > the correct number of bits. > > > > Apparently, XCOM calls > > > > glTexEnv(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, val); > > > > to set the texture unit LOD bias...but according to gdb, the value is: > > > > -nan(0x7ffff3) > > > > In i965, we do CLAMP(lod bias, -16, 15)...but NaN ends up failing both > > the < min and > max comparisons, so it slips through. But, that raises > > the question...what value *should* we be using? 0? Min? Max? > > > > I couldn't find any immediately applicable GL spec text. Anyone know of > > any? If not, does DirectX mandate something? > > There is one place. Section 2.3.4.1 (Floating-Point Computation) of the > OpenGL 4.5 core profile spec says: > > "The result of providing a value that is not a floating-point number > to such a command is unspecified, but must not lead to GL > interruption or termination. In IEEE arithmetic, for example, > providing a negative zero or a denormalized number to a GL command > yields predictable results, while providing a NaN or an infinity > yields unspecified results." > > Crashing is not allowed, but nearly any other behavior is. Based on > that, I like Roland's suggestion of changing the CLAMP() macro. We > should also report this to the developers. I'd wager that some crazy > NaN value is not what they intended.
Hi Marc, I think I may have found a bug in "XCOM: Enemy Within" - it appears to be setting the texture unit LOD bias to -nan(0x7ffff3) via glTexEnv. Passing in a NaN here can cause unspecified results...meaning you likely get an arbitrary LOD bias. I'm guessing this isn't what you intended. See above for the details. I just sent patches to work around the crash (assertion failure) in i965 due to the NaN popping up in unexpected places, but we'll end up setting the LOD bias to -16, which I imagine could have a performance impact... https://lists.freedesktop.org/archives/mesa-dev/2017-July/162921.html The bogus glTexEnv call happens immediately after the intro videos end, and you reach the main menu (new game, load, etc). Any thoughts? --Ken
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
