Tuesday, 2021-05-04

klysjust taking a glance at Libre-SOC, it's missing a reference to Kazan.06:31
klysso I think it should probably explain that it uses Kazan as the GPU and credit Jake06:32
klysinstead of just mentioning "graphics computing"06:34
klysI mean as an instruction set, not as "the GPU" as I had said, of course.06:35
lkclklys: it's not missing, it's simply buried under the sheer quantity of working pages that get created as a direct result of development06:43
lkclif you encounter some specific locations that you think it can be mentioned, please do directly edit the wiki yourelf.06:43
lkclbear in mind: Kazan is *not* a GPU, or an ISA. it is simply a Vulkan driver. there is a second Vulkan driver, a MESA 3D one being developed by Vivek Pandya06:45
klyswhoa you're telling me kazan isn't a set of instructions that can be used as a gpu?06:46
lkclif you can please edit whatever-pages-you-feel-should-say-whatever to include *both* 3D drivers06:46
lkclthat's correct: it is not.06:47
klyswhy?06:47
klysit used to be, didn't it?06:47
lkclKazan is a piece of *software*06:47
lkclno, Kazan was never a *hardware* driver or a *hardware* product or project06:47
lkclit is, has been, and always will be, a *software* driver that *USES* hardware instructions06:47
lkclit is, has been, and always will be, a *Vulkan* compliant *software* driver06:48
klysreading this: https://www.phoronix.com/scan.php?page=news_item&px=Libre-GPU-RISC-V-Vulkan06:48
lkclthat happens to use the Libre-SOC OpenPOWER instructions06:48
lkclread this sentence:06:49
lkcl"Along similar lines has been Vulkan-CPU and now known as Kazan as a software/CPU-based Vulkan implementation."06:49
lkclKazan is a **SOFTWARE** Vulkan driver06:49
klysIs there a libre-gpu project?06:50
lkclagain, to repeat: it *USES* the opcodes provided by *LIBRESOC* hardware06:50
lkclthis *is* a Libre GPU project06:50
klysno wait06:50
klysthe set of instructions that may be used as a GPU is rather simplistic, I get06:51
klyssomeone might be trying to implement them in riscv06:51
klysis that right?06:51
lkclgood luck to them if they do.06:52
klysif so, it wouldn't be Kazan06:52
klysdo you know?06:52
lkclKazan is a piece of software.06:52
lkclyou still have in your head the mistaken impression that Kazan is a piece of hardware06:53
klyswell I want to hear about a hardware project06:53
lkclthen that is Libre-SOC06:53
lkclthe Libre-SOC core implements hardware opcodes and Vectorisation06:54
lkclincluding transcendentals (sin, cos, atan2), bitmanip, and more06:55
lkclalso we have to add Texturisation and pixel format opcodes and a Texture Cache.06:55
klysokay what do you know about rv64x06:56
lkclas an aside: Kazan, a *software* driver, will happen to *use* all of those opcodes06:56
lkclit was an initiative by Atif Zazar, over two years ago, that the RISC-V Foundation and Si-Five f*****d over.06:56
lkclcost him a five figure sum.  he was absolutely furious.06:56
klyswas it ever standardized?06:57
lkcla journalist a few months back re-hashed an article published two years ago, putting it back into the news06:57
lkclno, because the RISC-V Foundation favoured a competing product that was based in the USA and sponged off of EU funding06:58
klysyou mean the beaglev06:58
klys?06:58
lkclno, it was a proprietary company that specialises in low-power 3D06:58
klyswell okay06:59
lkclthey used LLVM and kept all driver modifications entirely secret06:59
lkclnobody will ever see the code, or the RISC-V custom ISA modifications that that company made.06:59
klyshttps://salsa.debian.org/Kazan-team/kazan/-/issues/807:07
klysif this information is inaccurate, please update07:08
lkclit's not inaccurate at all.07:08
klysthanls07:08
klysthanks07:08
lkclKazan - using the Libre-SOC opcodes - will write to a framebuffer07:09
lkclthe way that a SoC works is that there is a piece of hardware (which has nothing to do with the processor), which scan-reads that same framebuffer and shoves it out to a display07:09
* lkcl going back to sleep, it's 7am :)07:10
klysyeah and the framebuffer is mmap()'d into address space07:10
lkclby the software driver, either Kazan or the MESA 3D one being written by Vivek, yes.07:11
klysokay07:11
klysI guess in traditional framebuffer implementations it's slow to read the framebuffer so they use double buffering07:12
lkclunlike a "standard" GPU architecture, if Kazan software driver or the MESA 3D driver being written by Vivek need to e.g. do a SIN or COSINE operation,07:12
lkclthey use an *actual instruction*07:12
klysyeah07:12
lkclthey do not... deep breath07:13
lkclprepare a queue07:13
lkclput some stuff into memory07:13
lkclcopy it to shared memory07:13
lkclcommunicate with the kernel to tell the kernel it should tell the GPU to read it07:13
lkclhave the GPU unpack the command07:13
lkclhave the GPU execute the SIN/COSINE operation ...07:14
lkclyou get the idea07:14
lkclinsane07:14
klysyeah because it's part of the cpu to begin with07:14
lkclexactly07:14
lkcldouble buffering is there to stop "tearing"07:14
lkclthat scan-line reading i mentioned above?07:14
lkclif you get it wrong and happen to write at the time that the hardware is reading07:15
lkclyou end up with shite on the display.07:15
lkclsolution:07:15
lkcltwo buffers.07:15
lkclone you are writing to07:15
lkclwhilst the hardware is reading from the other07:15
klysthat's part of the retrace handling used in vga07:15
lkclit's been a known problem for 40-50 years.07:16
lkclit doesn't actually have anything to do with GPUs per se07:16
klysI've got some work at getting graphics on the linux tty here: https://github.com/mdasoh/drm-kms/07:16
lkclthe Amiga had a special... something. where it could detect where the hardware was up to07:16
klysso yeah there's that and vsync handling07:17
lkcland it could wait until the hardware had outputted the scan line it was up to before overwriting07:17
lkclyeah07:17
klysthe atomic modesetting is only avaliable with newer gpu hardware07:17
klysI've been testing it on an older radeon and it requires those things07:18
klyswell I mean the amiga, yeah, it had highly nonstandard stuff like the vidiot07:19
* lkcl apologies klys i need to sleep / rest. 7am here.07:19
klysokay sweet dreams lkcl07:19
lkcli've been registering on a couple of sites, it would be good if everyone could do so as well.16:06
lkclhttps://www.librecores.org/libre-soc16:06
lkclinterestingly that's a libre/open project (librecores source code is itself libre and self-hosted)16:07
lkcli've added ieee754fpu, nmutil, and openpower-isa16:16
lkclcesar[m]1, i'm just filling in some TODO comments into the EXECUTE_WAIT FSM state, for LD/ST exceptions. can you take a look?17:14
cesar[m]1Sure.17:15
lkclmagic.  will just commit in a moment17:15
lkclbasically, the exception needs to be noted, copied into pdecode2.ldst_exc (sync +=)17:19
lkclthen the instruction simply *re-executed*17:20
lkclPowerDecoder2 will pick up that the ldst_exc has been activated17:22
lkcland will completely rewrite the info in PowerDecoder2, with an OP_TRAP, a new MSR and a new PC.17:22
lkclit _should_ be quite straightforward17:33
lkclcesar[m]1, sorry, i'm adding some infrastructure for fast3 (SVSRR0)18:10
lkclthis is the other website https://opencollective.com/libre-soc19:02
*** henriok <henriok!~henrik@81-229-9-109-no92.tbcn.telia.com> has left #libre-soc21:00
lkclrandom meeting 20mins22:40
lkclcesar[m]1 lxo jn__ programmerjake ^22:40
lxocalling in...23:05

Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!