01:21mazarax: Can I build mesa without install a rust compiler? I tried: meson setup --buildtype=debugoptimized build -D gallium-rusticl-enable-drivers="" but cmake still aborts on rustc not found?
01:29dwfreed: mazarax: you also need to disable the nouveau vulkan driver
01:30dwfreed: -Dvulkan-drivers=auto (the default) includes nouveau on x86
01:48mazarax: @dwfreed Awesome. That worked. Thanks.
01:48karolherbst: for the time being.. yes, but more and more driver will require it
13:09Company: karolherbst: that min/max behavior, is that true in GLSL, too?
13:10karolherbst: Company: max returns the maximum of the two parameters. It returns y if y is greater than x, otherwise it returns x.
13:11Company: which is different from never returning nan
13:11karolherbst: well
13:11karolherbst: well it depends on how float values compare to nan
13:11Company: comparisons with nan are always false, or is that different in glsl, too?
13:12Company: which would mean GLSL max() would return the first number if either of the numbers is nan
13:12karolherbst: not equal compares true with nan
13:13karolherbst: the problem kinda is that SPIR-V doesn't have min/max
13:15karolherbst: I think practically min/max will return the other argument if one is nan
13:15Company: I was mostly wondering because GTK might get input textures sometimes that have nan values, and I need to clamp to [0..1] when converting to UNORM - so I thought if I code that right, I could catch nans in there, too
13:16Company: without doing lots of isfinite() or whatever
13:16karolherbst: ohh.. wait.. it's in the glsl extended instruction set..
13:17karolherbst: ahh: "Result is y if x < y. otherwise x. -0 compares less than +0. Which operand is the result if one of the operands is a NaN is implementation-dependent."
13:17Company: undefined - the best way to spec this :/
13:17pendingchaos: I'm not sure if glsl has very clear nan behaviour beyond isnan()
13:18karolherbst: at least on nvidia we can force canonical nan (0x7fffffff) if either operand is nan
13:18karolherbst: or return the other argument
13:19Company: want a fun story about nans?
13:19Company: it just happens that an input comes out as nan sometimes so you get nan input in your compositor
13:19Company: compositors often always have blending enabled
13:19Company: and blending always comes out as nan if any input is nan
13:19karolherbst: but anyway.. I need a good way to match fmin(fmax(a, b), -b) patterns :'(
13:19Company: which means that once the nan is in the image, it'll stick across redraws
13:19karolherbst: yeah..
13:20karolherbst: that's usually how nan works
13:20Company: I turned my whole screen black by dragging a window around
13:20Company: which I would guess is a bit of a problem
13:20karolherbst: I've seen shaders clamping value to finite ranges, because inf can also lead to nans
13:21Company: yeah
13:21karolherbst: anyway.. we can do clamping in one instruction and I want to optimize those fmax+fmin patterns
13:22Company: does clamp()ing get rid of nans? Or is it just defined as min(max())?
13:23karolherbst: "Result is min(max(x, minVal), maxVal). The resulting value is poison if minVal > maxVal. The semantics used by min() and max() are those of FMin and FMax."
13:23karolherbst: actually....
13:23karolherbst: I'll turn this into a proper nir opcode, because I really need those specific semantics 🙃
13:24Company: so #define fmin(x, y) clamp(x, y, 0/0) ?
13:24karolherbst: mhh actually I need minVal == -maxVal
13:25karolherbst: but fclamp is easier to optimize than pattern matching against `fmin+fmax`
13:25karolherbst: dunno.. mhh
13:26karolherbst: ahh and the shader I'm looking at doesn't use fclamp
13:28karolherbst: well splitting can lead to better optimiations, so maybe I should just pattern match even if it sucks a bit
18:44Kayden: cleaning out my mailbox today and realized that we've been using gitlab for over _7 years_ now... crazy lol
18:53DragoonAethis: Now please convince my kernel-aligned friends it's a nicer life than mailing lists :')
19:02Kayden: hahah....yeah. that would be nice.