00:32 imirkin: gdk: no, they're implied based on various parameters
00:32 gdk: thanks
00:59 karolherbst: imirkin: do you still want to test my patch or should I just push it?
01:00 imirkin: just push it, i'll test later
01:00 karolherbst: okay
01:06 karolherbst: imirkin: if you got some time, would you like to take a look at my slct patches?
01:16 imirkin: i'll try to over the weekend
01:16 imirkin: i'm a bit overextended
01:17 imirkin: i want to try to get all of pendingchaos's work in too
01:17 karolherbst: ahh, I see
01:18 karolherbst: I also wanted to look at his stuff, but usually they cover areas where I never actually looked into yet (but I really should)
05:20 analog: sorry if this has been asked before, but I can't find and answer: how do I install the 32-bit nouveau_dri.so on a 64-bit system?
05:21 orbea: analog: same way you install any 32-bit package on a 64-bit system, you should ask a distro specific channel.
05:23 analog: is there a program name i need to look for? I don't know what created the 64-bit one and the "whatprovides" command wasn't able to figure it out
05:24 analog: i don't think a fedora/rhel-specific channel will know what provides that file
05:37 analog: for future reference, i figured it out: mesa-dri-drivers.i686
05:37 analog: sorry for bothering everyone
07:57 karolherbst: imirkin: fun: enabling 4.5 allows 8 more tests to pass for the 4.4 CTS... some stupid tests checking for 4.4 at runtime, but the shader actually requires 4.5 :(
09:45 karolherbst: imirkin: mhh, apperantly imageLoad should return 0 for incomplete textures and imageStore shouldn't write to them, but we kind of don't handle the imageLoad case (and maye the imageStore as well)
09:46 karolherbst: the CTS test defines a texture with a GL_TEXTURE_MAX_LEVEL of 7, but only provides the 0th level
09:46 karolherbst: do we actually have to handle that within our shader? otherwise I would trace nvidia (or at least try to) and see what they do in that test
11:57 karolherbst: it would be kind of nice to be able to compile glsl shaders to sass. I know you can do funny things with OpenCL, but :(
12:38 imirkin: karolherbst: send patches to CTS
12:57 karolherbst: imirkin: did you look into the shader_image_load_store.incomplete_textures test at some point?
12:59 karolherbst: I did a new 4.4 run on pascal today, and this was the result: https://trello.com/c/r056ZtSR/24-cts-master-461x-khronos-mustpass-gl44-master-status
12:59 imirkin: it's likely that i did
12:59 imirkin: since i looked into all the failures
12:59 karolherbst: ahh
12:59 imirkin: however if there isn't a separate card for it
12:59 imirkin: then i've forgotten any findings
13:00 karolherbst: it is the one with the imageLoad on an incomplete texture
13:00 karolherbst: not returning 0
13:00 imirkin: should...
13:00 imirkin: an incomplete texture comes in as a null BO iirc
13:01 karolherbst: mhh
13:01 imirkin: perhaps on maxwell+ it doesn't? dunno
13:01 karolherbst: luckily the apitrace is quite small with that one, 6000 calls in the frame :)
13:01 imirkin: or perhaps i decided i had bigger fish to fry :)
13:01 karolherbst: ahh
13:02 karolherbst: imirkin: well incomplete means here that only one layer is provided
13:02 karolherbst: or level or whatever the correct term is
13:06 imirkin: doesn't matter -- that's determined by the FE
13:06 karolherbst: okay
13:06 imirkin: we shouldn't be getting a pipe_image_view bound
13:07 imirkin: if we are, it's a problem in core or st/mesa
13:07 karolherbst: mhh
13:07 imirkin: those rules have changed about 30 times btw
13:07 imirkin: so could be that the test is out of date
13:08 imirkin: or i think st/mesa ends up with slightly different rules
13:08 imirkin: not sure
13:08 karolherbst: well it passes on intel
13:08 imirkin: check radeonsi if you can
13:08 karolherbst: yeah.. maybe I should get myself an AMD gpu to test such stuff
13:08 imirkin: base complete vs mip-complete vs something else
13:09 imirkin: kayden will remember all the details of this
13:09 imirkin: try to track him down
13:09 imirkin: but before you do any of that
13:09 imirkin: check if we're seeing a null pipe_image_view or what's going on
13:09 imirkin: fun though it might be to just guess and check... :)
13:10 karolherbst: in gm107_create_image_handle for example?
13:10 imirkin: no
13:10 imirkin: in bind_image whatever
13:10 karolherbst: okay
13:10 imirkin: i.e. at draw time, what's the pipe_image_view say
13:10 imirkin: is it null? does it have a null resource?
13:10 imirkin: etc
13:13 karolherbst: NULL resource
13:14 karolherbst: there are 4 images in that texture, 1 complete to read, 1 complete to write and another pair being incomplete
13:14 imirkin: ok, so all that's working well then
13:15 imirkin: do we create a new tic for that with a null resource?
13:15 karolherbst: currntly checking that
13:16 karolherbst: uhm, no, we simply skip those
13:16 imirkin: we might need a special "incomplete image" tic
13:16 imirkin: allocated at screen time
13:16 imirkin: and just reused in such cases
13:16 karolherbst: allthough, the tics are also simply 0
13:17 imirkin: doesn't matter
13:17 imirkin: tic 0 is a valid tic id
13:17 karolherbst: I meant the entry inside nvc0->images_tic[s]
13:17 imirkin: oh, i wonder what hapens if you use an out-of-bounds one
13:18 karolherbst: mhhh
13:18 karolherbst: so just a 0x0 sized image?
13:18 imirkin: try binding 0xfffff to it or something
13:43 karolherbst: imirkin: uhm, in the shader, when we do "not $p0 suldb 2D $r3 $s0 u32 $r0 u8 $r0d $r4", shouldn't there be a "$p0 mov $r0 $r255" as well?
13:44 imirkin: that $p0 condition is for when you've seriously fucked up
13:44 imirkin: i.e. mismatch of format width, that sort of thing
13:44 karolherbst: like out of bound access? or even more serious stuff?
13:44 karolherbst: mhh okay
13:44 imirkin: anyways, iirc i ran into some trouble with throwing in the zero move in there
13:44 imirkin: and so i just took it out
13:44 karolherbst: ohh, really?
13:47 karolherbst: imirkin: ohh you removed that while adding support for bindless
13:47 imirkin: really?
13:47 karolherbst: yes
13:48 imirkin: maybe.
13:48 imirkin: the bindless thing was something else
13:48 karolherbst: well, it's in the commit :p
13:48 imirkin: i meant to remove the check only for bindless
13:48 karolherbst: https://gitlab.freedesktop.org/mesa/mesa/commit/f08fd676bf651ba401ca631a22e3586a85f99415#d062b840cf6c7b3f95c7383a343274b9b2967481
13:48 imirkin: maybe i got lazy and just removed it entirely
13:48 karolherbst: mhh
13:49 imirkin: if (su->getPredicate()) {
13:49 karolherbst: seems like for atomic operation it is still set to 0
13:49 imirkin: that's still there...
13:49 karolherbst: yeah well, but normally there is no predicate, is there?
13:49 imirkin: ugh, i hate the gitlab diff interface
13:49 imirkin: please send cgit links :)
13:49 karolherbst: :D
13:50 imirkin: the predicate is put there by various lowering logic
13:50 imirkin: i think it usually is there actually
13:50 karolherbst: well anyway, that's basically the last patch in that file changing that
13:50 karolherbst: and I don't see the value being st to 0
13:50 karolherbst: *set
15:39 karolherbst: imirkin: that test indeed passes when I set the result to 0
15:39 karolherbst: allthough I might have messed up the shader still
15:40 imirkin: ok
15:40 imirkin: iirc i ran into issues sometimes
15:41 imirkin: but this was over a year ago
15:41 imirkin: so my recollection is ... imperfect
15:43 karolherbst: I might have messed up the union stuff though.. let me verify
15:44 imirkin: yeah, the union stuff is where i ran into trouble ;)
15:45 karolherbst: okay, still passes
15:46 karolherbst: https://gist.githubusercontent.com/karolherbst/20118a7ea00abc949ea97f04c5d78449/raw/693c3f97d1979704b987538dfa0214d8ca894d36/gistfile1.txt
15:46 karolherbst: this looks better then the previous shader I got
15:46 karolherbst: before the suldb were optimized away, so I thought, might be wrong
15:48 karolherbst: but uhm... still looks odd
15:50 karolherbst: oh yeah, inserted before the su
15:54 karolherbst: okay, actually, this will be trickier
16:15 karolherbst: imirkin: you are right, this is painful :(
16:54 karolherbst: imirkin: could you check if this is correct? https://gist.githubusercontent.com/karolherbst/20118a7ea00abc949ea97f04c5d78449/raw/83da4e7a9f849243a90a1b3cc618b0e7833cc6fd/gistfile1.txt
16:56 imirkin: karolherbst: i can confirm that it's not :)
16:56 karolherbst: huh?
16:56 imirkin: suldb returns 4 values, right?
16:56 karolherbst: and?
16:56 imirkin: oh wait, no it doesn't
16:56 karolherbst: :)
16:56 karolherbst: yeah.. that was the painful part
16:57 karolherbst: in this case it is a rgba8 format
16:57 karolherbst: so 1 32 bit value
16:57 imirkin: yeah, seems fine - but what if it were rgba32f or something
16:57 karolherbst: still works
16:57 karolherbst: I show you the patch
16:57 karolherbst: I just clean it up a little
17:02 karolherbst: imirkin: it was kind of the least painful way to do it: https://github.com/karolherbst/mesa/commit/dd11b923fc655587cabefcc897a50c9de9678681
17:02 imirkin: yeah, should be ok
17:03 karolherbst: I don't like the def.replace thing, but this was a way to not mess with all that code at all
17:04 karolherbst: I guess I can move that setPosition out of the loop
17:09 karolherbst: imirkin: if we disable pipeline_statistics_query and add those fp64 stuff for maxwell, we only have one test to fix left :)
17:09 karolherbst: which would be KHR-GL44.shader_image_load_store.non-layered_binding
17:10 imirkin: pipeline stats is still breaking?
17:10 imirkin: i thought i fixed it =/
17:11 karolherbst: compute shader invocations
17:11 imirkin: non-layered binding... yeah, it's broken for 3d images i think
17:12 karolherbst: yeah
17:12 imirkin: we need to do something clever there.
17:12 imirkin: oh right. compute.
17:12 imirkin: booooo.
17:12 karolherbst: :)
17:12 karolherbst: well
17:12 karolherbst: we need it for 4.6
17:12 karolherbst: but...
17:12 imirkin: at least the weird shit is fixed.
17:12 karolherbst: to claim 4.4/4.5 we could just disable it
17:12 karolherbst: I doubt anybody would care
17:12 imirkin: or at least disable it while running the test ;)
17:12 karolherbst: :)
17:13 karolherbst: NVC0_ENABLE_EXPERIMENTAL_FEATURES and advice evrybody to turn it on by default :p
17:13 karolherbst: but yeah
17:13 karolherbst: dunno if they care about extensions that much
17:14 karolherbst: imirkin: or we disable it, run the CTS, pass conformence und enable it with the next release
17:14 karolherbst: :D
20:20 karolherbst: imirkin: mhh those packed_pixels.rectangle tests basically do texturing from data in a different fromat. It textures a GL_RGBA32UI texture with pixels being GL_BYTE. Then they check if the framebuffer is complete and if it is, the data is read out with glReadPixels (or pbo) with the internal texture format
20:20 karolherbst: any ideas?
20:22 imirkin: don't think i investigated that.
20:22 karolherbst: yeah.. I think it is something rather new
20:24 karolherbst: imirkin: added 2018-01-23
20:30 karolherbst: mhh
20:30 karolherbst: looking closer, they do something like that: "glTexImage2D(target = GL_TEXTURE_2D, level = 0, internalformat = GL_RGBA32UI, width = 7, height = 3, border = 0, format = GL_RGBA_INTEGER, type = GL_UNSIGNED_INT, pixels = [binary data, size = 336 bytes])"
20:30 imirkin: could be the texture tracking screwup too btw
20:30 karolherbst: and then have plenty of glGetTexImage with all sorts of types
20:31 karolherbst: like ~100 checks
20:31 karolherbst: uhm 100 pairs of glGetTexImage + glReadPixels
20:31 karolherbst: mhhh
20:33 karolherbst: ohh wait, it is even more insane what they do
20:35 karolherbst: imirkin: above glTexImage2D + glGetTexImage(target = GL_TEXTURE_2D, level = 0, format = GL_RED, type = GL_BYTE, pixels = 0x3999ad0)
20:35 karolherbst: they check a lot of other stuff before that and that passes
20:35 karolherbst: even GL_RED + GL_UNSIGNED_BYTE seems to pass