ChanServ changed the topic of #dri-devel to: <ajax> nothing involved with X should ever be unable to find a bar
tjaalton_ has quit [Remote host closed the connection]
tpalli has joined #dri-devel
tjaalton has joined #dri-devel
ngcortes has joined #dri-devel
pnowack has quit [Quit: pnowack]
ngcortes has quit [Remote host closed the connection]
iive has quit []
ybogdano has joined #dri-devel
tursulin has quit [Read error: Connection reset by peer]
Company has quit [Quit: Leaving]
<anholt> airlied: thanks. just realized I don't have an ack for the uprev commit, either :/
<airlied> anholt: ab for that
<jenatali> Looks like I have to completely rewrite how we produce DXIL signatures, that'll be fun
cphealy has quit [Read error: Connection reset by peer]
ybogdano has quit [Ping timeout: 480 seconds]
<kisak> must be time to switch over to cursive
<HdkR> Cursive is great for only signatures. I can just scribble on something and no one can duplicate it, not even myself.
rasterman has quit [Quit: Gettin' stinky!]
Lucretia-backup has quit []
Lucretia has joined #dri-devel
oneforall2 has quit [Quit: Leaving]
nchery has joined #dri-devel
oneforall2 has joined #dri-devel
shsharma has joined #dri-devel
sdutt has quit [Ping timeout: 480 seconds]
shsharma has quit [Ping timeout: 480 seconds]
co1umbarius has joined #dri-devel
columbarius has quit [Ping timeout: 480 seconds]
nchery has quit [Ping timeout: 480 seconds]
dv_ has joined #dri-devel
gawin has quit [Ping timeout: 480 seconds]
sdutt has joined #dri-devel
nsneck_ has joined #dri-devel
nsneck has quit [Ping timeout: 480 seconds]
fxkamd has quit []
nchery has joined #dri-devel
kts_ has quit [Ping timeout: 480 seconds]
bnieuwenhuizen_ has quit []
bnieuwenhuizen has joined #dri-devel
nchery has quit [Ping timeout: 480 seconds]
sdutt has quit [Ping timeout: 480 seconds]
<graphitemaster> I assume when NV lists "Maximum number of 32-bit registers per SM" and then lists something like 64 K here, they do not mean 64,000 32-bit registers, but 64 KiB worth 32-bit registers
<graphitemaster> The other fields use KB so maybe they do mean thousands (K)
<graphitemaster> But they're power of two's so I'd assume they mean K as in 1024
<graphitemaster> What a shitty table
<imirkin> graphitemaster: yes. "shared" memory in GL compute parlance is split between registers used for shaders and for the super-shared "registers" across the SM
<graphitemaster> Yeah I know that
<graphitemaster> I just want to know if 64K 32-bit registers means 64 * 1024 * 4 bytes or 64 * 1024 bytes or 64 * 1000 * 4 bytes or 64 * 1000 bytes XD
nchery has joined #dri-devel
<imirkin> afaik 64kb worth of registers. i.e. 65536 / 4 32-bit registers.
<imirkin> although turing+ introduces "uniform" registers, not sure how those are accounted for exactly
cworth has joined #dri-devel
sdutt has joined #dri-devel
cworth has quit [Ping timeout: 480 seconds]
kts has joined #dri-devel
<mareko> airlied: I didn't actually finish FP16/mediump support - tess and GS varyings and transform feedback were the main missing items, and then some failing tests I think
<mareko> the reason I stopped is that I didn't see any perf improvement in a GLES benchmark we cared about
kts has quit [Ping timeout: 480 seconds]
<HdkR> rc1 tomorrow right?
cphealy has joined #dri-devel
benettig has joined #dri-devel
jewins has quit [Ping timeout: 480 seconds]
<cheako> I've uploaded my API dump, the most interesting frame is 4113
<cheako> I think there are a growing number of allocatememory calls when compared to freememory.
<cheako> It also seems like the engine is overzealous when re-creating the swapchain, I don't think it's beneficial to free all those images.
cworth has joined #dri-devel
mbrost has quit [Ping timeout: 480 seconds]
cworth has quit [Ping timeout: 480 seconds]
Duke`` has joined #dri-devel
maxzor has joined #dri-devel
sdutt has quit [Read error: Connection reset by peer]
itoral has joined #dri-devel
itoral_ has joined #dri-devel
itoral has quit [Ping timeout: 480 seconds]
lemonzest has joined #dri-devel
Duke`` has quit [Ping timeout: 480 seconds]
frieder has joined #dri-devel
frieder has quit []
frieder has joined #dri-devel
mattrope has quit [Read error: Connection reset by peer]
mlankhorst has joined #dri-devel
mattrope has joined #dri-devel
maxzor has quit [Remote host closed the connection]
danvet has joined #dri-devel
MajorBiscuit has joined #dri-devel
JohnnyonF has quit [Read error: Connection reset by peer]
JohnnyonFlame has joined #dri-devel
<javierm> dianders: I see... maybe danvet have some suggestions for how to do expose it through debugfs ?
* danvet has no scrollback
<danvet> not sure about no ideas, just started the first coffee :-)
<danvet> what is it?
tzimmermann has joined #dri-devel
<javierm> danvet: I suggested dianders that maybe drm_debugfs_create_files() could fit his use case
<danvet> uh my little comment about moving the debug/testing thing for panels to debugfs?
<javierm> danvet: yeah
<danvet> yes and no
<danvet> so first thing is that drm_debugfs_create_files is the wrong interface
<danvet> because you can only use it after drm_dev_register
<danvet> we had a few internships that tried to tackle it, but didn't go anywhere yet in upstream
<danvet> essentially the idea is to have an add_file interface you can call anytime before registration time
<danvet> I can dig out the patches we've gotten thus far, or melissawen
mattrope has quit [Ping timeout: 480 seconds]
<danvet> ideally we'd then do the same for connector
<javierm> danvet: correct, and the problem he had with that interface is that you can't get a drm dev from a struct drm_panel
<danvet> and drm_panel would add those files somewhere
<danvet> nah drm_device is the wrong thing anyway
<danvet> we should add it to the connector
<danvet> which has even fewer interfaces readymade for drivers, but at least no bad ones to misguide you :-/
<javierm> danvet: I see
<danvet> so I think the perfect world solution here would be to merge that
<danvet> then extend it for the subdirectories we have (well at least connector)
<danvet> then glue drm_panel in there somewhere
<danvet> unfortunately there's a lot of handwaving involved at this point
<javierm> danvet: thanks for your thoughts. It's too late on dianders' timezone but could read your comments when online again
<danvet> and even the debugfs rfc for drm_device is rather far from working state
<danvet> but also doing this properly, i.e. allowing drivers to register debugfs files at any time before registration
<danvet> and not having to care about how/when they show up
<danvet> would be really nice in general
<danvet> it's essentially how sysfs works too, and that's just the right model
<danvet> with attributes and attribute groups and all that
<javierm> danvet: I was about to mention that. That this is another thing that should be handled by the driver core model
<javierm> the use case is not DRM specific really
<danvet> javierm, so maybe the compromise between the total hack and fixing the world is to
<danvet> 1) get the drm_device infra in place roughly
<danvet> 2) add a list of drm_panel_info (NULL terminated array maybe) which drm_panel could add
<danvet> or a callback
<danvet> or something like that
<danvet> javierm, driver core model handles it for sysfs
<danvet> but debugfs is just "roll your own"
<javierm> danvet: yes I know, but no for debugfs
<javierm> danvet: exactly
<danvet> but that's an even bigger discussion
<danvet> e.g. like with drm_managed maybe if we roll something in drm first
<danvet> but yeah maybe that should also mean the infrastructure shouldn't be too drm_device specific, but attach to a more abstract struct underneath
<danvet> which we could then embed into drm_device, drm_crtc, drm_connector
<danvet> at this point it's probably 1-2 quarters of work to roll this out for someone who's good and knows drm :-/
<javierm> danvet: yeah...
<javierm> danvet: speaking about rabbit holes, should I drop the patch that adds the I2C connector type ?
<javierm> I didn't think that would had been controversial
<danvet> :-)
maxzor has joined #dri-devel
<danvet> it's a bikeshed I wouldn't load up on a tiny driver for sure ...
<javierm> danvet: yep, I will just use the Unknown type. I just thought that was an opportunity to add a I2C one because saw one for SPI
<javierm> but a panel makes much more sense to avoid user-space having to catch-up all the time and I2C/SPI doesn't tell much to the user really
<javierm> danvet: thanks again. I promise to not ask more questions now and allow you to get coffee :)
<danvet> yeah I'm tempted to just mass-rename them except they're uapi for existing drivers because we suck
<danvet> which is also why to this day i915 lies to you about connectors and stuff
<danvet> except if I missed something big time
<danvet> ideally the naming would reflect a lot more what the user sees
<danvet> but in reality we're driver developers, so they reflect what the hw looks like from the inside :-(
<emersion> there's the subconnector property
<emersion> if you want to expose both the inside and the outside
pnowack has joined #dri-devel
Company has joined #dri-devel
<danvet> epic
<danvet> emersion, subconnector was used by only some drivers for selecting the transport mode
<danvet> like dvi-d vs dvi-i or different tv-out modes
<emersion> amdgpu uses it to indicate the "real" connector
<danvet> oh lol that stuff changed then I guess
<emersion> e.g. laptop has DP → HDMI bridge
pcercuei has joined #dri-devel
<emersion> connector is DP, subconnector is HDMI
<danvet> ah right yeah that makes some sense
<danvet> it's still a mess
<emersion> another example on my machine:
<emersion> Type: DisplayPort
<emersion> "subconnector" (immutable): enum {Unknown, VGA, DVI-D, HDMI, DP, Wireless, Native} = DVI-D
itoral_ has quit [Remote host closed the connection]
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
mvlad has joined #dri-devel
<pq> javierm, awesome doom! What the window system stack like in that picture? fbdev or KMS? Xorg or something else?
nchery is now known as Guest1496
nchery has joined #dri-devel
itoral has quit [Remote host closed the connection]
nchery is now known as Guest1497
nchery has joined #dri-devel
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
tursulin has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
<javierm> pq: it's just fbdev. I also cheated because Doom complains that can't run there due the minimum resolution being 320x200 and the panel only having 128x64
Guest1496 has quit [Ping timeout: 480 seconds]
<javierm> pq: so what I did is to run on fb0 and then grab each frame, transform and write into fb1
<pq> ahaha, but hmm...
Guest1497 has quit [Ping timeout: 480 seconds]
<pq> I wonder if there is some way to trick weston/drm - Xwayland - doom/x11 to let doom run in 320x200 and then Weston scales it down to "fullscreen"
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
<pq> Xwayland would have to advertise 320x200 video mode as a possibility to Doom, then Doom does a modeset with RandR, and Xwayland emulates that with wp_viewport without actually changing the mode.
<pq> But I suspect Xwayland might refuse to advertise modes larger than what the Wayland compositor has.
mszyprow_ has joined #dri-devel
itoral has quit [Remote host closed the connection]
<javierm> pq: doom is able to upscale, the problem is with down scaling below 320x200
itoral has joined #dri-devel
<javierm> with bigger resolution it scales and you just get blurry images
<emersion> gamescope could be used to fake a large screen but… o_O
<javierm> pq: I tried to hack the original doom source to remove that constraint, but there seemeded to be too many assumptions about 320x200
<pq> javierm, yes, exactly; Xwayland would fake 320x200 mode to Doom while actually running in 128x64 Wayland desktop.
<pq> emersion, oh, that sounds better
<javierm> pq: ah, got it now. haha, that would be interesting to explore
<javierm> pq: I also considered porting https://github.com/daveruiz/doom-nano to linux
<pq> javierm, the more standard and unptached components used, the more impressive it is :-D
<javierm> pq: 100%
itoral has quit [Remote host closed the connection]
<javierm> pq: so then I just gave up and did the hack I mentioned
itoral has joined #dri-devel
<javierm> but didn't considered that xwayland lying and advertising a 320x200 resolution
<pq> Xwayland is good at lying about video modes I think, but it might refuse to do it with modes larger than actual, I'm not sure.
<pq> the usual use case is upscaling and not downscaling, indeed
<pq> although... hmm.
<javierm> yeah. I never had this much fun working on a driver :)
Ziemas has joined #dri-devel
mszyprow_ has quit [Ping timeout: 480 seconds]
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
<linkmauve> Weston itself can already fake a different mode, if the hardware supports plane scaling (i915 does), in an [output] section set mode=320x200 and the primary plane for this output will be 320×200, and then scaled to the actual monitor’s size.
<linkmauve> This is what I use to test hidpi for instance.
<pq> linkmauve, uhh... how does that work? 'mode' is supposed to change the video mode, not only the FB size.
<linkmauve> It is a video mode change, to userland it looks like the screen grew more pixels than it actually has.
<pq> I would be surprised if ssd1307 driver supported any other video modes than the native one, let alone mode bigger than the native one.
<pq> linkmauve, so you get the big video mode on HDMI or whatever, but then the monitor scales it down?
<pq> but then plane scaling is not at play there
<pq> not that ssd1307 supported plane scaling to begin with, I believe
itoral has quit [Remote host closed the connection]
<linkmauve> Just tested with my 1366×768 LVDS, the connector stays in 1366×768, but its crtc says Mode: 1920x1080@59.96 userdef nhsync pvsync
<linkmauve> I’m pretty sure LVDS doesn’t support scaling at all, so it’d be in the encoder maybe?
itoral has joined #dri-devel
<pq> where do you see connector more?
<linkmauve> Modes
<linkmauve> Queried it with drm_info, it says:
<linkmauve> └───1366x768@60.11 preferred driver nhsync nvsync
<javierm> pq: correct, the driver only supports its only native mode. Which in fact is hardcoded in the Device Tree
<pq> hmm, so you are using a custom modeline, and then the *kernel driver* decides to fake it, because it know the panel can only run at a single specific mode.
<pq> linkmauve, Modes on what object?
<linkmauve> On the CRTC.
<pq> then you are *
<linkmauve> And correct about the custom modeline.
<javierm> pq: I guess that could expose a 320x200 mode to user-space and then scale down in the driver. Just like we do with the pixel format :P
<linkmauve> pq, here is the entire drm_mode output: https://linkmauve.fr/files/custom-mode.txt
<linkmauve> javierm, I believe that’s what i915 does here, but at scanout instead of in software.
<pq> linkmauve, ah, connector does list modes by EDID, but it won't show what's happening on the cable.
<javierm> linkmauve: I see. Interesting
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
<pq> linkmauve, ok. What you see is not Weston at all. It is the kernel driver allowing an unlisted mode and magically deciding to scale it instead of actually using it.
<pq> or maybe the panel has a scaler
<linkmauve> That’s what I thought as well.
<vsyrjala> it's in the pipe (~=crtc)
<vsyrjala> with intel hw that is
<pq> This won't work on a panel that does not have a scaler and a driver that does not scale.
<pq> IOW, Weston is not faking. The driver is.
<linkmauve> Right.
<pq> Weston *could* fake modes with a primary plane that supports scaling, but that's not implemented.
<pq> Weston could also fake with renderer scaling, but that's not implemented either, though daniels has a MR for something like that.
<pq> but it's only for upscaling I think
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
heat has joined #dri-devel
<linkmauve> Oh, that’d be interesting. ^^
<javierm> pq, linkmauve: I never thought that sharing a picture of doom would spark a conversations like this
<javierm> it seems gfx land is full or rabbit holes
<javierm> *of
itoral has quit [Remote host closed the connection]
itoral has joined #dri-devel
heat has quit [Ping timeout: 480 seconds]
<danvet> tomba, pinchartl since I think you're the last two who actively cared about fbdev, feel like taking a look at "[PATCH 01/21] MAINTAINERS: Add entry for fbdev core" ?
<daniels> pq: yeah, renderer-follows-scale only does upscale (i.e. renderer buffer is an integer multiple smaller than the display mode), but it could reasonably easily be adapted
<daniels> I've been waiting for some of Derek's region work to coalesce before I do tho, because that will make things far less error-prone ...
rasterman has joined #dri-devel
flacks has quit [Quit: Quitter]
<pq> javierm, haha, well, isn't userspace almost always the biggest hurdle in KMS development? :-)
flacks has joined #dri-devel
<javierm> pq :) I'm just joking. Learning a lot from these discussions since I'm a newbie in gfx
tobiasjakobi has joined #dri-devel
thellstrom has joined #dri-devel
<danvet> demarchi, btw want drm-misc commit rights so it's simpler to push the all over refactorings you're doing?
frieder_ has joined #dri-devel
frieder has quit [Read error: Connection reset by peer]
devilhorns has joined #dri-devel
thellstrom has quit [Ping timeout: 480 seconds]
thellstrom has joined #dri-devel
gawin has joined #dri-devel
heat has joined #dri-devel
itoral has quit [Remote host closed the connection]
<graphitemaster> Conceptually is there really anything different about SSBOs and UBOs when it comes to the driver?
<graphitemaster> I would assume drivers still attempt to marshal small SSBOs as uniforms
<cheako> I've uploaded my API dump, the most interesting frame is 4113 https://drive.google.com/drive/folders/1u5dTh1esfT-22M3q9-hL5glf_xf1eUac?usp=sharing I think there are a growing number of allocatememory calls when compared to freememory. It also seems like the engine is overzealous when re-creating the swapchain, I don't think it's beneficial to free all those images after reciving a VK_SUBOPTIMAL_KHR. I assume something like the
<cheako> awk https://pastebin.com/65fhiHGR would show an even number of allocs-free, but instead this value increases. Validation layers doesn't show it.
kts has joined #dri-devel
jewins has joined #dri-devel
sdutt has joined #dri-devel
JohnnyonFlame has quit [Ping timeout: 480 seconds]
off^ has quit [Remote host closed the connection]
<dianders> javierm / danvet: Thanks for your thoughts on my debugfs woes. At least now I know I'm not crazy and didn't just miss something super obvious. ;-) I'm not convinced I'll manage to find time to do anything quite as major as being discussed. What about something even simpler that moves us in a baby step? Add a debugfs API to "drm_panel" for panels to use. This can be the right API for panels to use long run but for now it doesn't go
<dianders> further than the panel. Create a top-level "panel" dir in debugfs and then a sub-dir for each panel device under there owned by each panel. Since debugfs isn't ABI this could move later if/when we find a way to hook this into drm more correctly.
<danvet> dianders, yeah, but maybe we should put the panel under the existing connector debugfs directory
<danvet> that should be doable I think
<danvet> dianders, also maybe an option is that the info file also points at the parent object
<danvet> but that can be added later on
<danvet> since it's probably better to make the interfaces specific
<dianders> danvet: The existing connector directory = something like /sys/kernel/debug/dri/1/eDP-1 ?
<danvet> iow some drm_panel_add_debugfs() and then some magic to make it show up
<danvet> yeah
<danvet> maybe that's already too much screaming, dunno
<dianders> danvet: I just couldn't figure out how to do that. The panel stuff is pretty disconnected from everything else DRM. Even more so now that there's no more drm_panel_attach...
<danvet> as long as panel drivers only ever call drm_panel_add_debugfs then it shouldn't matter much how we wire it up like you say
<danvet> dianders, we can't set it up from the panel bridge helpers?
<javierm> the good thing is what dianders mentioned, that debug is not an ABI so could be done incrementally
<danvet> like worst case it needs a bunch of calls to a drm_panel_actually_create_the_debugfs_stuff_now(panel, connector);
<dianders> danvet: I don't think we're guaranteed that the panel bridge helpers are used in any particular case, are we?
jfalempe has quit []
<danvet> not the greatest, but also not the worst
<danvet> dianders, yeah but if we take care of the 90% case and encourage people to use more of the standard stuff
<danvet> and allow the other 10% to work too
<danvet> then that's good enough I think
<dianders> danvet: OK. I'll try to find some time later today or tomorrow and dig to see if one of those two options works. Either trigger it off the panel bridge helpers or find a magic place to call drm_panel_actually_create_the_debugfs_stuff_now(). Gotta run for the moment. Thanks!
kts has quit [Quit: Konversation terminated!]
jfalempe has joined #dri-devel
jfalempe has quit []
FireBurn has joined #dri-devel
FireBurn has quit []
FireBurn has joined #dri-devel
jfalempe has joined #dri-devel
FireBurn has quit [Remote host closed the connection]
FireBurn has joined #dri-devel
fxkamd has joined #dri-devel
Haaninjo has joined #dri-devel
gawin has quit [Ping timeout: 480 seconds]
<jenatali> Any piglit experts want to help me figure out how https://jenatali.pages.freedesktop.org/-/mesa/-/jobs/18355086/artifacts/summary/results/spec@arb_gpu_shader_fp64@execution@built-in-functions@fs-frexp-dvec4-only-exponent.html is supposed to work? Looks like the GLSL 1.40 directive is forcing Mesa to consider this a compat 3.1 shader, and the extension table doesn't consider fp64 supported until compat 3.2
<jenatali> imirkin: Since you're usually helpful for this kind of thing ^^
mattrope has joined #dri-devel
<imirkin> jenatali: the GLSL 1.40 directive has nothing to do with mesa
<imirkin> it tells piglit that it wants at least GLSL 1.40
<imirkin> which in turn means GL 3.1+
<jenatali> It causes a #version 140 to be added into the shader
<imirkin> sure
<imirkin> is that a problem?
<jenatali> That causes Mesa to reject the fp64 extension, as far as I can tell
<imirkin> let's seeee...
<jenatali> Since that extension isn't supported until compat 3.2
<imirkin> huh. that's weird.
<imirkin> ok, so the difference is that you must be getting a compat context, whereas on linux you probably end up with a core context
<jenatali> I guess the shader doesn't explicitly ask for compat...
<imirkin> the ext, in mesa, requires core or GL compat 3.2+. which is _weird_
<jenatali> Yeah exactly. Guess I'll try to figure out why that's happening
<imirkin> so basically the platform GL context creation/picking logic is making slightly different decisions
<imirkin> BUT
<imirkin> i see no reason why the ext won't work with a GL 3.1 compat context
<imirkin> tarceri: 9f77a9729eb62d - do you remember why you picked GL 3.2 as the compat cut-off?
<FireBurn> I'm seeing messages like "mesa: for the --simplifycfg-sink-common option: may only occur zero or one times!" being generated
<FireBurn> I think that was fixed ages ago my Marek, should I be worried that it's back?
<pendingchaos> obviously they can't be in ssbos (not because the spec disallows it, but because it doesn't say how that would work),
<pendingchaos> anyone know what exactly are the rules for opaque types like OpTypeImage in SPIR-V?
<pendingchaos> but what about function/private variables? this is mostly disallowed in glsl, but I can't find anything in the spir-v spec about this
<jenatali> pendingchaos: You can pass them as function args for sure. I believe function-local are disallowed except for SampledImage constructed from image + sampler
<jenatali> imirkin: Found the difference. The dri frontend treats 3.1 as core, but the wgl frontend treats 3.1 as compat
<imirkin> jenatali: so with 3.1, there is no core / compat
<imirkin> it's all 3.1
<imirkin> but you might expose GL_ARB_compatibility. or you might not.
<jenatali> With 3.1 it's up to the implementation whether it returns the compat extension (i.e. a compat context) or not, yeah
<imirkin> core / compat separation came with 3.2
<imirkin> BUT
<imirkin> when you ask for some context on linux (e.g. 3.1)
<imirkin> the driver will just give you e.g. GL 4.6
<imirkin> perhaps that's not the case on windows?
<jenatali> Ehh only if max compat is < 3.1, so maybe that's not what I was looking for
<imirkin> the diff might also be in what piglit (or waffle) requests
<imirkin> jenatali: what do you get when you run "bin/glinfo" in piglit?
<imirkin> do you get GL 3.3? or some earlier version?
<jenatali> Well I'm testing the last extension for 4.0, so I'm getting 4.0
<imirkin> when you run that piglit glinfo thing, right?
<jenatali> Yep
<imirkin> hm ok
<imirkin> iirc that doesn't ask for anything too special as far as context creation goes
<imirkin> does it list GL_ARB_gpu_shader_fp64?
<jenatali> Yep
<imirkin> what if you add GL >= 3.1 to the shader_test?
<imirkin> (to the [require] section)
<jenatali> Ah, ok I found the real logic I was looking for, it's in glx
<jenatali> https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/glx/dri_common.c#L464 - defaults to core if no profile bit is in the attribs
<imirkin> oh right. well for a long time we didn't support compat >= 3.1
<imirkin> anyways, tbh i think it'd be totally fine to reduce the GLL requirement to 3.1 for that ext
Duke`` has joined #dri-devel
<imirkin> it was probably made 3.2 to continue not exposing it on intel compat contexts
<imirkin> since intel didn't support compat in 3.1+
<imirkin> but that's changed now too
<imirkin> (i think)
<jenatali> imirkin: https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_gpu_shader_fp64.txt: "OpenGL 3.2 and GLSL 1.50 are required."
<jenatali> The test is wrong, it needs to require GLSL 1.5, not 1.4
<imirkin> yeah, but we tend to relax things a bit
<imirkin> oh hm
<imirkin> the other tests want GLSL 1.50 too
<imirkin> e.g. fs-frexp-dvec4.shader_test
<imirkin> so that one's just the odd man out
<imirkin> i guess it's fine then?
<jenatali> Yeah. Seems that way. Fun
<imirkin> a few of them hve 1.40
<imirkin> but most have 1.50+
<jenatali> Yep, I'll prep a test PR
<jenatali> Thanks for the help, as usual :)
<imirkin> yw
sdutt has quit []
sdutt has joined #dri-devel
gawin has joined #dri-devel
<gawin> can someone assign Marge? (mr already has rb from Emma) thx https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13226
<imirkin> gawin: i don't see a record of that in the MR comments
<gawin> resolved thread
<imirkin> the one i started. heh. didn't expect anholt's comment in there :)
<imirkin> gawin: done
<gawin> in the end I used your suggestion, if suggested by two people then probably it's objectively better.
<gawin> thanks
<imirkin> gawin: the do { } while (foo = foo->next) thing is a pretty common pattern
<imirkin> gawin: fwiw i'm always wary of for loops with weird "next" code
<imirkin> but obv from a runtime perspective, it's all the same
<gawin> for me assignments in c are tricky (as quiet casting in background can happen, especially if macros are used)
maxzor has quit [Ping timeout: 480 seconds]
<sravn> dianders, danvet: We could add the debugfs stuff in the pnale bridge, I think that would be a better fit than adding it to drm_panel. This would also fit the idea that we should (maybe) move over to always use a bridge between the display driver and the panel.
<sravn> I wanted to type panel bridge
<sravn> Lots of things has happended while I was away so maybe the bridge ideas have changed since, but I liked how things became simpler with the display driver <=> bridge <=> panel model
i-garrison has quit []
i-garrison has joined #dri-devel
maxzor has joined #dri-devel
<demarchi> danvet: that would be helpful
nchery is now known as Guest1528
nchery has joined #dri-devel
ybogdano has joined #dri-devel
gouchi has joined #dri-devel
Guest1528 has quit [Ping timeout: 480 seconds]
<anholt> austriancoder: looks like gc2000 is out of disk space. have you set up a docker-gc cronjob?
MajorBiscuit has quit [Ping timeout: 480 seconds]
<jenatali> imirkin: Any thoughts on this one? https://jenatali.pages.freedesktop.org/-/mesa/-/jobs/18355086/artifacts/summary/results/spec@arb_gpu_shader_fp64@execution@fs-indirect-temp-double-dst.html - looks like "pick" and "pick2" are getting optimized out somehow
<jenatali> I suspect the test is missing some other extension requirement that adds support for temp indexing
<imirkin> no
<imirkin> that's allowed in GLSL 1.10 iirc
* jenatali sighs
<imirkin> w.t.f.
<imirkin> that ... should work
<imirkin> surprise surprise - i get "pass"
<imirkin> maybe check the nir that it gets compiled to? dunno
<jenatali> Yeah, passes on softpipe on Windows too, so not a platform difference, just a driver difference
<imirkin> perhaps the nir linker screws up?
Daanct12 has joined #dri-devel
<imirkin> do you have some sort of uniform specialization thing?
mclasen has joined #dri-devel
<imirkin> perhaps you have a pass which, uh, "optimizes" this sort of thing out?
<jenatali> This "fail to find" is coming from mesa/main, does that rely on which linker is being used?
<imirkin> sorta like gcc 2.96 did to my for loops
<imirkin> well, it relies on the shader contents
<imirkin> like let's say "pick" were _really_ unused
<imirkin> then this would be expected -- it wouldn't have a location assigned to it
<imirkin> so something somewhere is dropping the usage of "pick"
<imirkin> but i dunno how deep in the pipeline that dropping has to be
<imirkin> the driver normally can do whatever
<imirkin> so i suspect the nir linker is the "last spot" which can affect this
<imirkin> can you use the regular linker to see if everything works?
<jenatali> I'll keep digging, starting there, yeah
cworth has joined #dri-devel
Danct12 has quit [Ping timeout: 480 seconds]
devilhorns has quit [Remote host closed the connection]
<jenatali> Yup, the variables are gone by the time it gets to the driver
devilhorns has joined #dri-devel
rellla has joined #dri-devel
<imirkin> iirc there's some uniform specialization thing available
<imirkin> i have no information beyond its potential existence
JohnStultz[m] has joined #dri-devel
<jenatali> Looks like it's getting nuked from nir_remove_dead_variables somehow
<imirkin> yeah. so just like gcc 2.96 was optimizing my loops then -- "for () { do stuff }" -- we don't _really_ need that, the program will run much faster without it.
<imirkin> (i'm definitely not still bitter about that, 20+ years later)
<jenatali> Er, to be more specific, nir_remove_dead_variables is killing the function_temp array somehow, and once that's gone, pick and pick2 becomes usesless
<jenatali> Does anybody else use the NIR linker? I searched and I only saw zink with failures for this test in the logs
<imirkin> without answering that, i can say that it's fairly new
<ccr> it takes no time to execute if there's no code to run!
<imirkin> exactly.
<imirkin> it _did_ run a lot faster
<austriancoder> anholt: should be working again.. yeah time for a docker-gc job.
<imirkin> the more annoying thing was that gcc 2.96 wasn't a real release - it was just a CVS checkout RH made at some random point.
<imirkin> and shipped with RH 6 or so?
<ccr> something like that
* ccr gets flashbacks from gcc vs egcs "wars"
<jenatali> Yeah ok, vars_to_ssa is seeing that the load is undef if it pick and pick2 aren't the same, and therefore the compiler assumes that they have to be the same, which means that the temp array is considered unused, and therefore it and the uniforms are all dead
<imirkin> i see no problem with that logic.
gawin has quit [Ping timeout: 480 seconds]
<jenatali> Yep. Test isn't sufficiently smart to circumvent a smart compiler
mbrost has joined #dri-devel
<jenatali> Yup. Initializing the array fixes the test
Daanct12 is now known as Danct12
frieder_ has quit [Remote host closed the connection]
cworth has quit [Ping timeout: 480 seconds]
<imirkin> jenatali: tbh i dunno what level of intelligence is "allowed" for optimizing such things out
<jenatali> Yeah
<imirkin> (from the uniform API)
<cheako> does overlay layer depend on internals of mesa?
<imirkin> although afaik it's "any", so this could be fine
<cheako> I'm looking to write a vulkan layer.
<pendingchaos> cheako: I think it's supposed to work with non-mesa drivers, if that's what you mean
<pendingchaos> it uses stuff in src/util/ and src/vulkan/util though
<cheako> I can't figure out where it's populating vtable, does it peek inside the opaque vkinstance handle?
<danvet> mlankhorst, mripard_ tzimmermann ack for adding demarchi in drm-misc?
glLiquidAcidARB has joined #dri-devel
<zmike> imirkin: this is actually the worst
<imirkin> :(
<imirkin> sorry. i shouldn't have looked, and just let someone else slap a r-b on there
<imirkin> what you don't know can't hurt you!
<zmike> there's a gtf test that does the same thing
<imirkin> (esp when it relates to xfb of gl_PointSize)
<zmike> so in any case it's probably relevant
<zmike> I think I need a spec bug
<imirkin> why doesn't this Just Work btw? does vk do the GLES thing of requiring emitting a gl_PointSize?
<zmike> yes
<zmike> and according to opengl (core) spec, the pointsize value that's used depends on the state of that enum
<imirkin> ah. and so then you helpfully stick in gl_PointSize = glPointSize() value. but that doesn't gel with the contents of the shader...
<zmike> but it doesn't explicitly say whether that behavior also affects xfb
<imirkin> i would assume that it'd be undefined to xfb gl_PointSize without setting it in the shader
<imirkin> i _sorta_ assume that without that value set, you're expected to xfb the thing in the shader anyways, even though the glPointSize is different
<imirkin> but ... not 100% sure
<imirkin> i'd just export 2 things
<imirkin> (in the presence of xfb)
<zmike> actually the worst
<imirkin> xfbgl_PointSize + realgl_PointSize :)
ybogdano has quit [Remote host closed the connection]
tobiasjakobi has quit [Ping timeout: 480 seconds]
<imirkin> i.e. aka a ton of work for a corner case no one will hit
<zmike> I'm hitting it :/
<imirkin> right. i mean "no actual users"
cworth has joined #dri-devel
<demarchi> danvet: mlankhorst mripard_ tzimmermann just Cc'ed you all in https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/416
<airlied> zmike: yes xfb should handle the shader one only
<zmike> I'm already deep into an even bigger disaster
gouchi has quit [Remote host closed the connection]
nchery has quit [Ping timeout: 480 seconds]
nchery has joined #dri-devel
devilhorns has quit [Remote host closed the connection]
<airlied> zmike: I think we should probably disable using FP16_CONSTBUF
<zmike> airlied: I think the problem is not also using PIPE_SHADER_CAP_GLSL_16BIT_CONSTS?
<zmike> or at least that's what radeonsi does and things seem fine there
alanc has quit [Remote host closed the connection]
alanc has joined #dri-devel
<airlied> zmike: I think glGetUniform is broken on radeonsi as well
<zmike> oof
<airlied> just nobody has tested GTF
<zmike> isn't radeonsi conformant?
<airlied> doesn't mean anyone runs the test suite
<airlied> not sure when gl4.6 was last submitted, I should test it here I suppose
<zmike> but surely it would have had to run at some point
<zmike> alright, well if that's what we gotta do then I guess that's what we gotta do
<imirkin> zmike: potentially at a point priot to the 16-bit consts thing. that's fairly new.
<imirkin> prior*
<airlied> and mareko did say they never finished fp16/mediump off properly
<zmike> cool cool cool
ngcortes has joined #dri-devel
gawin has joined #dri-devel
<zmike> and now I'm making more awfulness for xfb
<zmike> hooray
cworth has quit [Ping timeout: 480 seconds]
gawin has quit [Ping timeout: 480 seconds]
cworth has joined #dri-devel
fxkamd has quit []
<mareko> what is GTF?
<airlied> mareko: kc-cts closed source conformance bits
fxkamd has joined #dri-devel
<mareko> thanks
glLiquidAcidARB has quit [Remote host closed the connection]
tzimmermann has quit [Quit: Leaving]
i-garrison has quit []
<mlankhorst> demarchi: don't have i915 commit rights yet btw?
<jenatali> Branch point is today, right?
i-garrison has joined #dri-devel
<airlied> zmike: care to add llvmpipe to it so I can ack it easier :-P
<zmike> k
<zmike> airlied: you mean the label in gitlab or ?
<zmike> llvmpipe doesn't export the cap
oneforall2 has quit [Quit: Leaving]
<Sachiel> jenatali: yes
<jenatali> Sad face, just too slow to get GL4 into it
<airlied> zmike: yes it does, but it's hidden in gallivm
<zmike> oh
<zmike> obviously
<Sachiel> cram it all in now, then bugfix your way through the next couple of weeks
<zmike> airlied: k
mbrost_ has joined #dri-devel
<jenatali> Alright, only 2 (hopefully easy) extensions away from GL4.2 now, cool
mclasen has quit [Ping timeout: 480 seconds]
<ccr> \:D/
mbrost has quit [Ping timeout: 480 seconds]
oneforall2 has joined #dri-devel
nchery is now known as Guest1551
nchery has joined #dri-devel
<airlied> jenatali: people only care about compute shaders :-P
<jenatali> Got those!
Guest1551 has quit [Ping timeout: 480 seconds]
ybogdano has joined #dri-devel
alyssa has joined #dri-devel
<alyssa> Mali has lots of data structures where different words are interpreted different ways depending on a "type" word at the start.
<alyssa> (Think: a "depth" field only existing in a Texture descriptor if it's a 3D texture)
<alyssa> GenXML can handle this by overlaying all the possibe combinations, but this makes for verbose dumps and seems a bit unsafe.
crabbedhaloablut has joined #dri-devel
<alyssa> Considering augmenting our XML with `if="mode=3D"` type properties
<alyssa> but not sure if there's an established way to handle this in existing GenXML's
<alyssa> Kayden: anholt: ^ not sure if Intel or Broadcom hit this in their respective GenXMLs
<imirkin> there's definitely some funny business in the media things on intel. i don't think it was handled particularly well in the genxml though.
<alyssa> *nod*
<imirkin> iirc there are just a bunch of structs for the "class"-based things, and then the main struct just has a bag of bits without any info on how to interpret it
<alyssa> *nod*
<imirkin> airlied: did you never land the crocus media thing?
<airlied> imirkin: no I had some license rabbit holes to descend and got distracted
<imirkin> delightful
<airlied> yeah turns out the gpu vendors don't pay the license fees you'd expect
<imirkin> alyssa: look in e.g. gen6.xml at INTERFACE_DESCRIPTOR_DATA
<alyssa> ah reading Intel XML is weird
<imirkin> oh, but there i force the type
<imirkin> but in reality it can be several things
<alyssa> subtly different from the Panfrost XML >.<
<imirkin> we were just lazy and only did one :)
<imirkin> (hard work sometimes pays off later, but laziness always pays off now)
<alyssa> mmh
<alyssa> meh, guess I'll add a vendor extension to Panfrost GenXML :sweat:
<alyssa> far from the first *sweats*
mvlad has quit [Remote host closed the connection]
<imirkin> in rnndb, we sometimes use variants
<imirkin> to separate things out
<imirkin> but then something has to define what variant it is
cphealy has quit [Ping timeout: 480 seconds]
<demarchi> mlankhorst: I do
maxzor_ has joined #dri-devel
<bl4ckb0ne> has there been any "break" between vk 1.2 and 1.3?
<airlied> shouldn't be
<bl4ckb0ne> my loader is 1.3.204 but my physical device is 1.2.195
<bl4ckb0ne> im getting "Invalid physicalDevice" from the loader when calling a function
<bl4ckb0ne> well, vkcube seems to be working fine
<bl4ckb0ne> the ext in question is VK_EXT_acquire_drm_display, im on polaris10
mdnavare has quit [Read error: Connection reset by peer]
mdnavare has joined #dri-devel
shoragan has quit [Ping timeout: 480 seconds]
<airlied> alyssa: the cap break glGetUniform, and Khronos guideance so far is that other impls don't do that
maxzor_ has quit [Remote host closed the connection]
maxzor_ has joined #dri-devel
JohnnyonFlame has joined #dri-devel
<alyssa> airlied: grumble... what's involved in fixing the cap?
<airlied> fixing the glGetUniform path I suppose
<alyssa> Thanks for volunteering C:
<imirkin> alyssa: that was a "note to self" presumably? :)
baryluk has joined #dri-devel
Koniiiik has joined #dri-devel
rcf has quit [Quit: WeeChat 3.2.1]
Duke`` has quit [Ping timeout: 480 seconds]
danvet has quit [Ping timeout: 480 seconds]
rcf has joined #dri-devel
<graphitemaster> I really dislike AMD's approach to open source. "Open" stuff which is just repos of docs and no code or worse - precompiled binaries and no code - this is actually worse than NVs not giving anything *shrug*
pcercuei has quit [Quit: brb]
<graphitemaster> And the actual blog post has a link to it
pcercuei has joined #dri-devel
<imirkin> yeah, links in github tend to go stale pretty quickly
<imirkin> i recently reported such a thing to another company (in an unrelated field)
<imirkin> to my *vast* surprise they fixed it not by updating the github link but by making the original link work. i guess too many things had the old link :)
nchery has quit [Ping timeout: 480 seconds]
maxzor_ has quit [Remote host closed the connection]
<graphitemaster> I was able to find more information of what I needed in the Cuda documentation than what I'm able to find in AMDs OpenGPU docs and "open" code.
maxzor_ has joined #dri-devel
<graphitemaster> I'd consider that a bit of a soft failure since NV has a reputation for being closed as hell lol.
<imirkin> nvidia has always had excellent developer docs for cuda & co
<imirkin> (ok, i dunno about literally always ... were those docs really that great for cuda 1.0? probably not. but for a long time)
<graphitemaster> Bonus points you can actually navigate the cuda docs in a terminal webbrowser
<imirkin> (they certainly beat trying to do compute in a vertex shader, irrespective of the amount of docs...)
<graphitemaster> These gpu open docs need 50 js files to load the damn nav bar
pcercuei has quit []
<imirkin> yeah, i always try my best to minimize that for any web stuff i do
<imirkin> but it seems like most people don't give a shit
cphealy has joined #dri-devel
<graphitemaster> I think Fabien Sanglard has the best website I've ever visited: https://fabiensanglard.net/
<graphitemaster> That thing is so fast
<graphitemaster> Like damn this loads so nice https://fabiensanglard.net/cuda/index.html
degasus has joined #dri-devel
degasus is now known as Guest1567
nchery has joined #dri-devel
Guest1567 is now known as degasus
<graphitemaster> Anyways I need to compute occupancy on AMD GPUs and I can't find any information :3
gawin has joined #dri-devel
javierm has joined #dri-devel
lplc has quit [Ping timeout: 480 seconds]
dj-death has joined #dri-devel
<pendingchaos> radeon_info is initialized in ac_gpu_info.c
<pendingchaos> and for GFX10+ with wave64, we multiply it by 2 so it can be compared with wave32
<pendingchaos> not sure if the fragment shader lds stuff is correct
<pendingchaos> result is waves per simd
kgz has joined #dri-devel
Prf_Jakob has joined #dri-devel
<graphitemaster> pendingchaos, I assume waves in this means wavefronts (i.e groups of 64 threads) - just checking to make sure, no one is consistent with the terminology - I've seen waves used to refer to individual threads in a wavefront which is really confusing
<HdkR> Waves being used to refer to individual threads is just wrong
maxzor is now known as Guest1570
maxzor_ is now known as maxzor
<maxzor> Maybe all that's needed is Fabien Sanglard starting writing blog posts about AMD stuff
<maxzor> graphitemaster, there are various levels of open-source, piles of code without comments nor design considerations, nor any educated engineer making any significant documentation effort is a ring1 layer?
<maxzor> repos of doc that are left to rot are something - https://github.com/RadeonOpenCompute/ROCm_Documentation
mlankhorst has quit [Ping timeout: 480 seconds]
<pendingchaos> waves as in subgroups (warps with nv)
<pendingchaos> not 64 invocations/threads/lanes in the case of wave32
<graphitemaster> I was looking at this earlier
<graphitemaster> The formulas are low res PNGs on dark GH background, unreadable
<graphitemaster> But yeah these docs are yikes, I should check the ROC one
lplc has joined #dri-devel
<graphitemaster> Lets see how good these actually are, going to play around
<maxzor> is the rocm-smi python wrapper around the c api not enough for your need?
<graphitemaster> Not to use at runtime in a shipped product to dynamically pick kernels and adjust local size
<graphitemaster> I really dislike how this information is presented by both AMD and NV as static developer profiling markers and not actually exposed as information in APIs for writing code.
<graphitemaster> I mean aside from cuda which has all this stuff
pcercuei has joined #dri-devel
pnowack has quit [Quit: pnowack]
JohnnyonFlame has quit [Ping timeout: 480 seconds]
unidan has joined #dri-devel
oneforall2 has quit [Quit: Leaving]
cworth has quit [Ping timeout: 480 seconds]
rasterman has quit [Quit: Gettin' stinky!]
pcercuei has quit [Quit: dodo]