<
DC-IRC>
<Tonymac32> what is a Pi 4? Never saw one
<
DC-IRC>
<Tonymac32> 🙂
<
DC-IRC>
<MicroLinux (Salva)> Yeah, I can confirm
<
DC-IRC>
<MicroLinux (Salva)> We have mother fucking gamma control on rk3399
<
DC-IRC>
<MicroLinux (Salva)> Finally!
<
DC-IRC>
<MicroLinux (Salva)> From kernel 6.1
<
DC-IRC>
<clever> the HVS on the rpi also has some crude gamma control
<
DC-IRC>
<MicroLinux (Salva)> Last time I tried it didn't
<
DC-IRC>
<clever> for the pi0-pi3 lineup, its just a 256 entry LUT, the real brightness goes in, and the adjusted brightness comes out
<
DC-IRC>
<clever> at the hardware level, it does exist
<
DC-IRC>
<clever> driver level, is another question entirely
<
DC-IRC>
<clever> the pi4 still has a 256 entry LUT, but supports 10bit color, so it has to interpolate to fill in the gaps
<
DC-IRC>
<MicroLinux (Salva)> Yes pi3 has it
<
DC-IRC>
<MicroLinux (Salva)> Pi3 was the only sbc with hw gamma control until rk3399 on my side
<
DC-IRC>
<MicroLinux (Salva)> And bc I used mesa back then
<
DC-IRC>
<MicroLinux (Salva)> And bc I used mesa back then, no one used mesa on 2018 on rpi3 for some reason, way better stuff
<
DC-IRC>
<MicroLinux (Salva)> Relatively speaking of course
<
DC-IRC>
<MicroLinux (Salva)> It was super fun back then bc no other sbc had mesa drivers back then, no mesa,no fun.
<
DC-IRC>
<clever> ive done 3d on an rpi, baremetal
<
DC-IRC>
<MicroLinux (Salva)> Noicee
<
DC-IRC>
<MicroLinux (Salva)> You are the open source firmware dev, aren't you?
<
DC-IRC>
<clever> yeah
<
DC-IRC>
<MicroLinux (Salva)> Nicee
<
DC-IRC>
<clever> in this demo, the spinning triangle is a single polygon rendered on the 3d core
<
DC-IRC>
<clever> the bouncing raspberry is a 2d sprite
<
DC-IRC>
<clever> and the text is another 2d sprite
<
DC-IRC>
<clever> the HVS then composites the 3 layers together
<
DC-IRC>
<MicroLinux (Salva)> That's super cool.
<
DC-IRC>
<MicroLinux (Salva)> Happy pi day for you ( and you only) 😁
<
DC-IRC>
<clever> the text buffer in that example is just a dumb buffer, so it has tearing during a scroll
<
DC-IRC>
<clever> the raspberry is a static image, with the XY changing on vsync
<
DC-IRC>
<clever> the 3d render is double-buffered, and doing a pageflip on vsync
<
DC-IRC>
<clever> but i made a mistake in the double-buffering
<
DC-IRC>
<clever> it schedules a page-flip, but doesnt wait for vsync
<
DC-IRC>
<clever> then draws into the "old" buffer, that is still on-screen
<
DC-IRC>
<clever> if you look very closely, you can see a tear near the top of the triangle, as it passes the top of the screen
<
DC-IRC>
<MicroLinux (Salva)> Mmm, I can barely note it. But gotcha hahah
<
DC-IRC>
<clever> ```
<
DC-IRC>
<clever> while (true) {
<
DC-IRC>
<clever> hvs_wait_vsync(hvs_channel);
<
DC-IRC>
<clever> cmd_v3d(0, NULL);
<
DC-IRC>
<clever> hvs_update_dlist(hvs_channel);
<
DC-IRC>
<clever> }
<
DC-IRC>
<clever> ```
<
DC-IRC>
<clever> though looking at the latest source, it shouldnt be doing that, something to look into when i revisit it