01:06 karolherbst: DodoGTA: what do you mean that the usage returned by glxinfo seems broken?
02:06 fdobridge: <k​arolherbst🐧🦀> ah yeah.. some of that is weird on ampere compared to turing :/
02:06 fdobridge: <k​arolherbst🐧🦀> LTS is one of the different things
02:22 fdobridge: <a​irlied> yeah but I've played with the qmd to no avail
02:25 fdobridge: <k​arolherbst🐧🦀> what's the local size set?
02:27 fdobridge: <k​arolherbst🐧🦀> make sure it's like aligned and stuff
02:31 fdobridge: <k​arolherbst🐧🦀> mhhh.. there is `#define NVC6C0_QMDV03_00_SHADER_LOCAL_MEMORY_LOW_SIZE MW(759:736)`
02:31 fdobridge: <k​arolherbst🐧🦀> maybe the QMD version needs to be set?
02:31 fdobridge: <k​arolherbst🐧🦀> in v3 a lot of stuff seems to have been moved around
02:32 fdobridge: <k​arolherbst🐧🦀> @airlied in opengl we do set the QMD version to 2.2 for volta-ampere
02:32 fdobridge: <k​arolherbst🐧🦀> might want to try that
02:32 fdobridge: <k​arolherbst🐧🦀> though I think ampere supports 2.3, 2.4 and 3.0
02:33 fdobridge: <k​arolherbst🐧🦀> `QMD_VERSION` + `QMD_MAJOR_VERSION` inside the QMD
02:36 fdobridge: <a​irlied> yeah did a bit of 2 and 3 no major difference
02:36 fdobridge: <k​arolherbst🐧🦀> did you verify that the local size being set is actually sane?
02:37 fdobridge: <a​irlied> b3e13d2b841648440a1c51c3fd965693ac396bd9 was where I added v3 to try and fix it
02:37 fdobridge: <a​irlied> yeah even made things larger randomly
02:38 fdobridge: <k​arolherbst🐧🦀> it's not about the size
02:38 fdobridge: <k​arolherbst🐧🦀> it's about the value
02:38 fdobridge: <k​arolherbst🐧🦀> also. you don't set the local size
02:39 fdobridge: <k​arolherbst🐧🦀> at least not in that patch
02:40 fdobridge: <k​arolherbst🐧🦀> ehh wait a second..
02:40 fdobridge: <a​irlied> the template macros do it
02:41 fdobridge: <k​arolherbst🐧🦀> ahh, fair
02:41 fdobridge: <a​irlied> slm_size
02:44 fdobridge: <k​arolherbst🐧🦀> well.. dunno then, might want to compare the code to the opengl driver. Maybe some setup stuff is missing
02:45 fdobridge: <k​arolherbst🐧🦀> but the problem isn't really the size itself
02:45 fdobridge: <a​irlied> my other plan was to create a GL test the same, just hadn't gotten to it yet
02:45 fdobridge: <k​arolherbst🐧🦀> because SKED doesn't know if the size is enough or too small
02:46 fdobridge: <k​arolherbst🐧🦀> it's probably something like it's not allowed to be non 0 in this case
02:46 fdobridge: <k​arolherbst🐧🦀> and maybe something with binding the actual buffer is wrong
02:47 fdobridge: <k​arolherbst🐧🦀> do you get that error if you set the local size to 0?
02:47 fdobridge: <a​irlied> probably the only value I didn't try 😛
02:47 fdobridge: <k​arolherbst🐧🦀> well.. did you also try something ridicoulus small like 0x10 or 0x100?
02:48 fdobridge: <k​arolherbst🐧🦀> but anyway... 0 might work and the test fails, which would indicate that something with setting up the local buffer state is broken
02:51 fdobridge: <a​irlied> I should have written down the test, have to go find it again
02:53 fdobridge: <k​arolherbst🐧🦀> anyway.. my bet is that the local memory buffer is set up incorrectly 😄 Might need more alignment or it's just bound differently on ampere? dunno...
02:53 fdobridge: <k​arolherbst🐧🦀> ehh wait...
02:53 fdobridge: <k​arolherbst🐧🦀> does ampere generally work or not at all?
02:54 fdobridge: <a​irlied> passes most of the CTS
02:54 fdobridge: <k​arolherbst🐧🦀> okay..
02:54 fdobridge: <k​arolherbst🐧🦀> so I guess we already bind the copy class then 😄
02:56 fdobridge: <k​arolherbst🐧🦀> @airlied sooo... mhh... you are launching the compute shaders different than we do in OpenGL
02:57 fdobridge: <k​arolherbst🐧🦀> in GL we execute the command twice
02:57 fdobridge: <k​arolherbst🐧🦀> not sure if that makes a difference
02:58 fdobridge: <k​arolherbst🐧🦀> besides that I don't really see anything changed in the gl driver for ampere
02:59 fdobridge: <k​arolherbst🐧🦀> so maybe that's it, or we just respected some alignment already
02:59 fdobridge: <a​irlied> yeah I didn't see any ampere specifics
02:59 fdobridge: <k​arolherbst🐧🦀> I'd try out doing this two step launch
02:59 fdobridge: <k​arolherbst🐧🦀> I'm sure Ben had a good reason for that
02:59 fdobridge: <k​arolherbst🐧🦀> anyway, gotta sleep
03:01 fdobridge: <a​irlied> going 0 gives an out of range error
03:15 fdobridge: <a​irlied> moving to a 2 step inval/sched didn't change it either
03:21 fdobridge: <a​irlied> dEQP-VK.pipeline.monolithic.spec_constant.compute.expression.array_size is an example test
05:31 fdobridge: <!​[NVK Whacker] Echo (she) 🇱🇹> karolherbst: The memory usage stays basically identical no matter what I do (including loading a heavy game)
06:46 fdobridge: <a​irlied> okay I think I found the last tess blocker bug
06:47 fdobridge: <a​irlied> doh found one bit of it 😛
07:05 fdobridge: <a​irlied> maybe enough for someone else to figure out how to finalise it
07:55 fdobridge: <g​ouz> Thanks @airlied, I will try it out when I get home
09:53 fdobridge: <k​arolherbst🐧🦀> sure, so it's passed SKED
09:54 fdobridge: <k​arolherbst🐧🦀> so something is wrong with setting a local size at all
09:55 fdobridge: <k​arolherbst🐧🦀> but as I said above: the size itself isn't validated here, it's just making sure it's within certain constraints like alignment or 0 if no LTS buffer is bound
09:55 fdobridge: <k​arolherbst🐧🦀> and the alignment is 0x10
09:56 fdobridge: <k​arolherbst🐧🦀> anyway, out of range error is progress over the SKED error as this happens later. SKED does not know the range the local memory buffer is accessed, it's just validating if the QMD is sound before scheduling the job to the SM