ChanServ changed the topic of #dri-devel to: <ajax> nothing involved with X should ever be unable to find a bar
pcercuei has quit [Quit: dodo]
columbarius has joined #dri-devel
co1umbarius has quit [Ping timeout: 480 seconds]
heat_ has joined #dri-devel
heat has quit [Read error: Connection reset by peer]
heat_ has quit [Remote host closed the connection]
heat has joined #dri-devel
kts has quit [Quit: Leaving]
heat has quit [Remote host closed the connection]
heat has joined #dri-devel
heat has quit [Remote host closed the connection]
heat has joined #dri-devel
heat has quit [Ping timeout: 480 seconds]
<Company> so it turns out my shader compile wasn't inflooping
<Company> after 12 minutes, the rpi had compiled it
<Company> I suspect it's screwing up dead code elimination and inlining too much
oneforall2 has quit [Remote host closed the connection]
oneforall2 has joined #dri-devel
heat has joined #dri-devel
heat has quit [Ping timeout: 480 seconds]
Danct12 has joined #dri-devel
<karolherbst> dcbaker: fyi, I'll work on a meson/rust/bindgen feature I want to use with 1.3 and it shouldn't take too much time. bindgen-0.64 (with fixes and support for C enums in 0.65) can generate C wrapper files for static inline functions, so one doesn't have to do it manually anymore. I still want to think about how to design the meson side but I think rust.bindgen should return an array of files (0: .rs 1: .c) and adding an optional `output_
<karolherbst> inline_wrapper` argument which then adds the required args to `bindgen`
<karolherbst> or something
<karolherbst> this way it stays backwards compatiblwe
<karolherbst> but that probably also requires meson to check for bindgen's version.. probably? dunno
zehortigoza has quit [Ping timeout: 480 seconds]
zehortigoza has joined #dri-devel
tristianc6704 has quit []
tristianc6704 has joined #dri-devel
mediaim has quit [Ping timeout: 480 seconds]
Duke`` has joined #dri-devel
_DOOM_ has joined #dri-devel
crabbedhaloablut has joined #dri-devel
junaid has joined #dri-devel
tristianc6704 has quit []
tristianc6704 has joined #dri-devel
tristianc6704 has quit []
Company has quit [Quit: Leaving]
tristianc6704 has joined #dri-devel
tristianc6704 has quit [Read error: No route to host]
Duke`` has quit [Ping timeout: 480 seconds]
Duke`` has joined #dri-devel
Duke`` has quit [Ping timeout: 480 seconds]
Duke`` has joined #dri-devel
tristianc6704 has joined #dri-devel
fab has joined #dri-devel
pekkari has joined #dri-devel
pekkari has quit []
pekkari has joined #dri-devel
pekkari has quit []
sghuge has quit [Remote host closed the connection]
sghuge has joined #dri-devel
pekkari has joined #dri-devel
sghuge has quit [Remote host closed the connection]
junaid has quit [Ping timeout: 480 seconds]
sghuge has joined #dri-devel
ungeskriptet6 has quit []
ungeskriptet6 has joined #dri-devel
ungeskriptet6 has quit []
ungeskriptet has joined #dri-devel
sima has joined #dri-devel
_DOOM_ has quit [Quit: WeeChat 4.0.4]
mediaim has joined #dri-devel
<mediaim> Yeah well my phone has hardware tap on, it was arranged at overseas, I have not had very much resources to buy a new one.
junaid has joined #dri-devel
<mareko> zmike: why don't you just use implicit sync provided by the kernel?
<mareko> you don't need any synchronization code in userspace, you just need a buffer list per submit (muhahaha)
camus has joined #dri-devel
<kode54> what would I need to do to actually list what's happening in an apitrace log?
<kode54> somehow, the last API calls in this D3D11 log cause DXVK to crash the GPU when I use xe.ko
An0num0us has joined #dri-devel
pekkari has quit [Ping timeout: 480 seconds]
kts has joined #dri-devel
pcercuei has joined #dri-devel
gouchi has joined #dri-devel
kts has quit [Ping timeout: 480 seconds]
<karolherbst> anyway, don't depend on this getting merged soon, brecause after a meson req bump I still want to wait a few weeks even after the release
mediaim has quit [Read error: Connection reset by peer]
kts has joined #dri-devel
kts has quit [Remote host closed the connection]
Danct12 has quit [Quit: What if we rewrite the code?]
pekkari has joined #dri-devel
pekkari has quit []
pekkari has joined #dri-devel
pekkari has quit []
pekkari has joined #dri-devel
pekkari has quit []
pekkari has joined #dri-devel
Danct12 has joined #dri-devel
pekkari has quit [Quit: Konversation terminated!]
pekkari has joined #dri-devel
pekkari has quit []
pekkari has joined #dri-devel
qyliss has quit [Quit: bye]
kts has joined #dri-devel
qyliss has joined #dri-devel
pcercuei has quit [Quit: brb]
kts has quit []
kts has joined #dri-devel
pekkari has quit [Quit: Konversation terminated!]
pekkari has joined #dri-devel
pekkari has quit []
pekkari has joined #dri-devel
qyliss has quit [Quit: bye]
qyliss has joined #dri-devel
junaid has quit [Remote host closed the connection]
lina has quit [Ping timeout: 480 seconds]
junaid has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Read error: Connection reset by peer]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
lina has joined #dri-devel
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
<zmike> mareko: šŸ¤•
tyalie has joined #dri-devel
tyalie has quit [Read error: Connection reset by peer]
pcercuei has joined #dri-devel
tyalie has joined #dri-devel
tyalie has quit [Read error: Connection reset by peer]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
qyliss has quit [Quit: bye]
gouchi has quit [Remote host closed the connection]
tyalie has quit [Read error: Connection reset by peer]
tyalie has joined #dri-devel
tyalie has quit [Remote host closed the connection]
tyalie has joined #dri-devel
tyalie has quit [Read error: Connection reset by peer]
tyalie has joined #dri-devel
qyliss has joined #dri-devel
qyliss has quit []
qyliss has joined #dri-devel
pekkari has quit [Quit: Konversation terminated!]
mediaim has joined #dri-devel
<mediaim> Such a simple example, those pointer dereferences can be traced well, they end up as loads, that can be modified
qyliss has quit [Quit: bye]
qyliss has joined #dri-devel
Stary has quit [Quit: ZNC - http://znc.in]
Stary has joined #dri-devel
<UndeadLeech> I'm running into issues on panfrost where dmabuf framebuffers are apparently leaked when using Firefox. Anyone run into something like this?
kts has quit [Quit: Leaving]
qyliss has quit [Quit: bye]
heat has joined #dri-devel
qyliss has joined #dri-devel
mediaim has quit [Read error: Connection reset by peer]
qyliss has quit [Quit: bye]
qyliss has joined #dri-devel
heat_ has joined #dri-devel
heat has quit [Read error: Connection reset by peer]
Company has joined #dri-devel
rasterman has joined #dri-devel
qyliss has quit [Quit: bye]
qyliss has joined #dri-devel
<cmarcelo> karolherbst: cool
cphealy has quit [Quit: Leaving]
qyliss has quit [Quit: bye]
qyliss has joined #dri-devel
Haaninjo has joined #dri-devel
kts has joined #dri-devel
tertl8 has joined #dri-devel
JohnnyonFlame has quit [Ping timeout: 480 seconds]
rasterman has quit [Quit: Gettin' stinky!]
qyliss has quit [Quit: bye]
JohnnyonFlame has joined #dri-devel
JohnnyonFlame has quit []
qyliss has joined #dri-devel
kzd has joined #dri-devel
pcercuei has quit [Quit: brb]
pcercuei has joined #dri-devel
qyliss has quit [Quit: bye]
qyliss has joined #dri-devel
junaid has quit [Remote host closed the connection]
pcercuei has quit [Quit: brb]
pcercuei has joined #dri-devel
pcercuei has quit []
pcercuei has joined #dri-devel
<Company> good news everyone!
<Company> Mesa only takes about an hour to compile on an rpi
<Company> the bad news is that it doesn't include the v3d driver by default
<Company> but a recompile after enabling only took 15 minutes
<Company> but my shader still takes >10 minutes to compile
<HdkR> I assume v3d vulkan driver? v3d GL driver seems to be enabled by default on arm platforms at least
<Company> I meant the GL driver - but maybe I screwed something up
<Company> I did configure some things, and maybe that made autodetection decide to turn it off
<HdkR> https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/meson.build?ref_type=heads#L137 Default list shows v3d enabled if auto is selected there :)
<Company> to match the Fedora build
<Company> yeah, meson.build looks good
<Company> I'll assume that was my fault
flom84 has joined #dri-devel
kts has quit [Quit: Leaving]
flom84 has quit [Ping timeout: 480 seconds]
<DavidHeidelberg[m]> karolherbst: we could use tinygrad for some performance rusticl testing https://paste.sr.ht/~okias/523dc5ec01e8db7b70374f0a6dd70fdf663ef17f I guess we could have something similar to trace graphs and reports for LLM
flom84 has joined #dri-devel
<DavidHeidelberg[m]> in tinygrad repo, they testing it with GPT2 which doesn't need 13G of VRAM (I guess so far we're limited on radeonsi on Valve farms, if we want to test)
<DavidHeidelberg[m]> also GPT2 model has ~ 500M, which is nicer to the runners
flom84 has quit [Remote host closed the connection]
flom84 has joined #dri-devel
cphealy has joined #dri-devel
<karolherbst> yeah.. that might be a good idea
<karolherbst> though I think I'd kinda want to have some CTS testing on hardware first
kzd has quit [Quit: kzd]
junaid has joined #dri-devel
gouchi has joined #dri-devel
gouchi has quit []
Duke`` has quit [Ping timeout: 480 seconds]
<DavidHeidelberg[m]> karolherbst: looking at release date of OpenCL CTS (2021-03-25) it doesn't look like OCL is any priorty... :/
Duke`` has joined #dri-devel
<karolherbst> well.. there has been plenty of git activity
<karolherbst> anyway, it's what is used to test conformance, and I'd prefer tracking not regressing anything there than performance at this point. I'm doing it locally so far
kzd has joined #dri-devel
<DavidHeidelberg[m]> karolherbst: deqp has some basic CL support, so it should be doable in CI
<karolherbst> mhh, didn't know. Maybe those tests are actually useful
crabbedhaloablut has quit []
<tertl8> i recently purchased the steamdeck for my first ever amd chip
<tertl8> my nvidia box wont post
<tertl8> and i dont care enough to fix it
flom84 has quit [Ping timeout: 480 seconds]
mbrost has joined #dri-devel
<karolherbst> DavidHeidelberg[m]: ahh yeah, sadly that's kinda useless, because it doesn't fully implement querying all subtests
<karolherbst> I have my own runner to deal with most of that CL CTS nonsense: https://gitlab.freedesktop.org/karolherbst/opencl_cts_runner/-/blob/master/clctsrunner.py?ref_type=heads
junaid has quit [Remote host closed the connection]
junaid has joined #dri-devel
mbrost has quit [Read error: Connection reset by peer]
flom84 has joined #dri-devel
<DemiMarie> karolherbst: Iā€™m trying to understand what exactly is different between Nvidia GPUs and others. Would an accurate summary be that on most GPUs, it is insecure to allow more than one GPU context to execute at a time, whereas on Nvidia GPUs, it is possible to safely execute code from different contexts concurrently?
Duke`` has quit [Ping timeout: 480 seconds]
fab has quit [Quit: fab]
<karolherbst> You can't execute more than one GPU context anyway. Also I think you are too hung up on that matter. Nvidia simply just has a head start getting all the security in place, there isn't really more to it
alanc has quit [Remote host closed the connection]
alanc has joined #dri-devel
<DemiMarie> Makes sense
<karolherbst> There are some details like some parts being designed with privilege seperation in mind. Like userspace doing things on MMIO ranges and not putting anything security relevant in there. But that's just things you end up doing if you have that use case and think it's important enough to care
flom84 has quit [Ping timeout: 480 seconds]
<DemiMarie> As opposed to requiring everything to go through the kernel?
<karolherbst> yeah. It's mostly done for context relevant things, like command submission or engine allocation and other rando things
<DemiMarie> That makes sense. Compute really cares about kernel bypass because of latency, whereas graphics probably cares less.
<DemiMarie> AGX would be the opposite, providing very little security in the GPU and making the kernel responsible for everything.
<DemiMarie> Still, as Asahi Lina has shown, one can write a stable and secure driver for it.
<karolherbst> yeah.. there are pros and cons to either approach
<DemiMarie> Honestly I prefer doing more stuff in the driver and less in the firmware.
<karolherbst> yeah.. some of the nvidia stuff relies on the firmware not being broken, but some of it is also actual hardware level stuff.
<karolherbst> but then if it's broken you can't fix it
<DemiMarie> Yup! And sometimes it is broken (as mwk can testify to).
junaid has quit [Remote host closed the connection]
sima has quit [Ping timeout: 480 seconds]
<Lynne> isn't the new sriov stuff useful for isolation?
<Lynne> for amd, iirc even preemption is supported
<karolherbst> SR-IOV is just making use of hardware features
<karolherbst> SR-IOV is just "marketing" so to speak
<karolherbst> but to properly do it, you need the hardware being able to splice blocks in a way you can't leak information across those splices
<karolherbst> nvidia hardware is quite dynamic there, like you can assign specific amounts of SMs or VRAM controller to each SR-IOV device
jewins has joined #dri-devel
<soreau> mareko: FWIW, the transparent texture bug only happens when calling glClear twice in a row with glScissor set first to a dimension height of 1. If I skip the call in this condition, the bug doesn't happen. Does that happen to ring any bells?
<soreau> of course the texture is rendered after glClear call for the fb
<soreau> and if I double up on glClear calls, there is no consequence, so long as one (the first?) isn't a height of 1
<soreau> on the scissor
An0num0us has quit [Ping timeout: 480 seconds]
<DemiMarie> karolherbst: nvidia hardware also only supports SR-IOV for compute IIUC
<DemiMarie> karolherbst: do you plan to support SR-IOV in nouveau once the GSC firmware is supported?
<soreau> mareko: but if I double the calls and always set height = 1 for the first time around, there is flickering and garbage for the blur shaders every frame
<karolherbst> DemiMarie: maybe? I have no idea how much work needs to be done or if it's all configured via GSP
<DemiMarie> karolherbst: I doubt the GSP is involved, inasmuch as the current driver does not use the GSP for it. Nvidia plans on supporting vGPU in the open driver eventually, but states that GSP firmware changes will be required. I wonder if this is because of licensing.
<karolherbst> DemiMarie: nah, it's mostly because GSP will handle most of that in the future
<karolherbst> and then you essentially do RPC calls to set up the slices
<DemiMarie> karolherbst: my concern is that the GSP will handle license enforcement, meaning that vGPU will be unusable in practice
<DemiMarie> unless BIGCORP
<karolherbst> mhhh...
<karolherbst> yeah.. dunno
<DemiMarie> Whereas a reverse-engineered driver could simply skip these checks.
<karolherbst> sure, but it might not be possible to only use GSP for some bits and not for others... we'll kinda have to see how it all works out. But somebody also has to put in the work and maintain those special paths and everything. But I also kinda don't see how nvidia could enfore any sort of license there
<DemiMarie> true
<soreau> mareko: but if the height == 1 dimension is set after the first legit glClear scissor box, it's fine always
* soreau wonders if he can make a simple case to reproduce
<Company> spirv vs text compiles of shaders can be quite different I guess?
<Company> one of my shaders seems 4x slower in Vulkan than GL
<soreau> nope, it must be a perfect storm of events for this bug to happen, though it is reproducible for me the same way nearly every time
jdavies has joined #dri-devel
jdavies is now known as Guest430
Guest430 has quit [Ping timeout: 480 seconds]
Haaninjo has quit [Quit: Ex-Chat]
<soreau> mareko: and if I simply glFlush() in between glClear()s, the bug doesn't happen either
mediaim has joined #dri-devel
<mediaim> It's cause it tries to respond in non adequate, but all accounting and considering way, in case you can toggle the dereferences in all the time, so a variables value can be changed this way.
<mediaim> So compiler generates those pointers such as jump table compiler codegen.
<mediaim> They appear as memory loads in machine code.
<mediaim> But cause runtime can give that address to patch up with DBI
shashanks_ has joined #dri-devel
<mediaim> You can fixup those addresses to point to code section
<mediaim> Cause you had already gotten the code section pointer, cause of pointing to function as with function pointer, or pointing to immediate data value
<kode54> do random people constantly join this channel to spout nonsense
<mediaim> It considers that pointer can be dereferenced all the time any time
<mediaim> That would immediately change the variable pointed to it's value
<mediaim> Case table switch generates such code
shashanks__ has quit [Ping timeout: 480 seconds]
<Sachiel> it's not random people
<kode54> it's one person
<kode54> or bot
<kode54> I take it you've had to deal with this person for ages now
<Sachiel> yup
<mediaim> The compiler expects that pointer can be dereferenced at any time
<mediaim> It generates pointer loads at every basic block
<kode54> wonder if I got an answer last night, let's check the backlog
pcercuei has quit [Quit: Lost terminal]
<mediaim> That itself makes your parser very thin, cause you search for address in the hex value
<mediaim> Like regex query you can perform
<mediaim> That's how you get in
<mediaim> The program is very easy to trace hence
<mediaim> You construct a system call change
<mediaim> And output constant that is
<mediaim> Casted to some value from immediate
<mediaim> Next thing you patch up pointers
<mediaim> Cause you had read the memories located at code section
<mediaim> It's very easy to trace any program cause they call syscalls
<mediaim> And when you present their output as const it will me used to point too inst addl immediate
nashpa has joined #dri-devel
<mediaim> You just interpose the syscall if not you get in from interrupt handler too
<mediaim> It just tells that now buf is a new value potentially, doing that twice
<mediaim> As pointing something at them
<mediaim> So first time it generates a constant in immediate
<mediaim> Field of instruction
<mediaim> Like say incr or add or anything really
<mediaim> Add is good cause you do not risk with page fault
dliviu has quit [Ping timeout: 480 seconds]
<mediaim> Mmiotrace is hence pretty lame
<mediaim> Cause it's so darn slow
<mediaim> So after you have that pointer you start to read the memory contiguously
<mediaim> And then in all basic blocks containing the syscalls
<mediaim> You can patch the rest of the problem
<bl4ckb0ne> mediaim: you're off topic, this is a chan for gpu dev
tertl8 has quit [Quit: Connection closed for inactivity]
<DemiMarie> can someone ban mediaim?
rsalvaterra has quit []
rsalvaterra has joined #dri-devel