alanc has quit [Remote host closed the connection]
alanc has joined #dri-devel
CorneliusCorn has quit [Quit: Konversation terminated!]
<mripard>
airlied: sima: could you pull 6.5-rc1 in drm-fixes? we'll need it for drm-misc
<sima>
oops will do asap
frieder has joined #dri-devel
sghuge has quit [Remote host closed the connection]
sghuge has joined #dri-devel
Company has joined #dri-devel
frankbinns has joined #dri-devel
tursulin has joined #dri-devel
frankbinns1 has joined #dri-devel
frankbinns has quit [Ping timeout: 480 seconds]
aravind has quit [Ping timeout: 480 seconds]
<mripard>
sima: thanks :)
Jeremy_Rand_Talos__ has joined #dri-devel
Jeremy_Rand_Talos_ has quit [Remote host closed the connection]
jagan_ has joined #dri-devel
eukara has quit [Remote host closed the connection]
aravind has joined #dri-devel
<sima>
mripard, I forgot to tell you it's done ...
aravind has quit [Ping timeout: 480 seconds]
sarahwalker has joined #dri-devel
<mripard>
I noticed, don't worry
lynxeye has joined #dri-devel
apinheiro has joined #dri-devel
Haaninjo has joined #dri-devel
aravind has joined #dri-devel
vliaskov has joined #dri-devel
frankbinns1 has quit [Quit: Leaving]
frankbinns has joined #dri-devel
<Company>
while playing with my stuff, I've been looking at radeontop for too long now - and it seems when I use Vulkan, it never downclocks the memoryclock
<Company>
I originally didn't think too much about it, but it turns out when I use zink, that's also the case
<Company>
so now I wonder: what is the memory clock and why wouldn't it be downclocked?
<Company>
side note: zink achieves only half the framerate of GL, and that's visible in radeontop with the shader clock running way lower - but the memory clock is at max
MrCooper_ is now known as MrCooper
<MrCooper>
Company: it's the clock for the GPU-local VRAM; one common reason for it not clocking down is having multiple monitors connected with different modes
f11f12 has joined #dri-devel
<Company>
MrCooper: it does clock down with GL though
<Company>
it's chilling at 0.1/1.12 now
<MrCooper>
can't really explain that, FWIW the clocks are generally controlled by an SMU in the GPU
<Company>
0.54/1.12 when bechmarking the GL renderer
<MrCooper>
based on load and possibly other factors
<Company>
1.12/1.12 when benchmarking the GL renderer with zink (and having half the framerate)
<Company>
I was originally wondering if I do something stupid - like putting images in the wrong vram area or linear tiling vs optimal tiling or something like that
<Company>
but got really curious once zink had the same issue
<MrCooper>
clocking up isn't necessarily issue, maximum clocks are required for maximum performance
<MrCooper>
*an issue*
<Company>
yeah, but we're pretty obviously not hitting that (this is all CPU limited)
<dj-death>
the logs appear to be cut off without an actual error in there
<MrCooper>
looks like they timed out after 75 minutes, retry?
apinheiro has quit [Ping timeout: 480 seconds]
MrCooper has quit [Remote host closed the connection]
<dj-death>
I guess I have to push an new revision
<dj-death>
the second retry seem to have failed as well
<dj-death>
yeah I probably have to wait for someone else to push some commits on main
MrCooper has joined #dri-devel
apinheiro has joined #dri-devel
penguin42 has joined #dri-devel
aravind has quit [Ping timeout: 480 seconds]
smiles_1111 has joined #dri-devel
jagan_ has quit [Remote host closed the connection]
<Company>
"GPU hung on one of our command buffers" means I put too many commands into a single buffer and should have submit()ed more often?
kts has joined #dri-devel
<dj-death>
Company: no, it's a hang
<pq>
sounds to me like it might be "bad" commands rather than too many commands, unless you intend to do several seconds worth of work in one err.. "primitive?"
<dj-death>
Company: usually it's a driver bug
<dj-death>
Company: but a while (true); loop in a shader can also do that
<Company>
well, I was generating random crazy tests
<Company>
so it might just have generated one drawing 20.000 widgets or so
<dj-death>
that should be fine
<Company>
it was something that took a few seconds with a smaller number
<dj-death>
ah okay
<dj-death>
then yeah, maybe it's taking too long
<Company>
I'm trying to anticipate what I need to account for
djbw has quit [Read error: Connection reset by peer]
<dj-death>
it's odd that 20k widgets would be a problem
<Company>
because unlike games, which have full control over stuff, GTK gets to deal with whatever application developers throw at it
<dj-death>
there are apps like gravity mark rendering way more than that per frame
<Company>
if in doubt, blame my renderer for being slow
itsmeluigi has joined #dri-devel
<Company>
hahaha, yeah
<Company>
renderering the contents of a scrolled window without clipping may do things
<Company>
so yeah, I'll need to submit smaller buffers to stop things from breaking accidentally
JohnnyonFlame has joined #dri-devel
apinheiro has quit [Quit: Leaving]
<mairacanal>
sima, is there any future plans or ideas for a generic global GPU stats interface such as we have with fdinfo for processes?
<sima>
mairacanal, iterate over all fdinfo and add up in userspace?
<mairacanal>
it can be a possible implementation. do you think it would make sense to create an infrastructure for it on the DRM?
<sima>
mairacanal, don't we have some gputop or so that's trying to be cross-vendor?
<sima>
mairacanal, but yeah unless it's a perf problem I think the dumb impl should be good enough
<sima>
top also works like this (but I think tries to be better with file watches in procfs maybe)
<zmike>
it's gotten notifications like 5 times in the past 12h
<zmike>
going from 10-11 fps
andrey-k- has quit []
MrCooper has quit [Remote host closed the connection]
<mairacanal>
sima, about the gputop, currently, it only displays the per process GPU percentage, not the global stats
aravind has joined #dri-devel
MrCooper has joined #dri-devel
<mairacanal>
intel-gpu-tools has a global stats monitor, but AFAIK it uses the intel perf infrastructure
<mairacanal>
i thought it could be interesting to other drivers to have a similar monitor for global stats
rasterman has quit [Quit: Gettin' stinky!]
<mairacanal>
but i don't know the best way to expose this global stats information (sysfs? debugfs?)
<penguin42>
mairacanal: There's also radeontop
andrey-k- has joined #dri-devel
pjakobsson_ has joined #dri-devel
pjakobsson has quit [Ping timeout: 480 seconds]
kzd has joined #dri-devel
yuq825 has quit []
<MrCooper>
jani: defconfigs enabling CONFIG_WERROR is pretty insane, can break with any previously-untested compiler
<zmike>
is there a way to get mesa to build/install a libGLX without merging it into libGL?
<pq>
Doesn't enabling glvnd do roughly that?
<zmike>
huh so it does
<zmike>
apparently qtwebengine doesn't work without it 🤔
<pq>
how do they manage to do that? Link both libGL and libGLX?
<zmike>
confusing
<pq>
I think one is supposed to link either only libGL, or libOpenGL+libGLX. If you don't have glvnd providing those libs, then... or if you mix glvnd frontend libs with Mesa standalone libs... boom?
<MrCooper>
pq: looks like GLVND's libGL.so.1 links libGLX.so.0
<pq>
MrCooper, right, so if you use glvnd, it works even if you link both yourself.
<pq>
but if you use stand-alone non-glvnd libGL.so or you even mix glvnd and non-glvnd libs, boom?
<MrCooper>
right, though it's not clear what the issue was in the first place
<pq>
Going home is better \o.
<MrCooper>
in particular, what exactly links libGLX, and whether that also links libGL or libOpenGL
donaldrobson has joined #dri-devel
<pq>
maybe also confused installation with a local build of non-glvnd Mesa?
donaldrobson has quit []
donaldrobson has joined #dri-devel
MrCooper has quit [Remote host closed the connection]
jagan_ has joined #dri-devel
kts has joined #dri-devel
epony has joined #dri-devel
aravind has quit [Ping timeout: 480 seconds]
sravn has joined #dri-devel
i509vcb has quit [Quit: Connection closed for inactivity]
MrCooper has joined #dri-devel
<penguin42>
karolherbst: On the profiling, you say we can't return 0 is the ..if let Some(...) fails and usggest a read_blocking instead of the read, am I ok to define a read_lbocking as a wrapper around read() that just unwraps it?
<karolherbst>
penguin42: yeah, I think that would be fine
smiles_1111 has quit [Read error: Connection reset by peer]
smiles_1111 has joined #dri-devel
<penguin42>
karolherbst: Great just fixing thos eup now
<karolherbst>
might make sense to point to the gallium docs though, but yeah... I'd just like to formalize whatever the doc is saying there
smiles_1111 has quit [Remote host closed the connection]
smiles_1111 has joined #dri-devel
<penguin42>
oh hang on
<penguin42>
karolherbst: There's another problem there; that we're expecting a U64, and better had get a U64 back, so we still need to unpack
<penguin42>
karolherbst: So, I'm not sure how to do that and not get your 0
<eric_engestrom>
mesa group owners/maintainers, could you add mairacanal (`@mairacanal` on gitlab) to the CI-OK group?
<karolherbst>
penguin42: I wonder if that can be encoded at query creation time via a generic argument or something. We could potentially wrap around pipe_query_type with an enum, and add a `create_query` method on that enum. And then we can specizlie the return value per query type
itoral has quit [Remote host closed the connection]
tzimmermann has quit [Quit: Leaving]
<penguin42>
ewww hairy :-)
<penguin42>
karolherbst: I think it can for some of the queries, but the general case allows groups of queries and driver specific stuff where you have to query the driver to see what size it will return
<karolherbst>
mhhhhh
f11f12 has quit [Quit: Leaving]
<penguin42>
damn, and if I take just the read_blocked out I hit a 'irrefutable if let pattern' warning because I've only got U64's for now
<karolherbst>
not sure we'll ever have to use that, so that might be something someobdy has to figure out if they want to use the wrapper for non compute stuff
<penguin42>
let me see if I can wrangle that type magic
Haaninjo has quit [Quit: Ex-Chat]
<penguin42>
karolherbst: Actually I think it's always safe as is, if the read_blocked succeeds (which it always will) then it will be the right type, so we're only using the if let as a destructure
<karolherbst>
right
<karolherbst>
you don't need an if then, right?
<karolherbst>
uhh.. or I guess you would
<penguin42>
can you destructure without the if?
<karolherbst>
I think that only works on tuples, not enums
<penguin42>
karolherbst: It swats you either way....
<penguin42>
karolherbst: I added a _U32 so the 'if let' didn't complain; but the let without the if complains I didn't cover the other case
<karolherbst>
right...
Danct12 has joined #dri-devel
<karolherbst>
I think the generic thing would help in that case, just requires it to be defined at creation time
<penguin42>
karolherbst: So I could remove the _U32, but as soon as someone adds it for real then those let's will fail to compile which would be mean
<karolherbst>
but groups are weird then...
<karolherbst>
how are groups queried?
<penguin42>
we gently ignore them for now
<karolherbst>
just a raw buffer with the values after each other?
<penguin42>
karolherbst: I think it's a variant array in the pipe_query_result
<karolherbst>
ohh rght
<karolherbst>
it's just an array of values
<penguin42>
it's a bit of a disaster of an interface
<karolherbst>
it is
<penguin42>
karolherbst: Especially when you see some drivers just gently ignore the request made and return one magic 64 bit value :-)
<karolherbst>
but anyway, I don't think having the enum on the read makes much sense as the return type isn't variable. It's already decided when you create the query
<penguin42>
blech that's going to be a bit of a rework; ok, let me think about that when I come back later - I guess it's going to be some fun with associated types and things, I'm not sure what the compiler will let me do, I think it's pretty flexible these days
<penguin42>
karolherbst: My understand is for some of the driver queries, you have to do a reuqest to the driver to ask it what size you're going to get
<karolherbst>
ehh, I can write down my idea here, it's not _that_ complicated I think.. give me a sec
<penguin42>
karolherbst: I think you're saying parameterise a type based on query value, and have it have an associated type which is the result
<penguin42>
or at least have it define it's read() individually
<penguin42>
(I've just pushed a version with everything else fixed)
idr has joined #dri-devel
<karolherbst>
ehh wait... I don't think it works the way I wanted it to work....
<karolherbst>
not sure if QueryBuilder can be skipped here
<karolherbst>
but... might be fine
<karolherbst>
could maybe also generalize with blanket impls? mhhh
<karolherbst>
maybe not
<karolherbst>
could also add a macro to need less typing
<penguin42>
this is turning into a bit of a long hole! But yeh I'll have a look at that
<penguin42>
karolherbst: I think you might end up with code duplication in the compilation for all of the identical queries but I'm not sure
<penguin42>
karolherbst: Anyway, I've done worse things with the type system, so I'll have a look after I go and get rained on
<karolherbst>
I'm sure the compiler is smart enough :D or maybe not
<karolherbst>
mhhh....
<penguin42>
karolherbst: Anyway, I'm sure it's doable like that, not too sure if it'll like the enum as the query parameter, but we'll see, anyway, time for a walk!
<jani>
MrCooper: agreed, yet I think that pretty much still tips the scales for __diag_ignore_all. I was thinking if a user intentionally sets -Werror, they get to keep both pieces, but they just didn't know why the build started failing for them
<MrCooper>
yep, I consider enabling CONFIG_WERROR for unsuspecting users cruel
sarahwalker has quit [Remote host closed the connection]
<jani>
:)
<MrCooper>
mind-boggling that Linus et al don't understand this
donaldrobson has quit [Remote host closed the connection]
<emersion>
-Werror has a positive outcome in my experience
<emersion>
people just send fixes
<zmike>
-Werror is a cancer if every single person isn't using the exact same compiler
<emersion>
there will always be errors when someone compiles your stuff on their platform, because their platform isn't exactly the same as yours
<emersion>
and it's a good thing if they send fixes
benjaminl has quit [Quit: WeeChat 3.8]
benjaminl has joined #dri-devel
<daniels>
emersion: breaks bisection tho
<emersion>
it is very easy to disable in the cases that you need to disable it
<emersion>
but i find -Werror a good default
<daniels>
amazing in CI, less amazing to ship to users
<emersion>
users who build from source have a level of technical expertise
<zmike>
the ability to follow random instructions someone posted on reddit?
<emersion>
are you really interested in supporting users who don't want to learn and only want to blindly copy-paste commands found on reddit?
<Sachiel>
yes
<Sachiel>
we kinda have to
<Sachiel>
it's the job
<emersion>
if they do want to learn, they will just come and ask me on IRC
<emersion>
and i will explain
<emersion>
ideally guiding them to post a patch
<Sachiel>
and as someone with the technical expertise to deal with it, when I need to test something in an older version of the cts, that's building against an older version of amber and suddenly a bunch of new gcc warnings cause the build to fail, I don't care how easily I can disable it, every single time is a huge pain in the ass
<zmike>
^this
Duke`` has joined #dri-devel
<pixelcluster>
tbh I think the average person needing help with -Werror issues today doesn't have IRC
<emersion>
pixelcluster: just need to click on the webclient link in the readme
<zmike>
I don't even read the readmes for projects I work on
<emersion>
maybe I should consider renaming it to MEMES.md to spark interest
<zmike>
memes don't end with .md
<Sachiel>
MEMES.phd
<zmike>
now THAT'S a meme
lynxeye has quit [Quit: Leaving.]
Kayden has quit [Quit: move locations]
Haaninjo has joined #dri-devel
rasterman has joined #dri-devel
danylo is now known as Guest5889
danylo has joined #dri-devel
<Company>
people who build from source are often people who just want to help
* alyssa
is looking forward to nir_def *
<Company>
like me when I was asked about compiling git to test
<Company>
I don't want to deal with -Werror because my compiler isn't blessed
thecollaboran04 has joined #dri-devel
thecollaboran04 is now known as koike
<penguin42>
karolherbst: You can do pretty much anything with the type system; it's very turing complete
idr has quit [Quit: Leaving]
<alyssa>
stop doing generics
<alyssa>
types were not meant to be turing complete
<alyssa>
wanted to mess with types anyway for a laugh? we had a tool for that: void*
tobiasjakobi has joined #dri-devel
<alyssa>
penguin42: nice, closing the tab now ;)
Guest5889 has quit [Ping timeout: 480 seconds]
<penguin42>
alyssa: Since then Rust let you use constant values in the type system and the equivalent is all very boring
tobiasjakobi has quit []
<penguin42>
hell, that was 6 years ago
rasterman has quit [Quit: Gettin' stinky!]
epony has quit [Remote host closed the connection]
ngcortes has joined #dri-devel
Kayden has joined #dri-devel
jeeeun841351 has quit [Ping timeout: 480 seconds]
jeeeun841351 has joined #dri-devel
rasterman has joined #dri-devel
smiles_1111 has quit [Ping timeout: 480 seconds]
lstrano has quit [Quit: WeeChat 3.5]
Ryback_ has quit [Remote host closed the connection]
lstrano has joined #dri-devel
rmckeever has joined #dri-devel
frieder has quit [Remote host closed the connection]
epony has joined #dri-devel
oneforall2 has quit [Remote host closed the connection]
oneforall2 has joined #dri-devel
tursulin has quit [Ping timeout: 480 seconds]
djbw has joined #dri-devel
Kayden has quit [Remote host closed the connection]
Kayden has joined #dri-devel
rasterman has quit [Quit: Gettin' stinky!]
APic has quit [Ping timeout: 480 seconds]
mango has joined #dri-devel
mango has left #dri-devel [#dri-devel]
APic has joined #dri-devel
gouchi has joined #dri-devel
gouchi has quit [Remote host closed the connection]
sravn has quit [Remote host closed the connection]
sravn has joined #dri-devel
fxkamd has joined #dri-devel
sima has quit [Ping timeout: 480 seconds]
epony has quit [Remote host closed the connection]
oneforall2 has quit [Remote host closed the connection]
epony has joined #dri-devel
oneforall2 has joined #dri-devel
djbw has quit [Ping timeout: 480 seconds]
Duke`` has quit [Ping timeout: 480 seconds]
idr has joined #dri-devel
chema has quit []
djbw has joined #dri-devel
<DemiMarie>
alyssa: Tell that to the dependent type people, where type-checking requires evaluating arbitrary runtime programs (albeit without I/O).
JohnnyonFlame has quit [Ping timeout: 480 seconds]
LaughingMan[m] has quit []
epony has quit [Remote host closed the connection]
epony has joined #dri-devel
Haaninjo has quit [Quit: Ex-Chat]
eukara has joined #dri-devel
djbw has quit [Read error: Connection reset by peer]
epony has quit [Remote host closed the connection]
Ryback_ has joined #dri-devel
oneforall2 has quit [Remote host closed the connection]
oneforall2 has joined #dri-devel
jfalempe has quit [Ping timeout: 480 seconds]
pcercuei has quit [Quit: dodo]
ultra has quit [Quit: ultra]
ultra has joined #dri-devel
epony has joined #dri-devel
shashanks__ has joined #dri-devel
benjamin1 has joined #dri-devel
<airlied>
do we have a nir pass that moves global loads closer to their first use?
<airlied>
I thought I could persuade opt move but it doesn't seem to be doing what I want even after I modififed
itsmeluigi has quit [Quit: Konversation terminated!]
shashanks_ has quit [Ping timeout: 480 seconds]
<jenatali>
airlied: nir_opt_sink?
<jenatali>
I don't see load_global handled though
<airlied>
yeah I've been adding load global support
idr has quit [Quit: Leaving]
<airlied>
opt sink seems more block focuses
<airlied>
I've only got a single block
smiles_1111 has joined #dri-devel
benjaminl has quit [Ping timeout: 480 seconds]
<jenatali>
Ah I see
The_Company has joined #dri-devel
<airlied>
just have a shader with a lot of spilling and I think just pushing the global loads down would alleviate some of it
Company has quit [Ping timeout: 480 seconds]
JohnnyonFlame has joined #dri-devel
<Kayden>
airlied: sounds kind of like nir_schedule.c (which also doesn't do load_global)
<Kayden>
I think that nir_schedule is for ordering instructions within basic blocks; nir_opt_sink and nir_opt_gcm (including GVN) are for moving things across blocks
<Kayden>
not a lot of drivers are using it today
<Kayden>
but maybe it'd be helpful
oneforall2 has quit [Ping timeout: 480 seconds]
epony has quit [Remote host closed the connection]
Kayden has quit [Quit: -> home]
<airlied>
okay if I hack on can reoder and global support it moves things., but then it looks worse :-P
<airlied>
reasons I'll never be a compiler engineer